본문 바로가기

10./11. Network

[포트스캐너/NMAP] nmap은 해커를 위한 툴이 아니라 보안 전문가를 위한툴2


 

nmap은 해커를 위한 툴이 아니라 보안 전문가를 위한툴2


이번엔 간단한 테스트와 함께하는 Nmap

 

 

 

 

포트스캐닝 Nmap

- Nmap의 옵션 종류

Portscan 하는 패킷 주고 받는 형태 세팅 방법 (+ stealth 기능) 옵션 

Portscan을 원하는 타겟(도착지) 세팅 방법 옵션

출발지(나:공격자)의 위치 세팅 방법 옵션

Portcan하는 패킷 상태 (스캔 속도, 프라임 등) 옵션

보내고 싶은data 세팅이나 받은 패킷 저장할수있는 옵션 

 

그 중 패킷을 주고 받는 형태 방법 에 대해서 자세히 알아보자

많이 사용하는 옵션은 -sS -sT -sA -sP 이다

-sS : TCP패킷의 syn 패킷만 보낸다. half-open 연결

-sT : 완전한 TCP 연결을 맺는다.

-sA : ack 패킷을 먼저 보낸다

-sP : 포트세팅을 하지 않는다 (같은 네트워크는 arp, 다른 네트워크는 ack, ping )

 

자 자세한 설명을 위해서 wireshark로 패킷을 캡쳐하였다

 

 

처음에는 대상 컴퓨터를 찾고 옵션의 자세한 설명을 위하여

열려있는 포트를 스캔해보았다

 

# nmap -P0 -p 1-200 192.168.0.3


-P0 : ICMP를 전송하지 않고, 실제로 네트웍과 연결돼 있는 지 검사.

-P 1-200 : 포트 1번부터 200번 까지 스캔

그다음 스캔 대상 ip 이다










-sS -sT -sA -sP 포트 스캔의 차이점

 




-Ss : TCP패킷의 syn 패킷 전송. half-open 연결

#nmap -sS -P0 -p 80 192.168.0.3

192.168.0.3(타겟 컴퓨터) 의 모든 포트를 스캔하면

패킷의 량이 많아져 구분하기 힘들기 때문에 80번 포트만 포트 스캔하였습니다




80번 포트가 열려있다고 나옵니다.

 

wireshark에서 패킷이 잡힌것을 본다면





오른 쪽 info 를 보신다면

[SYN]

[SYN, ACK]

[RST]

패킷을 주고받은 것을 보실수 있습니다. 반 연결 입니다.




캡쳐를 실수한듯하군여 RST까지 캡쳐를 못했군요;;







-sA : ack 패킷을 먼저 보낸다

#nmap -sA -P0 -p 80 192.168.0.3



예상대로라면 ACK를 먼저 보내야합니다



info를 보신다면 [ACK]를 보내고 [RST]를 받습니다.

패킷은 원래 [SYN] 부터 보내야 하는데 [ACK]를 먼저보내니

당연히 잘못된 열결이라며 타겟컴퓨터에서 연결을 끊겠지요 





나 : [ACK] : 야

상대 : [RST] : 뉘신지여

 

이건거겠죠....

 





-sT : 완전한 TCP 연결

완전한 TCP를 연결하는 포트 스캔입니다. 사실 이걸 먼저 써야하는데..

순서가 뒤집혔군요 ㅇ_ㅇ........ 지못미

 

# nmap -sT -P0 -p 80 192.168.0.3





완전한 연결을 하고 끊습니다

 

[SYN] - [SYN, ACK] - [ACK] - [RST, ACK]




자 info 를 자세히 보시죠








확실히 순서에 따라 패킷을 보내시는걸 보실수 있습니다.

 

나 : [SYN] : 저기요. 카진이라고 합니다.

상대 : [SYN, ACK] : 아 전 아메라고 합니다. 반갑습니다

나 : [ACK] : 반가웠고, 또 만납시다

상대 : [RST, ACK] : 예 즐거웠습니다. 안녕히..

 






-sP : 포트세팅X (같은 네트워크는 arp, 다른 네트워크는 ack, ping )

가장 설명하기 에메한 포트세팅하는 방법입니다

일명 핑 스캔이죠 위에처럼 완전한 TCP를 맺는게 아니라,

살았는지 죽었는지 살펴만 보는겁니다

 

#namp -sP 192.168.0.3





같은 네트워크에서 포트 스캔을 한다면 ARP를 보냅니다

다만 전 다른 네트워크여서 ACK나 PING을 보내게 됩니다.

 

위에 ICMP를 먼저 보내는 것을 보시고 ACK를 보내고 RST를 받았습니다







여기서 -sA랑 무슨 차이점은 위에 ICPM일명 ping을 먼저 때려봤다는겁니다

 

또한, 이옵션을 쓰면 같은네트워크는 arp를 보낸다는거지요.




 



이 외에도

 

-sN 널스캔이나

-sF FIN 스캔

-sX [FIN, PSH, URG] X - mas 스캔

 

여러 스캔하는 유형이 있습니다. 이건 패킷을 플러그를 어떻게 채우냐에 따라 달라집니다

위에 보셨던 패킷들도 플러그를 어떻게 채워서 보내는냐에 따라 다릅니다

 

wireshark로 패킷을 캡쳐하고 flag부분을 보시는것도 재미있을듯...

또한 옵션중에 flag를 내가 원하는데로 채워서 넣는 방법도 있습니다.

 

 

내가 세팅하는 방법

#nmap -p 80 --scanflags 1 200.1.3.65

플레그(Flag)를 1로 세팅한다는 겁니다 플레그는 1부터 2^8까지

공부하신다면 한번 찾아보시는것도 좋으실듯하군요

스캔 공격한 출발지 주소 속이기



#nmap -S 20.20.20.20 -g 53 -e eht0 -P0 -sS -v 192.168.0.3

출발지 주소를 20.20.20.20와 출발지 포트번호를 53 속이고




-P0(ping패킷 X)와 -sS(TCP SYN 스텔스 포스스캔) 옵션을 사용




스캔 속도 조절하기

Namp의 -T 옵션을 사용하여 패킷을 일정 시간 간격으로 보낼수 있다.

시간 간격을 길게할수록 IDS에서 탐지할 확율을 낮아진다

 

이 옵션의 인자

 paranoid : nmap이 패킷을 5분 간격으로 보낸다. paranoid 대신 숫자 0을 써도된다

 sneaky : nmap이 패킷을 15초 간격으로 보낸다. 숫자 1

 polite : nmap이 패킷을 0.4초 간격으로 보내게 한다. 숫자 2

 nomal : 기본 설정으로, 목적지 호스트로 부터 응답을 받는 즉시 다른 패킷을 보낸다. 숫자 3

 aggressive와 insane : 스캔을 빠르게 수행

                                핑(ping)으니 포트 스캔을 빠르게 하고자 할때 사용

                                이 옵션을 사용하면 많은 트렉픽 발행과 네트워크에 부담을 줌

                                aggressive 숫자 4, insane 숫자 5

 

# nmap -S 20.20.20.20 -e eth0 -P0 -sS -v -T paranoid 192.168.0.3

 

 

 

* nmap 기능중에 바운스 스캔 (Bounce scan)이 있다.

   이건 FTP서버를 프록시 서버처럼 이용하여 스캔하는 방법이다.

   사용법과 스샷사진은 나중에 coming soon ....