Nmap 어떻게 쓰는 걸까?

몇일 전 Nmap 설치 방법과 nmap을 이용한 OPTIONS Method 취약점 확인 방법에 대해 알아봤습니다. 오늘은 포트스캔에 필요한 옵션에 대해 Windows 버전으로 알아보려고 합니다.

Nmap 목적

TCP 3-Way Handshake를 이용하여 정상적인 통신을 하고 있는 open된 포트를 찾기 위해 사용하며, 불필요한 포트를 찾아서 보안사고 피해를 줄기이 위한 목적을 가지고 있습니다. 하지만 공격자에게는 정보수집을 위한 해킹툴로도 사용 합니다.

스캔옵션

-sS : 기본적으로 가장 많이 사용하는 스캔 옵션이며, Half-open 스캔이라고 합니다.

※ Half-Open 스캔 : TCP 3-Way Handshake 연결을 비정상적으로 통신하는 방식입니다. 포트가 Open된 서버를 test할 경우 로컬에서 SYN을 보내면 서버에서 SYN+ACK를 보내며 다시 로컬에서는 ACK가 아닌 RST를 보냅니다. 하지만 타겟의 서버의 로그에 기록되는 것은 피할 수 있지만 방화벽 또는 IDS, IPS등 보안장비에서는 탐지가 가능합니다.

포트가 Closed 경우에는 로컬에서 서버로 SYN을 보내면 서버는 로컬에게 RST+ACK를 보냅니다.

-sT : 기본 TCP 포트 스캐닝입니다.

-sU : UDP 스캐닝 입니다. 타겟에 UDP 스캔을 보냈을때 Closed 포트는 ICMP Port Unreachable 패킷을 보내고 Open 포트는 응답이 없습니다.

(왼)포트가 Open되었을 경우, (오) 포트가 Closed 되었을 경우
(왼)포트가 Open되었을 경우, (오) 포트가 Closed 되었을 경우

-sN, -sF, -sX : TCP NULL, FIN, Xmas 스캔방식 입니다. 타겟의 FIN, PUSH, URG 플래그를 설정한 패킷을 보내고 타겟의 반응에 따라 열린 포트인지 확인하는 방식입니다. 즉, 스텔스 스캔이라 하며 일반적인 TCP 3-Way Handshake 방식을 무시 하고 열결을 시도 하며 공격자의 정보를 알 수 없습니다.. 방화벽이나 IDS 같은 장비들이 SYN을 검사한다는 허점을 이용한 스캐닝입니다

(왼)포트가 Open되었을 경우, (오) 포트가 Closed 되었을 경우
(왼)포트가 Open되었을 경우, (오) 포트가 Closed 되었을 경우

-sA : TCP ACK 스캔방식입니다. ACK 패킷에 대한 TTL 값을 이용한 분석 옵션입니다.
-sW : TCP 윈도우 스캔 방식이며 ACK 패킷에 대한 윈도우 크기 분석하는 옵션입니다.
-sM : TCP maimon, 방화벽 침투 스캔 방법이며 FIN 스캔과 유사한데 ACK Fleg도 포함합니다. 이는 더 많은 패킷 필터링 방화벽을 잡게 허락하는데 단점은 FIN스캔보다 더 적은 시시틈데 대해 작동한다는 점입니다.
-sI : Idle 스캔은 모든 방법중 가장 비밀스러운 스캔방법이며 스캔하는 시간이 느리고 복잡합니다.
-sP : Ping을 이용한 호스트 활성화 여부 확인하는 옵션입니다.
-F : 빠른 포트 스캔 방식입니다.
-O : 타겟의 서버의 OS 확인 옵션입니다.
-p : 타겟의 특정 포트를 스캔하거나 범위 지정하는 옵션입니다. -p 25는 25 포트에 대해 스캔을 하라는 옵션이고 -p 1-1024는 1~1024까지 포트스캔하라는 옵셥입니다. 원하는 포트를 스캔하기위해서는 -p 20,24,3386 구분해서 스캔할 수 있습니다. 포트를 정하지 않고 -p를 했을 경우 1~65535 모든 포트를 스캔 합니다.
대상 IP는 클래스로 스캔도 가능합니다.

Nmap 결과값

open(열린 상태) : 포트가 열려 있다는 결과이며 Application이 TCP/UDP패킷을 받고 있다는 결과입니다.
Closed(닫힌 상태) : 포트가 닫혀 있다는 결과이며, 해당 포트를 리스닝하고 있는 Application이 없다는 결과입니다.
Filtered(필터된 상태) : 각종 보안장비(방화벽, IPS, DDoS, 각종 보안장비에 가로막혀 포트가 열렸는지 닫혀있는지 판단할 수 없는 상태 입니다.
Unfiltered(필터되지 않은 상태) : 포트 접근능 가능하나 닫혀 있는지 열렸는지 결정을 못 할 경우 입니다.
open|Filtered(열린상태|필터된 상태) : 포트가 열렸는지 필터되었는지 결정 할 수 없는 상태입니다.
closed|Filtered(닫힌상태|필터된 상태) : 포트가 닫혀있는지 필터되었는지 경정 할 수 없는 상태입니다.

Leave a Comment