Nmap은 포트 스캐닝을 해주는 정말로 정말로 정말로 정말로 강력한 도구이다. 아마 이 정보 보호판에서 스캐닝 툴에서는 압도적인 성능을 가지고 있지 않을까 라는 생각이 든다. 그만큼 지원하는 많은 강력한 기능이 있다. 이번 포스팅에서는 CEH공부를 하면서 본 새로운 옵션들을 정리할 겸 아예 nmap 옵션의 모든 것을 정리해보려고 한다.
*이 포스팅에는 nmap의 설치방법이 들어있지 않습니다.*
Host 발견 옵션
- -sL : List SCAN 옵션, target network의 alive한 호스트를 list한다.
- -sn : Ping SCAN 옵션, target network에 ICMP Ping을 발송한다.
- -Pn : Target Network의 모든 Host를 alive한 상태로 간주하여 스캐닝을 시도한다.
- -PS/PA/PU/PV[portlist] : 주어진 [portlist]에 TCP SYN/ACK, UDP, SCTP 스캐닝을 시도한다.
- -PE/PP/PM : target에 대해 ICMP Echo / Timestamp / Netmask를 요청한다.
- -n/-R : 절대로 DNS 변환을 허용하지 않는다 / 항상 허용한다.
- --dns-servers : DNS server를 지정한다.
- --system-dns : OS's의 DNS 변환을 사용한다.
- --traceroute : 호스트에게 Trace Hop Path를 탐색한다. >> tracert다
SCANNING 옵션
- -sS/sT/sA/sW/sM : TCP SYN/Connect()/ACK/Window/Maimon Scan을 시도한다.
- -sU : UDP 스캔을 시도한다.
- -sN/sF/sX : TCP Null / Fin / Xmas Scan을 시도한다.
- -sl <zombie host[:probeport]> : idle Scan을 시도한다. zombie로 정찰 포트는 [probeport]를 사용한다,
- -sY/sZ : SCIP INIT/COOKIE-ECHO Scan을 시도한다.
- -sO : IP Protocol Scan을 시도한다(이거 무슨 스캔방법이더라)
- -b : FTP Bounce Scan을 시도한다.
Port관련 옵션
- -p <port-range> : 지정된 포트범위를 스캔한다.
- --exclude-ports <port-range> : 스캔에서 지정된 포트범위는 제외한다.
- -F : 기본적인 스캔보다 적은 양의 포트를 스캔한다.
- -r : 포트스캔을 랜덤화된 방식으로 하지 않고, 순차적으로 한다.(이걸 왜하는거지?)
- --top-ports <number> : 위에서부터 <number>만큼의 common포트를 탐색한다.(nmap에서 지정한 순서같다)
- --port-ratio <ratio> : <ratio>비율보다 높게 common한 포트를 탐색한다.(nmap에서 지정한 순서같다)
Service/Version 탐색 옵션
- -sV : 오픈된 포트에 대해서 서비스와 버전정보를 같이 탐색한다.
- --version-intensity <level> : 0~9로 <level>을 지정할 수 있다. 얼마나 version 탐색을 정밀하게 할지 이다.
- --version-light : <level>2의 intensity로 스캔한다.
- --version-all : <level> 9의 intensity로 스캔한다.
- --version-trace : 스캐닝활동에 발견되는 모든 버전정보를 표현한다.(디버깅용도로 사용)
Script 옵션
- -sC : default script로 동작한다.
- --script=<Lua Scripts> : Lua언어로 작성된 scripts 파일 .nse를 지정하여 동작시킨다.
- --script-args<n1=v1,[n2=v2]> : script에 인수를 제공한다.
- --script-args-file=filename : NSE script args를 file에서 제공한다.
- --script-trace : script를 통해서 발송되는 모든 송/수신 데이터를 보여준다.
- --script-updatedb : script database를 업그레이드한다.
- --script-help=<lua scripts> : scripts의 help를 보여준다.(man인듯, 물론 script에 help를 걸어주어야한다.)
OS 탐색 옵션
- -O : OS 탐색을 허용한다.
- --osscan-limit : 지정된 타겟에대해서만 os scan을 허용한다.
- --osscan-guess : nmap에서 시행하는 os 추측을 더 적극적으로 사용한다.
타이밍과 동작퍼포먼스 옵션
- -T<0-5> : 5로 갈수록 더 빠르게 스캔하는 내용이다.(느리게 스캔하는 이유는 방화벽이나 IDS의 탐색을 회피하기 위함이다.)
- --min-hostgroup/max-hostgroup <size> : 동시에 스캔할 스캔그룹을 지정한다.
- --min-parallelism/max-parallellism <numprobes> : 정찰을 병렬화 한다.(한번에 한다.)
- --min-rtt-timeout/max-rtt-timeout/initial-rtt-time <time> : <time>은 단위로 s나 m, ms, h를 사용한다. round trip time을 지정한다.
- --max-retries <tries> : 포트재전송 횟수를 지정한다.
- --host-timeout <time> : <time>의 시간이 지나면 해당 호스트 탐색은 포기한다.
- --scan-delay/--max-scan-delay <time> : 프로브발송간의 간격을 지정한다.
- --min-rate/max-rate <number> : 초당 <number>번의 패킷을 발송하는 간격을 최소/최대발송간격으로 잡는다
방화벽과 IDS 회피 옵션
- -f / --mtu <val> : 패킷을 fragmentation한다.
- -D <decoy1, decoy2> : decoy를 설정하여 스캔을 지정한다.
- -S <IP_Address> : IP주소를 <IP_Address>로 spoof해서 발송한다.
- -e <iface> : 인터페이스를 지정한다.
- -g/--source-port <portnum> : 스캔시 source포트를 <portnum>으로 사용한다.
- --proxies <url1,[url2]> : HTTP/SOCKS4를 이용해서 프록시를 지정한다.
- --data <hex String> : 발송하는 패킷의 payload를 설정한다.
- --data-string <string> : 발송하는 패킷에 <String>을 덧붙인다.
- --data-length <num> : <num>길이의 랜덤한 난수를 발송한다.
- --ip-options <options> : 지정된 <options>로 패킷을 발송한다.
- --ttl <val> : 패킷의 ttl을 지정한다.
- --spoof-mac <mac address/prefix/vender name> : Mac address를 spoof해서 발송한다.
- --badsum : 잘못된 checksum으로 패킷을 발송한다.
출력 옵션
- -oN/oX/oS/oG <file> : 스캐닝의 결과를 Normal/XML/sl<rlpt kiddi3(이게 ㅜ머야 ㅅㅂ)/Grepable format으로 지정한다. 각각 file명을 지정하여 저장할 수 있다.
- -oA <basename> : 출력을 세가지 주된형태로 출력할 수 있다.
- -v : 자세하게 출력한다.(-vv를 쓰면 더 자세해짐)
- -d : 디버깅 레벨을 올린다.(-dd를 쓰면 디버깅 레벨이 더욱 올라간다)
- --reason : 포트가 해당상태인 이유를 출력한다.
- --open : 오직 open된 포트만을 표현한다.
- --packet-trace : 모든 전송/수신된 패킷을 보여준다.
- --iflist : host 인터페이스와 router를 표시한다.
- --append-output : 결과파일에 출력할때 덮어쓰기가 아닌 이어쓰기로 출력한다.
- --resume <filename> : 취소된 스캐닝을 지속한다.
- --stylesheet <path/URL> : 스타일 시트를 지정한다.
- --webxml : 지정한 스타일이 있는 nmap.ort공식홈페이지를 참조하자
- --no-stylesheet : XML의 결과에 스타일을 지정하는것을 방지한다.
기타 옵션
- -6 : Ipv6 Scanning을 지원한다.
- -A : OS 탐색, version탐색, script 스캐닝, traceroute를 다 시행한다.
- --datadir <dirname> : nmap data file을 지정한다.
- --send-eth/--send-ip : raw ethernet frames나 ip packet을 전송한다.
- --privileged : 스캐닝유저가 privileged를 가졌다고 가정하고 스캐닝을 동작한다.
- --privileged : 스캐닝유저가 privileged를 가지지 못했다고 가정하고 스캐닝을 동작한다.
- -V : version number를 표현한다.
- -h : option 설명을 출력한다.
출처 : https://nmap.org/book/man-briefoptions.html
버릴 옵션이 단 하나도 없다.(아 몇개는 버려도 된다. -r? 그건 옵션이 아니다) 다 외우고 있을 필요는 없지만, 확실히 머리에 가지고 있으면 좋은거 같다.
'정보보안-이론 > XX에 대하여' 카테고리의 다른 글
DumpSec에 대하여 (0) | 2021.05.18 |
---|---|
SLOW HTTP공격에 대하여 (0) | 2021.05.16 |
IDLE SCAN에 대하여 (0) | 2021.05.15 |
N-tier Architecture에 대하여 (0) | 2021.05.15 |
PCI-DSS에 대하여 (0) | 2021.05.14 |