본문 바로가기

Network Hacking

33일차]Port Scanning => TCP Open Scan, Stealth Scan(Half Open Scan, XMAS, NULL, FIN), UDP Scan

NMAP??

NetworkMap(네트워크지도)의 약어로 네트워크에 연결되어있는 호스트의 정보를 파악하는 도구이다. 다음과 같은 정보를 얻을 수 있다.

  - 네트워크에 연결되어있는 호스트들의 IP와 OS 종류

  - 서버의 열린 포트

  - 서비스하는 소프트웨어의 버전 정보

공격자는 위의 정보를 시스템 침투에 활용하며, 방어자는 불필요한포트가 열려 있는지, 불필요하게 노출되는 정보가 있는지를 점검할 수 있다.

 

[NETWORK-A]

#> yum -y install nmap

 

※ Nmap Port Status

open - 스캔된 포트가 Listen 상태임을 나타낸다.

closed - 포트 스캐닝을 한 시점은 listen 상태가 아님을 나타낸다.

filterd - 방화벽이나 필터에 막혀, 해당 포트의 open/close여부를 판별할 수 없다.

unfilterd - unfiltered 상태의 포트의 접근은 가능하나, 그 포트가 열려있는지 닫혀있는지를 nmap에서는 판별할 수 없을을 의미한다.

open | filtered - 대상 포트가 open 상태인지, filtered상태인지 알 수 없을 때를 의미한다.

closed | unfiltered - 대상 포트가 closed 상태인지, unfiltered 상태인지 알 수 없을 때를 의미한다.

 

 

 

1. TCP Open Scan

#> nmap -sT [Target Ip]

TCP connect() scan 이라고도 하며, TCP 스캐닝의 가장 기초적인 형태로 connect() 함수를 사용하여 모든 포트에 대해 스캔하는 방식이다. 만약 포트가 listen상태라면, connect()는 성공할 것이고, 그렇지 않으면 reachable 되지 않는다. 완전한 세션을 맺는 것이기 때문에 로그를 남긴다. 포트가 열려 있으면 TCP 3 Hand Shake를 한다.

# nmap 실행 결과와 필터를 통해 wireshark로 열린 포트 구한 결과

# TCP_Half_Open_Scan.pcapng

 

 

 

1). 포트가 열려 있는 경우

 

2). 포트가 닫혀 있는 경우

 

 

 

 

2.Stealth Scan

방화벽으로 차단한 영역을 검사하거나, IPS/IDS에서 탐지가 안되도록 진행할 때 유용하다. open 포트로 FIN 패킷을 보내면 이 패킷을 무시하고, closed 포트로 보내면 RST패킷이 온다. 이 스캔은 주로 UNIX계열 OS에서만 사용이 가능하며, 루트 권한이 필요하다. TCP Half(SYN) Open, Scan, FIN Scan, X-masScan, Null Scan이 대표적인 예이다.

 

1). TCP Half(SYN) Open Scan 

#> namp -sS [Target Ip]

TCP SYN scan : Full TCP 접속을 하지 않으므로 "half-open" 스캐닝이라 한다. 하나의 SYN 패킷을 보내어 SYN|ACK 응답이 오면 그 포트는 listening 상태임을 나타내며, RST 응답이 오면 non-listen임을 나타낸다. 이 기술은 하나의 패킷을 보내여 SYN|ACK 응답을 받으면 그 즉시 RST 패킷을 보내서 접속을 끊어버린다. 이렇게 하면 접속이 이루어지지 않은 상태에서 접속을 끊었기 때문에 로그를 남기지 않는 경우가 대부분이다. custom SYN packet을 만들기 위해서는 루트 권한이 필요하다.

 

 

# nmap 실행 결과와 필터를 통해 wireshark로 열린 포트 구한 결과

# TCP_Half_Open_Scan.pcapng

 

1). 포트가 열려있는 경우

 

2). 포트가 닫혀있는 경우

 

 

 

2). FIN Scan

- namp -sF [Target Ip]

- 공격자는 FIN 패킷을 보내 열린 포트를 알아낸다.

- RST 패킷이 돌아온 경우 포트 상태는 closed라고 간주하고, 재전송하여도 응답이 없는 경우는 open|filtered라고 간주한다. ICMP 도달 불능 오류메시지가 반환되는 경우는 filtered라고 간주한다.

 

 

 

 

3). X-mas Scan 

- nmap -sX [Target Ip]

- 공격자는 FIN, PSH, URG 패킷을 보낸다.

- RST 패킷이 돌아온 경우의 포트 상태는 closed라고 간주하고, 재전송하여도 응답이 없는 경우는 open | filter

 

 

4). Null Scan

- nmap -sN [Target Ip]

- 공격자가 null 패킷을 보냈을 때, RST 패킷이 돌아온 경우의 포트 상태는 closed라고 간주하고, 재전송하여도 응답이 없는 경우는 open | filtered라고 간주한다. ICMP 도달 불능 오류메시지가 반환되는 경우는 filtered라고 간주한다.

 

 

 

 

3.UDP Scan

- #> nmap -sU [Target Ip] 

UDP 통신은 일방향이기 때문에 신뢰성이 떨어진다. 방식은 아주 간단한데, 공격자가 UDP 패킷을 보낸다. 그 결과가 열린 포트이면 아무런 응답이 오지 않으며, 닫힌 포트이면 ICMP Unreachable 메시지가 온다.

 


[문제] 문제1.pcap

 

Network Forensic 4

Mr.X가 멕시코로 도피해 있는 동안, Interweb을 통해 북극 핵융합 연구시설
실험실 서브넷에 원격으로 침투하게 된다. Mr.X는 은밀하지 못하게 시끄러운 네트워크 정찰을 하게 된다.
실험실의 네트워크는 모두 트래픽을 캡처하도록 되어있어서, Mr.X의 활동은 당신에 의해 발견되었다.

 

1. Mr.X가 사용한 스캐너의 IP주소는 무엇인가?                                답 : 10.42.42.253

 

2. Mr.X가 수행한 첫번째 포트 스캔은 어떠한 방식으로 이루어졌는가?   답 : TCP Half Open Scan

 

3. Mr.X가 목표로하는 IP주소는 무엇인가?                                       답 : 10.42.42.25 and 10.42.42.56 and 10.42.42.50


4. Mr.X가 찾은 Apple 시스템의 MAC 주소는 무엇인가?                      답 : 00:16:cb:92:6e:dc

 

5. Mr.X가 찾은 Windows 시스템의 IP주소는 무엇인가?                      답 : 10.42.42.50                 // Windows 기본 TTL 128

 

6. Windows 시스템에 열려있는 TCP포트는 무엇인가?                        답 : 135, 139