본문 바로가기
Study/침입탐지와차단시스템

[침입탐지와차단시스템] 포트스캔(nmap) 실습 - TCP stealth 스캔, UDP 스캔

by 8희 2023. 4. 7.

TCP stealth 실습

stealth 스캔: 공격자가 정상적인 3-way-handshake 과정이 완료되지 않게 하여 로그가 남기지 않도록 포트를 스캔하는 것

 

 

Xubuntu에서 Wireshark로 패킷 캡처를 시작한다.

 

 

Kali에서 nmap을 실행한다.

stealth 스캔을 할 것이기 때문에 -sS 옵션을 사용한다.

* 일반적인 TCP 스캔은 -sT를 사용한다. 

 

 

Xubuntu의 와이어샤크에서 tcp.stream으로 필터링하여 TCP에서의 패킷 흐름을 파악한다.

 

tcp.stream eq 0으로 필터링하면 열려 있는 패킷의 흐름을 확인할 수 있다.

TCP SYN 스캔과는 달리 서버로부터 수신된 SYN-ACK 패킷에 RST 패킷으로 응답하지 않는데,

이게 로그를 남기지 않도록 포트를 스캔하는 것이다.

 

 

tcp.stream eq 2로 필터링하면 닫혀 있는 패킷의 흐름을 확인할 수 있다.

 

 

tcp.port == 포트번호로 필터링하여 포트의 열림 유무를 확인할 수 있다.

현재 21번 포트는 열려 있다.

 

UDP 포트 스캔 실습

UDP는 수신 측의 포트가 닫혀 있을 때 ICMP가 응답하는 특징을 가지고 있다.

이를 이용하여 열려 있는 UDP 포트를 스캔할 수 있다.

 

 

Kali에서 nmap을 실행한다.

UDP 스캔을 할 것이기 때문에 -sU 옵션을 사용한다.

 

 

Xubuntu에서 미리 실행해둔 와이어샤크에서

udp.stream으로 필터링해서 UDP 패킷 흐름을 확인하고,

udp.stream eq 2로 필터링하면 닫혀있는 포트 흐름을 확인할 수 있다. 

udp.port == 25로 필터링하여 25번 포트는 닫혀 있는 것을 확인할 수 있다.

 

100.128 > 100.20으로 들어올 때는 UDP를 사용하고,

100.128 > 100.20으로 나갈 때는 ICMP를 사용하고 있다. 


UDP는 특이하게 UDP를 통해서는 포트가 연결돼 있지만
닫힌 포트에 대해서는 ICMP를 사용하는데
ICMP에는 따로 포트가 반영되진 않는다. 

 

따라서 UDP는 TCP와는 달리 신뢰성 없는 통신 방식이지만 수신 측의 포트가 닫혀 있을 때

ICMP 프로토콜이 응답하므로 상태 값 정도는 확인할 수 있는 것이다.