Network Hacking

Nmap 옵션 및 옵션

manchesterandthecity 2021. 8. 26. 11:17

NMap은 대표적인 포트 스캔 프로그램이다

다른 기능도 있을 수 있으나 나는 포트 스캔에만 사용한다.

 

NMap 을 다운로드한다.

 

www.nmap.org/ 

 

NMap 주요 옵션 목록

 

nmap [-주옵션] [-부옵션] <IP Ranges>

 

[주 옵션]

 

-sT/ sS/ sA/ sW/ sM  :   TCP 스캔, 차례대로 Connect/SYN/ACK/Window/Maimon 스캔 (-sT: Full connection  / -sS : SYN half 연결)

-sU                         :   UDP 스캔

-sP                         :   Ping 스캔 (Ping 을 통해 대상의 alive 여부만 파악), Ping Sweep 에 사용

 

* -sSU 와 같이 하면 TCP/UDP 스캔을 둘다 수행함

* 주 옵션이 생략될 경우, root 권한 default -sS, 일반권한 default -sT)

 

 

 

[부 옵션]

 

-P0 -PS                     :   ICMP Ping 금지 / SYN 스캔 사용 (PIng sweep 에서 시간 절약)

-sV                             :   포트 어플리케이션 식별

-O                             :   OS 식별

-oA <filename>             :   결과를 nmap, gnmap, xml 세가지 포맷의 텍스트 파일로 저장

-p<port ranges>            :  스캔 대상 포트 지정   (예시 : 21,22,23,8000-9000)

-T<0~4>                     :  속도 옵션,  T4 (Aggressive : 가장 빠름), T0 (Paranoid : 가장 느림)

--min-parallelism <숫자> : 복수의 메소드를 이용해서 동시에 패킷을 전송 (상당히 대량의 패킷 발송하여 빠르게 스캔)

-PN                            :  서버 탐색 없이 바로 포트 스캔 시도 (, 서버가 존재하는지 확인하는 과정 생략)

-iL <filename>               :  스캔 대상을 파일에서 읽어옴

-S <IP> -e <interface> -PN : 소스 ip에 지정한 ip spoofing 하여 자신의 아이피를 속임

-D <decoy1,decoy2...>  : 지정된 여러 decoy들로부터 패킷이 유입되는 걸로 위장함 (-sV 에서 사용할 수 없음)

 

 

 

[스캔 예시]

 

nmap -sS 192.168.10..1                     : TCP 하프 연결을 이용해서 Stealth 모드로 스캔한다.

nmap -sU 192.168.10.1                      : UDP 스캔

nmap -sP -P0 -PS 192.168.10.0/24    : C 클래스 전체에 Ping Sweep (ICMP ping 금지, TCP SYN 사용)

nmap -sS -sV -O 192.168.10.1           : 포트에서 서비스하는 App  OS 식별

nmap -sS -PN 192.168.10.1               : 대상이 살아 있다고 가정하고 스캔 시도 (서버 존재를 확신하는데 down으로 탐색될때)

nmap -sS -S 192.168.10.100 -e eth0 -PN 192.168.10.1   : 자신의 ip 192.168.10.100 으로 속여 스캐닝함

nmap -sS -T5 --min-parallelism 100 192.168.241.1

 

 

 

nmap 결과 - open, filtered, closed

 

open   : 포트가 열려있음. (애플리케이션이 패킷/연결을 받아들이기 위해 리스닝 하고 있음)

filtered : 방화벽, 필터 등 장애물이 가로막고 있어서 nmap이 해당 포트에 접근할 수 없음(열려있는지 닫혀 있는지 알 수 없음)

 

closed : 해당 포트가 열려있지 않음. (해당 포트를 리스닝하고 있는 애플리케이션이 없음)

 

 

 

참고

: https://vaert.tistory.com/102

 

 

 

 

 

1. nmap의 옵션

스캔 종류 내용
-sT connect() 함수를 이용한 Open 스캔 (TCP SYN/CONNECT,ACK,Window,Maimon scans)
-sS 세션을 성립시키지 않는 SYN 스캔 (TCP Half scan 이라고도 함. 스텔스 스캔중 하나)
(TCP SYN/CONNECT,ACK,Window,Maimon scans)
-SF FIN 패킷을 이용한 스캔 (TCP Null, FIN and Xmas scans)
-sN NULL 패킷을 이용한 스캔 (TCP Null, FIN and Xmas scans)
-sM TCP Maimon 스캔 (TCP SYN/CONNECT,ACK,Window,Maimon scans)
-sX XMAS 패킷을 이용한 스캔 (TCP Null, FIN and Xmas scans)
-sP ping을 이용한 호스트 활성화 여부 확인
-sU UDP 포트 스캔
-sR RPC 포트 스캔
-sA ACK 패킷에 대한 TTL 값의 분석 (TCP SYN/CONNECT,ACK,Window,Maimon scans)
-sW ACK 패킷에 대한 윈도우 크기 분석 (TCP SYN/CONNECT,ACK,Window,Maimon scans)
-b FTP 바운스 스캔
-f 스캔할 때 방화벽을 통과할 수 있도록 패킷을 조각냄
-v 스캔의 세부 사항을 표시
-P0 스캔 전 ping을 하지 않고 ICMP Echo Request를 허용하지 않는 호스트에 대한 스캔을 할 때 설정
-PT ping의 대응으로 ICMP 패킷을 이용하지 않고 TCP 패킷을 이용하여 해당 시스템이 작동 중인지 검사
-PS TCP SYN 패킷만을 보내 시스템의 활성화 여부를 검사
-PI 시스템의 활성화 여부를 ICMP로 검사
-PB TCP와 ICMP 둘 다 사용해서 호스트의 활성화 여부를 검사
-O 시스템의 운영체제를 추정
-I Ident 프로토콜(RFC 1413)을 사용해 열려 있는 프로세스가 어떤 사용자에 의한 것인지 검사
-n DNS lookup을 하지 않음
-R DSN lookup을 함

2. Open 스캔

​[root@localhost ~]# nmap -vv 192.168.235.132

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-08 15:37 KST

Initiating Parallel DNS resolution of 1 host. at 15:37

Completed Parallel DNS resolution of 1 host. at 15:37, 0.00s elapsed

Initiating SYN Stealth Scan at 15:37

Scanning 192.168.235.132 [1000 ports]

Discovered open port 80/tcp on 192.168.235.132

Discovered open port 22/tcp on 192.168.235.132

Discovered open port 3306/tcp on 192.168.235.132

Completed SYN Stealth Scan at 15:37, 0.01s elapsed (1000 total ports)

Nmap scan report for 192.168.235.132

Host is up (0.0000060s latency).

Scanned at 2016-12-08 15:37:20 KST for 0s

Not shown: 997 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

3306/tcp open mysql

-v(verbose) 옵션을 주어 스캔 결과의 자세한 사항을 볼 수 있음

-vv 옵션을 주면 좀더 자세한 정보를 얻을 수 있음

3. 스텔스 스캔

[root@localhost ~]# nmap -sS 192.168.235.132

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-08 15:39 KST

Nmap scan report for 192.168.235.132

Host is up (0.0000060s latency).

Not shown: 997 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

3306/tcp open mysql

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

-sS 옵션을 주면 SYN 스텔스 스캔을 하게 되고 결과는 같지만, 스캔을 받은 쪽에서는 연결에 대한 로그가 남지 않음

4. 특정 포트 스캔

[root@localhost ~]# nmap -sF -p 21,80,3306 192.168.235.132

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-08 15:41 KST

Nmap scan report for 192.168.235.132

Host is up (0.000013s latency).

PORT STATE SERVICE

21/tcp closed ftp

80/tcp open|filtered http

3306/tcp open|filtered mysql

Nmap done: 1 IP address (1 host up) scanned in 1.24 seconds

오픈되어 있지 않은 포트는 closed로 표시되어 있는 것을 확인할 수 있음

5. 시간차를 이용한 스캔

[root@localhost ~]# nmap -sS -T 3 192.168.235.132

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-08 15:42 KST

Nmap scan report for 192.168.235.132

Host is up (0.0000050s latency).

Not shown: 997 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

3306/tcp open mysql

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

-T 뒤에 숫자는 Paranoid(0), Sneaky(1), Polite(2), Normal(3), Aggressive(4), Insane(5) 의 값임

6. 목적지 포트를 숨겨 방화벽 통과하기

[root@localhost ~]# nmap -f -sS 192.168.235.132

Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-08 15:43 KST

Nmap scan report for 192.168.235.132

Host is up (0.0000080s latency).

Not shown: 997 closed ports

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

3306/tcp open mysql

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

이 패킷은 처음 패킷이 16바이트, 뒤에 패킷이 4바이트로 나누어짐

 

 

 

참고

: https://blog.naver.com/dme1004/221692372409