1. 대상 사양(TARGET SPECIFICATION)
옵션 |
설명 |
예시 |
-iL <inputfilename> |
스캔할 대상을 파일에서 가져옴 |
nmap -iL /hagsig/scanlist.txt |
-iR <num hosts> |
지정한 숫자만큼 무작위 대상을 스캔 |
nmap -iR 50 |
--exclude <host1, host2, …> |
특정 대상을 제외하고 스캔 |
nmap --exclude 192.168.0.10 |
--excludefile <exclude_file> |
제외할 대상을 파일에서 가져옴 |
nmap --excludefile ./exlist.txt |
-n |
Reverse DNS resolution 하지 않음 |
nmap -n 192.168.1.1 |
-R |
항상 Reverse DNS resolution 수행 |
nmap -R 192.168.1.1 |
--resolve-all |
hostname이 둘 이상의 주소를 가질 경우, 모두 스캔 |
nmap --resolve-all yeonjun.tistory.com |
--unique |
동일한 주소를 사용하는 hostname이 둘 이상일 경우, 중복 스캔 하지 않음 |
nmap —unique 192.168.1.1 |
--system-dns |
시스템에 설정된 DNS 서버를 사용 |
nmap -sn 192.168.0.17 --system-dns |
--dns-servers <server1, server2, …> |
DNS 서버를 정의할 수 있음 |
nmap 192.168.1.1 --dns-servers 8.8.8.8 |
2. HOST 발견 옵션(HOST DISCOVERY)
옵션 |
설명 |
예시 |
-sL |
스캔할 대상을 출력 |
nmap -sL 192.168.1.1/24 |
-sn |
연결 가능한 대상만 출력 |
nmap -sn -T4 yeonjun.tistory.com/24 |
-Pn |
ping 테스트 없이 모든 대상을 스캔 |
nmap -v -iR 10000 -Pn -p 80 |
-PS [portlist] |
TCP SYN Ping |
nmap 192.168.1.1-5 -PS 22-25,80 |
-PA [portlist] |
TCP ACK Ping |
nmap 192.168.1.1-5 -PA 22-25,80 |
-PU [portlist] |
UDP Ping |
nmap 192.168.1.1-5 -PU 22-25,80 |
-PY [portlist] |
SCTP INIT Ping |
nmap 192.168.1.1 -PY 22-25,80 |
-PE |
ICMP Ping |
nmap -PE 192.168.1.1 |
-PP |
ICMP Timestamp Ping |
nmap -PP 192.168.1.1 |
-PM |
ICMP Netmask Ping |
nmap -PM 192.168.1.1 |
-PO [protocol list] |
IP Protocol Ping |
nmap -PO 192.168.1.1 |
--disable-arg-ping |
ARP or IPv6 ND 비활성화 |
nmap --disable-arp-ping 192.168.1.1 |
--discovery-ignore-rst |
RST 응답 대상에 대한 스캔 비활성화 |
nmap --discovery-ignore-rst 192.168.1.1 |
--traceroute |
경로 추적을 할 수 있음 |
nmap --traceroute yeonjun.tistory.com |
3. 스캐닝 옵션(SCAN TECHNIQUES)
옵션 |
설명 |
예시 |
-sS |
TCP SYN 스캔 |
nmap -sS 192.168.1.1 |
-sT |
TCP Connect 스캔 |
nmap -sT 192.168.1.1 |
-sA |
TCP ACK 스캔 |
nmap -sA 192.168.1.1 |
-sW |
TCP Window 스캔 |
nmap -sW 192.168.1.1 |
-sM |
TCP Maimon 스캔 |
nmap -sM 192.168.1.1 |
-sU |
UDP 스캔 |
nmap -sU 192.168.1.1 |
-sN |
TCP NULL 스캔 |
nmap -sN 192.168.1.1 |
-sF |
TCP FIN 스캔 |
nmap -sF 192.168.1.1 |
-sX |
TCP Xmas 스캔 |
nmap -sX 192.168.1.1 |
--scanflags <flags> |
Custom TCP 스캔 |
nmap --scanflags SYNFIN 192.168.1.1 |
-sl <zombie host[:probeport]> |
idle 스캔 |
nmap -sl 192.168.1.50 192.168.1.1 |
-sY |
SCTP INIT 스캔 |
nmap -sY 192.168.1.1 |
-sZ |
SCTP COOKIE-ECHO 스캔 |
nmap -sZ 192.168.1.1 |
-sO |
IP protocol 스캔 |
nmap -sO 192.168.1.1 |
-b |
FTP Bounce 스캔 |
nmap -Pn -b http://ftp.yeon.com tis.com |
4. 포트 사양 및 스캔 순서(PORT SPECIFICATION AND SCAN ORDER)
옵션 |
설명 |
예시 |
-p <port ranges> |
지정된 포트만 스캔 |
nmap 192.168.1.1 -p 80 |
--exclude-ports <port ranges> |
지정된 포트를 제외한 후 스캔 |
nmap 192.168.1.1 --exclude-ports 80 |
-F |
고속모드로 스캔 |
nmap -F 192.168.1.1 |
-r |
순차적으로 스캔 |
nmap -r 192.168.1.1 |
--top-ports <number> |
지정한 숫자만큼 common 포트 스캔 |
nmap --top-ports 10 192.168.1.1 |
--port-ratio <ratio> |
지정한 비율 보다 높은 common 포트 스캔 |
nmap --port-ratio 0.1 192.168.1.1 |
5. 서비스/버전 탐색 옵션 (SERVICE/VERSION DETECTION)
옵션 |
설명 |
예시 |
-sV |
포트의 서비스/버전 정보를 확인 |
nmap -sV 192.168.1.1 |
--allports |
제외없이 모든 포트 스캔 |
nmap -sV --allports yeonjun.tistory.com |
--version-intensity <level> |
버전 정보 확인 레벨 지정 (0~9) |
nmap -sV --version-intensity 5 192.168.1.1 |
--version-light |
레벨 2의 intensity로 스캔 |
nmap -sV --version-light 192.168.1.1 |
--version-all |
레벨 9의 intensity로 스캔 |
nmap -sV --version-all 192.168.1.1 |
--version-trace |
스캐닝 활동에 발견된 모든 버전 정보 출력(디버깅용) |
nmap -sV --version-trace 192.168.1.1 |
6. 스크립트 스캔 옵션 (SCRIPT SCAN)
옵션 |
설명 |
예시 |
-sC |
기본 스크립트로 대상 스캔 |
nmap -sC 192.168.1.1 |
--script default |
-sC와 동일 |
nmap --script default 192.168.1.1 |
--script <Lua scripts> |
Lua 스크립트로 대상 스캔 |
nmap --script yeonlua 192.168.1.1 |
--script-args <n1=v1,n2=v2,…> |
스크립트에 인수 제공 |
nmap --script yeonscript --srcipt-args account=admin 192.168.1.1 |
--script-args-file <filename> |
NSE 스크립트 인수를 파일에서 제공 |
nmap --script yeonscript --script-args-file argsfile.txt 192.168.1.1 |
--script-trace |
스크립트를 통해 송수신된 데이터 출력 |
nmap --script yeonscropt --script-trace 192.168.1.1 |
--script-updatedb |
스크립트 데이터베이스 업데이트 |
nmap --script-updatedb |
--script-help <Lua scripts> |
스크립트에 대한 도움말 출력 |
nmap --script-help http- hedaers scanme.nmap.org |
--script=http-enum <target> |
http/https 웹 서비스만 검색 |
nmap -sV --script=http-enum 192.168.1.1 |
7. OS 탐색 옵션(OS DETECTION)
옵션 |
설명 |
예시 |
-O |
OS 탐색 허용 |
nmap -O 192.168.1.1 |
--osscan-limit |
지정된 대상에게만 OS 탐색 허용 |
nmap -O --osscan-limit 192.168.1.1 |
--osscan-guess; --fuzzy |
보다 자세한 OS 탐색기능 사용 |
nmap -O --osscan-guess 192.168.1.1 |
--max-os-tries |
OS 탐색 실패 시 재시도 횟수 지정 |
nmap -O --max-os-tries 3 192.168.1.1 |
8. 타이밍과 성능 옵션 (TIMING AND PERFORMANCE)
옵션 |
설명 |
예시 |
-T <0-5> |
스캔 속도 설정(높을수록 빠름) |
nmap -T5 192.168.1.1 |
--min-hostgroup/max-hostgroup <size> |
동시에 스캔할 스캔그룹을 지정 |
nmap --min-hostgroup 50 192.168.1.1 |
--min-parallelism/max-parallelelsim <numprobes> |
정찰을 동시에 수행 |
nmap --min-parallelelism 10 192.168.1.1 |
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time> |
정찰 왕복시간 지정 |
nmap --min-rtt-timeout 100ms 192.168.1.1 |
--max-retries <tries> |
포트스캔 정찰 재전송 횟수 제한 |
nmap --max-retries 10 192.168.1.1 |
--host-timeout <time> |
지정한 시간이 지나면 대상을 포기 |
nmap --host-timeout 30m 192.168.1.1 |
--scan-delay <time>/--max-scan-delay <time> |
정찰 시간 간격 조정 |
nmap --scan-delay 1s 192.168.1.1 |
--min-rate <number> |
초당 지정한 숫자 보다 느리지 않은 패킷을 전송 |
nmap --min-rate 50 192.168.1.1 |
--max-rate <number> |
초당 지정한 숫자 보다 빠르지 않은 패킷을 전송 |
nmap --max-rate 50 192.168.1.1 |
9. 방화벽/IDS 회피 및 스푸핑 옵션(FIREWALL/IDS EVASION AND SPOOFING)
옵션 |
설명 |
예시 |
-f; --mtu <val> |
지정한 값으로 패킷을 조각화 함 |
nmap -f --mtu 32 192.168.1.1 |
-D <decoy1,decoy2,…> |
지정한 decoy로 스캔 |
nmap -D RND:10 192.168.1.1 |
-S <IP_Address> |
지정한 IP주소로 변조하여 보냄 |
nmap -S 192.168.1.5 192.168.1.1 |
-e <iface> |
지정한 인터페이스 사용 |
nmap -e eth0 192.168.1.1 |
-g/--source-port <portnum> |
지정한 포트번호를 출발지 포트로 지정 |
nmap --source-port 7777 192.168.1.1 |
--proxies <url1,url2,…> |
HTTP/SOCKS4 프록시 지정 |
nmap -sV -Pn -n — proxies socks4://127.0.0.1:9050 scanme.nmap.org |
--data <hex string> |
전송하는 패킷에 페이로드를 추가 |
nmap --data 0xA 192.168.1.1 |
--data-length <num> |
전송하는 패킷에 지정한 길이의 랜덤 데이터를 추가 |
nmap --data-length 20 192.168.1.1 |
--ip-options <options> |
지정한 옵션으로 패킷을 보냄 |
nmap --ip-options “\x01\x07\x27\x04\x00*36” -PO -sS -p80 192.168.1.1 |
--ttl <val> |
지정한 값으로 TTL 값을 지정 |
nmap --ttl 64 192.168.1.1 |
--spoof-mac <mac address/prefix/vendor name> |
지정한 MAC 주소로 변조하여 보냄 |
nmap --spoof-mac yeonjun 192.168.1.1 |
--badsum |
잘못된 체크섬으로 패킷을 보냄 |
nmap --badsum 192.168.1.1 |
10. 출력 옵션(OUTPUT)
옵션 |
설명 |
예시 |
-oN |
스캔 결과를 일반 형식으로 저장 |
nmap 192.168.1.1 -oN yeon.nmap |
-oX |
스캔 결과를 XML 형식으로 저장 |
nmap 192.168.1.1 -oX yeon.xml |
-oS |
스캔 결과를 스크립트 키디 형식으로 저장 |
nmap 192.168.1.1 -oS yeon.txt |
-oG |
스캔 결과를 grepable 형식으로 저장 |
nmap 192.168.1.1 -oG yeon.gnmap |
-oA |
스캔 결과를 -oN, -oX, -oG 형식으로 모두 저장 |
nmap 192.168.1.1 -oA yeon |
-v |
더 많은 정보를 출력(-vv 이상 사용 시 더 많은 정보 출력) |
nmap -v 192.168.1.1 |
-d |
디버깅 수준을 높임(-dd 이상 사용 시 더 높은 수준을 사용) |
nmap -d 192.168.1.1 |
--reason |
포트가 해당 상태인 이유를 출력 |
nmap --reason 192.168.1.1 |
--open |
열려있는 포트만 표시 |
nmap --open 192.168.1.1 |
--packet-trace |
전송 및 수신된 모든 패킷 표시 |
nmap --packet-trace 192.168.1.1 |
--iflist |
호스트 인터페이스 및 경로 표시(디버깅용) |
nmap --iflist |
--append-output |
출력 결과를 파일에 덮어쓰지 않고 이어쓰고 싶을 시 사용 |
nmap 192.168.1.1 -oN yeon.nmap --append-output |
--resume <logfilename> |
중단된 스캔을 다시 시작함 |
nmap --resume yeon.file |
--noninteractive |
백그라운드에서 Nmap 실행 시, 터미널을 제어 하는 것을 방지함 |
nmap --noninteractive 192.168.1.1 |
--stylesheet <path or URL> |
스캔 결과를 XSL 스타일시트 형식으로 저장 |
nmap --stylesheet 192.168.1.1 |
--webxml |
--stylesheet 옵션의 별칭 |
nmap --webxml 192.168.1.1 |
--no-stylesheet |
XSL 스타일 시트를 사용하지 않도록 지정 |
nmap --no-stylesheet 192.168.1.1 |
11. 기타 옵션(MISC)
옵션 |
설명 |
예시 |
-6 |
IPV6 스캔 활성화 |
nmap -6 yeon.com |
-A |
공격적 스캔(OS 감지, 버전 감지, 스크립트 스캔, 경로 추적) |
nmap -A 192.168.1.1 |
--datadir <dirname> |
지정한 datadir 파일을 사용 |
nmap --datadir /yeon 192.168.1.1 |
--servicedb <services file> |
지정한 servicedb 파일을 사용 |
nmap --servicedb yeon.db 192.168.1.1 |
--versiondb <service probes file> |
지정한 versiondb 파일을 사용 |
nmap --versiondb yeon.db 192.168.1.1 |
--send-eth |
Raw Ethernet 패킷 전송 |
nmap --send-eth 192.168.1.1 |
--send-ip |
IP 패킷 전송 |
nmap --send-ip 192.168.1.1 |
--privileged |
관리자 권한이 있음을 지정함 |
nmap --privileged 192.168.1.1 |
--unprivileged |
관리자 권한이 없음을 지정함 |
nmap --unprivileged 192.168.1.1 |
--release-memory |
종료전 할당된 메모리를 해제함 |
nmap --release-memory 192.168.1.1 |
-V |
nmap 버전 정보 출력 |
nmap -V |
-h |
nmap 도움말 출력 |
nmap -h |