http://nmap.org/docs.html
主機(jī)發(fā)現(xiàn)(Host Discovery)
用于發(fā)現(xiàn)目標(biāo)主機(jī)是否處于活動狀態(tài)(Active)。
Nmap提供了多種檢測機(jī)制,可以更有效地辨識主機(jī)。例如可用來列舉目標(biāo)網(wǎng)絡(luò)中哪些主機(jī)已經(jīng)開啟,類似于Ping命令的功能。
端口掃描(Port Scanning)
用于掃描主機(jī)上的端口狀態(tài)。
Nmap可以將端口識別為開放(Open)、關(guān)閉(Closed)、過濾(Filtered)、未過濾(Unfiltered)、開放|過濾(Open|Filtered)、關(guān)閉|過濾(Closed|Filtered)。默認(rèn)情況下,Nmap會掃描1000個常用的端口,可以覆蓋大多數(shù)基本應(yīng)用情況。
版本偵測(Version Detection)
用于識別端口上運(yùn)行的應(yīng)用程序與程序版本。
Nmap目前可以識別數(shù)千種中應(yīng)用的簽名(Signatures),檢測數(shù)百種應(yīng)用協(xié)議。而對與不識別的應(yīng)用,Nmap默認(rèn)會將應(yīng)用的指紋(Fingerprint)打印出來,如果用于確知該應(yīng)用程序,那么用戶可以將信息提交到社區(qū),為社區(qū)做貢獻(xiàn)。
操作系統(tǒng)偵測(OS detection)
用于識別目標(biāo)機(jī)的操作系統(tǒng)類型、版本編號及設(shè)備類型。
Nmap目前提供了上千種操作系統(tǒng)或設(shè)備的指紋數(shù)據(jù)庫,可以識別通用PC系統(tǒng)、路由器、交換機(jī)等設(shè)備類型。
防火墻/IDS規(guī)避(Firewall/IDS evasion)
Nmap提供多種機(jī)制來規(guī)避防火墻、IDS的的屏蔽和檢查,便于秘密地探查目標(biāo)機(jī)的狀況。
基本的規(guī)避方式包括:分片(Fragment)/IP誘騙(IP decoys)/IP偽裝(IP spoofing)/MAC地址偽裝(MAC spoofing)等等。
NSE腳本引擎(Nmap Scripting Engine)
NSE是Nmap最強(qiáng)大最靈活的特性之一,可以用于增強(qiáng)主機(jī)發(fā)現(xiàn)、端口掃描、版本偵測、操作系統(tǒng)偵測等功能,還可以用來擴(kuò)展高級的功能如web掃描、漏洞發(fā)現(xiàn)、漏洞利用等等。Nmap使用Lua語言來作為NSE腳本語言,目前的Nmap腳本庫已經(jīng)支持350多個腳本。
-sS TCP SYN 掃描 (又稱半開放,或隱身掃描)
-P0/-Pn 絕大多數(shù)主機(jī)都拒絕ICMP,不加這個參數(shù)無法掃描
-sV 打開系統(tǒng)版本檢測
-O 嘗試識別遠(yuǎn)程操作系統(tǒng)
-sT (TCP connect()掃描)當(dāng)SYN掃描不能用時
-p 指定端口(Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9)
-oG (Grep輸出)
-sP 該選項(xiàng)告訴nmap僅僅進(jìn)行ping掃描(主機(jī)發(fā)現(xiàn)),然后打印出對掃描做出響應(yīng)的那些主機(jī)。
-T 設(shè)置時間模版 如:-T4 針對TCP端口禁止動態(tài)掃描延遲超過10ms,-T5對應(yīng)值為5ms。
-D 使用誘餌隱蔽掃描 為使誘餌掃描起作用,需要使遠(yuǎn)程主機(jī)認(rèn)為是誘餌在掃描目標(biāo)網(wǎng)絡(luò)。
-sL 列表掃描是主機(jī)發(fā)現(xiàn)的退化形式,它僅僅列出指定網(wǎng)絡(luò)上的每臺主機(jī),不發(fā)送任何報文到目標(biāo)主機(jī)。
-R (為所有目標(biāo)解析域名)告訴nmap永遠(yuǎn)對目標(biāo)ip地址作反向域名解析。一般只有當(dāng)發(fā)現(xiàn)機(jī)器正在允許時才進(jìn)行這項(xiàng)操作。
-F (快速(有限的端口)掃描)
-vv 讓你明白掃描的詳細(xì)過程,如果發(fā)現(xiàn)哪些過程是你不需要的,可以馬上調(diào)整
-n 在大范圍掃描地址時侯沒有用這個參數(shù)導(dǎo)致nmap異常慢,半天卡到那我卻不知道為什么,結(jié)果加-vv參數(shù)發(fā)現(xiàn),原來是把每個ip都dns解析一遍,加-n就可以不解析dns了
--script=showSMTPVersion.nse nmap加入了腳本掃描引擎,可以掃描網(wǎng)站目錄還有遠(yuǎn)程溢出和弱口令等
-iL c:\xx.txt 讀取c:\xx.txt的主機(jī)列表文件的ip
-oN c:\Vulnerable.txt 將探測結(jié)果保存在c:\Vulnerable.txt
-oX 以xml形式輸出
-A 同時打開操作系統(tǒng)指紋和版本檢測
-v 詳細(xì)輸出掃描情況.
--mtu
--send-eth
--data-length
--source-port
--randomize-host
-f
1) 獲取遠(yuǎn)程主機(jī)的系統(tǒng)類型及開放端口
nmap -sS -P0 -sV -O <target>
這里的 < target > 可以是單一 IP, 或主機(jī)名,或域名,或子網(wǎng)
2) 列出開放了指定端口的主機(jī)列表
nmap -sT -p 80 -oG – 192.168.1.* | grep open
3) 在網(wǎng)絡(luò)尋找所有在線主機(jī)
nmap -sP 192.168.0.*
或者也可用以下命令:
nmap -sP 192.168.0.0/24
指定 subnet
4) Ping 指定范圍內(nèi)的 IP 地址
nmap -sP 192.168.1.100-254
5) 在某段子網(wǎng)上查找未占用的 IP
nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00" /proc/net/arp
6) 在局域網(wǎng)上掃找 Conficker 蠕蟲病毒
nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args safe=1 192.168.0.1-254
7) 掃描網(wǎng)絡(luò)上的惡意接入點(diǎn) (rogue APs).
nmap -A -p1-85,113,443,8080-8100 -T4 --min-hostgroup 50 --max-rtt-timeout 2000 --initial-rtt-timeout 300 --max-retries 3 --host-timeout 20m --max-scan-delay 1000 -oA wapscan 10.0.0.0/8
8 ) 使用誘餌掃描方法來掃描主機(jī)端口
sudo nmap -sS 192.168.0.10 -D 192.168.0.2
9) 為一個子網(wǎng)列出反向 DNS 記錄
nmap -R -sL 209.85.229.99/27 | awk '{if($3=="not")print"("$2") no PTR";else print$3" is "$2}' | grep '('
10) 顯示網(wǎng)絡(luò)上共有多少臺 Linux 及 Win 設(shè)備?
sudo nmap -F -O 192.168.0.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) device"
首先掃描存活的主機(jī),然后使用cut命令只取ip到一個文件,在掃描該文件中的ip。
nmap -sP 192.168.8.1-254 -oN /root/Desktop/test.log
cat test.log | grep for | cut -d ' ' -f5 > test2.log
nmap -sS -iL test2.log
TCP空閑掃描
msf > use auxiliary/scanner/ip/ipidseq
msf > set RHOST 192.168.7.0/24
msf > set THREADS 80
msf > run
nmap -sS -sI 空閑IP 目標(biāo)IP
############防火墻/IDS規(guī)避(Firewall/IDS evasion)
nmap -sS -v -f --mtu 32 --send-eth --data-length 50 --source-port 99 --randomize-host -T 5 192.168.1.1/24
############NSE腳本引擎(Nmap Scripting Engine)
nmap --script=smb-enum-users 192.168.80.129
nmap --script=smb-brute 192.168.80.129
nmap --script=smb-pwdump --script-args=smbuser=epp,smbpass=password 192.168.80.129
nmap --script=smb-brute --script-args=userdb=usernames.txt,passdb=password.txt 192.168.80.1/24
nmap --script=smb-enum-shares 192.168.80.129
nmap --script=smb-check-vulns 192.168.80.129
smb-pwdump.nse 使用(bt5):
root@bt:~# wget http://swamp.foofus.net/fizzgig/pwdump/pwdump6-1.7.2-exe-only.tar.bz2
root@bt:~# tar -jxvf pwdump6-1.7.2-exe-only.tar.bz2 -C /usr/local/share/nmap/nselib/data
root@bt:/usr/local/share/nmap/scripts# wget https://svn.nmap.org/nmap-exp/dev/nmap/scripts/smb-pwdump.nse
root@bt:~# nmap --script=smb-pwdump.nse --script-args=smbuser=test,smbpass=123456 192.168.1.108 -p 135,445,139
nmap -p445 --script=smb-pwdump --script-args=smbuser=ron,smbpass=iagotest2k3,rtable=/tmp/alpha/*.rt <host>
Perhaps
nmap --proxy ftp://anonymous@ftphost -PK -sK