Nmap Cheat Sheet For Penetration Testing

Nmap Cheat Sheet For Penetration Testing

What is Nmap?

Nmap (“Network Mapper”) is a free and open source utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime…more

nmap -sP scans the network, listing machines that respond to ping.
nmap -p 1-65535 -sV -sS -T4 targetFull TCP port scan using with service version detection – usually my first scan, I find T4 more accurate than T5 and still “pretty quick”.
nmap -v -sS -A -T4 targetPrints verbose output, runs stealth syn scan, T4 timing, OS and version detection + traceroute and scripts against target services.
nmap -v -sS -A -T5 targetPrints verbose output, runs stealth syn scan, T5 timing, OS and version detection + traceroute and scripts against target services.
nmap -v -sV -O -sS -T5 targetPrints verbose output, runs stealth syn scan, T5 timing, OS and version detection.
nmap -v -p 1-65535 -sV -O -sS -T4 targetPrints verbose output, runs stealth syn scan, T4 timing, OS and version detection + full port range scan.
nmap -v -p 1-65535 -sV -O -sS -T5 targetPrints verbose output, runs stealth syn scan, T5 timing, OS and version detection + full port range scan.
Agressive scan timings are faster, but could yeild inaccurate results!

T5 uses very aggressive scan timings and could lead to missed ports, T4 is a better compromise if you need fast results.

Nmap scan from file

nmap -iL ip-addresses.txtScans a list of IP addresses, you can add options before / after.

Nmap Scan all Ports

nmap -p- targetNmap scan all ports, TCP ports.

Nmap output formats

nmap -sV -p 139,445 -oG grep-output.txt “grepable” output to a file, in this example Netbios servers. E.g, The output file could be grepped for “Open”.
nmap -sS -sV -T5 --webxml -oX -
| xsltproc --output file.html -
Export nmap output to HTML report.

Nmap Netbios Examples

nmap -sV -v -p 139,445 all Netbios servers on subnet
nmap -sU --script nbstat.nse -p 137 targetNmap display Netbios name
nmap --script-args=unsafe=1 --script
smb-check-vulns.nse -p 445 target
Nmap check if Netbios servers are vulnerable to MS08-067
–script-args=unsafe=1 has the potential to crash servers / services

Becareful when running this command.

Nmap Nikto Scan

nmap -p80 -oG - | nikto.pl -h -Scans for http servers on port 80 and pipes into Nikto for scanning.
nmap -p80,443 -oG - | nikto.pl -h -Scans for http/https servers on port 80, 443 and pipes into Nikto for scanning.

Nmap Cheatsheet

Target Specification

Nmap allows hostnames, IP addresses, subnets.

Example blah.highon.coffee, nmap.org/24,; 10.0.0-255.1-254

-iLinputfilename: Input from list of hosts/networks
-iRnum hosts: Choose random targets
--excludehost1[,host2][,host3],… : Exclude hosts/networks
--excludefileexclude_file: Exclude list from file

Host Discovery

-sLList Scan – simply list targets to scan
-snNmap ping scan / sweep – runs a nmap network scan, with port scanning disabled
-PnTreat all hosts as online — skip host discovery
-PS/PA/PU/PY[portlist]TCP SYN/ACK, UDP or SCTP discovery to given ports. Allows you to specify a specific port nmap uses to verify a host is up e.g., -PS22 (by default nmap sends to a bunch of common ports, this allows you to be specific)
-PE/PP/PMICMP echo, timestamp, and netmask request discovery probes
-PO[protocol list]IP Protocol Ping
-n/-RNever do DNS resolution/Always resolve [default: sometimes]

Scan Techniques

TCP SYN scan
Connect scan
ACK scan
Window scan
Maimon scan
-sUUDP Scan
TCP Null scan
FIN scan
Xmas scan
--scanflagsCustomize TCP scan flags
-sI zombie host[:probeport]Idle scan
-sOIP protocol scan
-b "FTP relay host"FTP bounce scan

Port Specification and Scan Order

-pSpecify ports, e.g. -p80,443 or -p1-65535
-p U:PORTScan UDP ports with Nmap, e.g. -p U:53
-FFast mode, scans fewer ports than the default scan
-rScan ports consecutively – don’t randomize
--top-ports "number"Scan “number” most common ports
--port-ratio "ratio"Scan ports more common than “ratio”

Service Version Detection

-sVProbe open ports to determine service/version info
--version-intensity "level"Set from 0 (light) to 9 (try all probes)
--version-lightLimit to most likely probes (intensity 2)
--version-allTry every single probe (intensity 9)
--version-traceShow detailed version scan activity (for debugging)

Script Scan

-sCequivalent to –script=default
--script="Lua scripts"“Lua scripts” is a comma separated list of directories, script-files or script-categories
--script-args=n1=v1,[n2=v2,...]provide arguments to scripts
-script-args-file=filenameprovide NSE script args in a file
--script-traceShow all data sent and received
--script-updatedbUpdate script database
--script-help="Lua scripts"Show help about scripts

OS Detection

-OEnable OS Detection
--osscan-limitLimit OS detection to promising targets
--osscan-guessGuess OS more aggressively

Timing and Performance

Options which take TIME are in seconds, or append ‘ms’ (milliseconds), ‘s’ (seconds), ‘m’ (minutes), or ‘h’ (hours) to the value (e.g. 30m).

-T 0-5Set timing template – higher is faster (less accurate)
--min-hostgroup SIZE
--max-hostgroup SIZE
Parallel host scan group sizes
--min-parallelism NUMPROBES
--max-parallelism NUMPROBES
Probe parallelization
--min-rtt-timeout TIME
--max-rtt-timeout TIME
--initial-rtt-timeout TIME
Specifies probe round trip time
--max-retries TRIESCaps number of port scan probe retransmissions
--host-timeout TIMEGive up on target after this long
--scan-delay TIME
--max-scan-delay TIME
Adjust delay between probes
--min-rate NUMBERSend packets no slower than NUMBER per second
--max-rate NUMBERSend packets no faster than NUMBER per second

Firewalls IDS Evasion and Spoofing

-f; --mtu VALUEFragment packets (optionally w/given MTU)
-D decoy1,decoy2,MECloak a scan with decoys
-S IP-ADDRESSSpoof source address
-e IFACEUse specified interface
--source-port PORTNUM
Use given port number
--proxies url1,[url2],...Relay connections through HTTP / SOCKS4 proxies
--data-length NUMAppend random data to sent packets
--ip-options OPTIONSSend packets with specified ip options
--ttl VALUESet IP time to live field
--spoof-mac ADDR/PREFIX/VENDORSpoof NMAP MAC address
--badsumSend packets with a bogus TCP/UDP/SCTP checksum

Nmap Output Options

-oNOutput Normal
-oXOutput to XML
-oSScript Kiddie / 1337 speak… sigh
-oGOutput greppable – easy to grep nmap output
-oA BASENAMEOutput in the three major formats at once
-vIncrease verbosity level use -vv or more for greater effect
-dIncrease debugging level use -dd or more for greater effect
--reasonDisplay the reason a port is in a particular state
--openOnly show open or possibly open ports
--packet-traceShow all packets sent / received
--iflistPrint host interfaces and routes for debugging
--log-errorsLog errors/warnings to the normal-format output file
--append-outputAppend to rather than clobber specified output files
--resume FILENAMEResume an aborted scan
--stylesheet PATH/URLXSL stylesheet to transform XML output to HTML
--webxmlReference stylesheet from Nmap.Org for more portable XML
--no-stylesheetPrevent associating of XSL stylesheet w/XML output

Misc Nmap Options

-6Enable IPv6 scanning
-AEnable OS detection, version detection, script scanning, and traceroute
--datedir DIRNAMESpecify custom Nmap data file location
Send using raw ethernet frames or IP packets
--privilegedAssume that the user is fully privileged
--unprivilegedAssume the user lacks raw socket privileges
-VShow nmap version number
-hShow nmap help screen

Nmap Scan Optimisation

Nmap Rate

To speed up your scan increase the rate, be aware that setting a high rate value will result in a less accurate scan.



The maximum or minimum amount of parallel tasks.

TIP: If you have an basic IDS / portscan detection blocking your scans you could lower the –min-parallelism in an attempt to reduce the number of concurrent connections


Host Group Sizes

The number of hosts scanned at the same time, Note: if you are writing output to a file e.g., -oA you will need to wait for the host group to complete scanning before the nmap output will be written to the file. Therefore if you get a lagging host you will may end up waiting a while for the output file, which brings us on to… host timeout.


Host Timeout

Nmap allows you to specify the timeout, which is the length of time it waits before giving up on the target. Be careful setting this super low, as you may end up with inaccurate results.

The following example would giveup after 50 seconds.

--host-timeout 50 

Scan Delay

An extremely useful option to defeat basic port scan detection (SOHO devices and some IDS) that essentially monitor and block X amount of connects per second (syn flood etc).

--scan-delay 5s 

For example if you know you can get away with 2 req/sec without getting blacklisted then you could use:

--scan-delay 1.2

added 200ms for a buffer

Disable DNS Lookups

Assuming you do not want domain names being looked up, use the -n flag to dissable resolution and speed up the scan.

Nmap Black List Detection?

  1. It ussally takes and extemely long time to complete
  2. Droppped probes nmap will increase the timeout, but it’s likely you are already black listed
  3. To confirm, recheck a port that you know was open before

As far as I know there is no way of detecting for black listing within nmap natively.

Optimising Portscans for Targets

Once you have identified a target firewall / IDS you can look up the default settings for the portscan black list by reading the manual and use the nmap command switches above to obtain the best performance without getting black listed.

Complete Nmap tutorial


Leave a Reply