Nmap 옵션 및 옵션
NMap은 대표적인 포트 스캔 프로그램이다.
다른 기능도 있을 수 있으나 나는 포트 스캔에만 사용한다.
NMap 을 다운로드한다.
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