Nmap提供了四項(xiàng)基本功能(主機(jī)發(fā)現(xiàn)、端口掃描、服務(wù)與版本偵測(cè)、OS偵測(cè))及豐富的腳本庫(kù)。Nmap既能應(yīng)用于簡(jiǎn)單的網(wǎng)絡(luò)信息掃描,也能用在高級(jí)、復(fù)雜、特定的環(huán)境中:例如掃描互聯(lián)網(wǎng)上大量的主機(jī);繞開(kāi)防火墻/IDS/IPS;掃描Web站點(diǎn);掃描路由器等等。
簡(jiǎn)要回顧Nmap簡(jiǎn)單的掃描方式:
1 2 3 4 5 6 7 8 9 | 全面掃描:nmap-T4 -A targetip 主機(jī)發(fā)現(xiàn):nmap-T4 -sn targetip 端口掃描:nmap-T4 targetip 服務(wù)掃描:nmap-T4 -sV targetip 操作系統(tǒng)掃描:nmap-T4 -O targetip |
上述的掃描方式能滿足一般的信息搜集需求。而若想利用Nmap探索出特定的場(chǎng)景中更詳細(xì)的信息,則需仔細(xì)地設(shè)計(jì)Nmap命令行參數(shù),以便精確地控制Nmap的掃描行為。
下面列舉比較實(shí)用的高級(jí)應(yīng)用場(chǎng)景和技巧。
Nmap中提供了–iflist選項(xiàng)來(lái)查看本地主機(jī)的接口信息與路由信息。當(dāng)遇到無(wú)法達(dá)到目標(biāo)主機(jī)或想選擇從多塊網(wǎng)卡中某一特定網(wǎng)卡訪問(wèn)目標(biāo)主機(jī)時(shí),可以查看nmap –iflist中提供的網(wǎng)絡(luò)接口信息。
nmap –iflist
在Nmap可指定用哪個(gè)網(wǎng)口發(fā)送數(shù)據(jù),-e <interface>選項(xiàng)。接口的詳細(xì)信息可以參考–iflist選項(xiàng)輸出結(jié)果。
示例:
nmap -e eth0 targetip
Nmap也可以顯式地指定發(fā)送的源端IP地址。使用-S <spoofip>選項(xiàng),nmap將用指定的spoofip作為源端IP來(lái)發(fā)送探測(cè)包。
另外可以使用Decoy(誘騙)方式來(lái)掩蓋真實(shí)的掃描地址,例如-D ip1,ip2,ip3,ip4,ME,這樣就會(huì)產(chǎn)生多個(gè)虛假的ip同時(shí)對(duì)目標(biāo)機(jī)進(jìn)行探測(cè),其中ME代表本機(jī)的真實(shí)地址,這樣對(duì)方的防火墻不容易識(shí)別出是掃描者的身份。
nmap -T4 -F -n -Pn -D192.168.1.100,192.168.1.101,192.168.1.102,ME 192.168.1.1
Nmap提供–scanflags選項(xiàng),用戶可以對(duì)需要發(fā)送的TCP探測(cè)包的標(biāo)志位進(jìn)行完全的控制??梢允褂脭?shù)字或符號(hào)指定TCP標(biāo)志位:URG, ACK, PSH,RST, SYN,and FIN。
例如,
nmap -sX -T4 –scanflags URGACKPSHRSTSYNFINtargetip
此命令設(shè)置全部的TCP標(biāo)志位為1,可以用于某些特殊場(chǎng)景的探測(cè)。
另外使用–ip-options可以定制IP包的options字段。
使用-S指定虛假的IP地址,-D指定一組誘騙IP地址(ME代表真實(shí)地址)。-e指定發(fā)送探測(cè)包的網(wǎng)絡(luò)接口,-g(–source- port)指定源端口,-f指定使用IP分片方式發(fā)送探測(cè)包,–spoof-mac指定使用欺騙的MAC地址。–ttl指定生存時(shí)間。
防火墻在今天網(wǎng)絡(luò)安全中扮演著重要的角色,如果能對(duì)防火墻系統(tǒng)進(jìn)行詳細(xì)的探測(cè),那么繞開(kāi)防火墻或滲透防火墻就更加容易。所以,此處講解利用Nmap獲取防火墻基本信息典型的用法。
為了獲取防火墻全面的信息,需盡可能多地結(jié)合不同掃描方式來(lái)探測(cè)其狀態(tài)。在設(shè)計(jì)命令行參數(shù)時(shí),可以綜合網(wǎng)絡(luò)環(huán)境來(lái)微調(diào)時(shí)序參數(shù),以便加快掃描速度。
SYN掃描
首先可以利用基本的SYN掃描方式探測(cè)其端口開(kāi)放狀態(tài)。
nmap -sS -T4 www.91ri.org
掃描輸出為:
1 2 3 4 5 6 7 8 9 | All 997 ports are filtered PORT STATE SERVICE 80/tcp open http 113/tcp closed auth 507/tcp open crs |
我們可以看到SYN方式探測(cè)到3個(gè)端口開(kāi)放,而有997個(gè)端口被過(guò)濾。Nmap默認(rèn)掃描只掃描1000個(gè)最可能開(kāi)放的端口,如果想掃描全部的端口.
使用命令nmap -sS -T4-p- www.91ri.org
FIN掃描
然后可以利用FIN掃描方式探測(cè)防火墻狀態(tài)。FIN掃描方式用于識(shí)別端口是否關(guān)閉,收到RST回復(fù)說(shuō)明該端口關(guān)閉,否則說(shuō)明是open或filtered狀態(tài)。
nmap -sF -T4 www.91ri.org
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | PORT STATE SERVICE 7/tcp open|filtered echo 9/tcp open|filtered discard 11/tcp open|filtered systat 13/tcp open|filtered daytime 23/tcp open|filtered telnet 25/tcp open|filtered smtp 37/tcp open|filtered time 79/tcp open|filtered finger 80/tcp open|filtered http 更多端口,此處省略 |
ACK掃描
然后利用ACK掃描判斷端口是否被過(guò)濾。針對(duì)ACK探測(cè)包,未被過(guò)濾的端口(無(wú)論打開(kāi)、關(guān)閉)會(huì)回復(fù)RST包。
nmap -sA -T4 www.91ri.org
掃描輸出為:
1 2 3 4 5 6 7 8 9 | Not shown: 997 unfiltered ports PORT STATE SERVICE 135/tcp filtered msrpc 1434/tcp filtered ms-sql-m 32777/tcp filtered sometimes-rpc17 |
從結(jié)果可以997個(gè)端口是未被過(guò)濾的(unfiltered),而3個(gè)(135/1434/32777)被過(guò)濾了。所以,將ACK與FIN掃描 的結(jié)果結(jié)合分析,我們可以找到很多開(kāi)放的端口。例如7號(hào)端口,F(xiàn)IN中得出的狀態(tài)是:open或filtered,從ACK中得出的狀態(tài)是 unfiltered,那么該端口只能是open的。
Window掃描
當(dāng)然也可以利用Window掃描方式,得出一些端口信息,可以與之前掃描分析的結(jié)果相互補(bǔ)充。Window掃描方式只對(duì)某些TCPIP協(xié)議棧才有效。
window掃描原理與ACK類似,發(fā)送ACK包探測(cè)目標(biāo)端口,對(duì)回復(fù)的RST包中的Window size進(jìn)行解析。在某些TCPIP協(xié)議棧實(shí)現(xiàn)中,關(guān)閉的端口在RST中會(huì)將Window size設(shè)置為0;而開(kāi)放的端口將Window size設(shè)置成非0的值。
nmap -sW -p- -T4 www.91ri.org
輸出結(jié)果:
1 2 3 4 5 6 7 8 9 10 11 | PORT STATE SERVICE 7/tcp open echo 9/tcp open discard 11/tcp open systat 13/tcp open daytime 更多端口,此處省略 |
在采用多種方式獲取出防火墻狀態(tài)后,可以進(jìn)一步進(jìn)行應(yīng)用程序與版本偵測(cè)及OS偵測(cè)。
此處不再贅述!91ri.org:小編這里份關(guān)于使用nmap突破防火墻的文章 推薦一下《Nmap繞過(guò)防火墻&腳本的使用》
Nmap內(nèi)部維護(hù)了一份系統(tǒng)與設(shè)備的數(shù)據(jù)庫(kù)(nmap-os-db),能夠識(shí)別數(shù)千種不同系統(tǒng)與設(shè)備。所以,可以用來(lái)掃描主流的路由器設(shè)備。
nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16
思科路由器會(huì)在上述端口中運(yùn)行了常見(jiàn)的服務(wù)。列舉出上述端口開(kāi)放的主機(jī),可以定位到路由器設(shè)備可能的IP地址及端口狀態(tài)。
nmap –sU –p69 –nvv target
大多數(shù)的路由器都支持TFTP協(xié)議(簡(jiǎn)單文件傳輸協(xié)議),該協(xié)議常用于備份和恢復(fù)路由器的配置文件,運(yùn)行在UDP 69端口上。使用上述命令可以探測(cè)出路由器是否開(kāi)放TFTP。
與通用PC掃描方式類似,使用-O選項(xiàng)掃描路由器的操作系統(tǒng)。-F用于快速掃描最可能開(kāi)放的100個(gè)端口,并根據(jù)端口掃描結(jié)果進(jìn)一步做OS的指紋分析。
nmap -O -F -n 192.168.1.1
Nmap內(nèi)部的設(shè)計(jì)非常強(qiáng)大靈活,既能掃描單個(gè)主機(jī)、小型的局域網(wǎng),也可以掃描成千上萬(wàn)臺(tái)主機(jī)從中發(fā)掘用戶關(guān)注的信息。掃描大量主機(jī),需要對(duì)掃描時(shí)序等參數(shù)進(jìn)行仔細(xì)的優(yōu)化。
nmap -iR 100000 -sS -PS80 -p 80 -oG nmap.txt
隨機(jī)地產(chǎn)生10萬(wàn)個(gè)IP地址,對(duì)其80端口進(jìn)行掃描。將掃描結(jié)果以greppable(可用grep命令提?。└袷捷敵龅絥map.txt文件。
可以使用grep命令從輸出文件提取關(guān)心的細(xì)節(jié)信息。
Nmap的創(chuàng)始人Fyodor在2008年的Black Hat大會(huì)發(fā)表一篇演講,講的是如何使用Nmap來(lái)掃描互聯(lián)網(wǎng)(Nmap: Scanning the Internet),資料地址:http://nmap.org/presentations/BHDC08/。
Fyodor進(jìn)行互聯(lián)網(wǎng)掃描的初衷是統(tǒng)計(jì)出網(wǎng)絡(luò)經(jīng)驗(yàn)數(shù)據(jù)并用之優(yōu)化Nmap的性能。例如,根據(jù)統(tǒng)計(jì)出每個(gè)端口開(kāi)放的概率,優(yōu)先掃描常見(jiàn)端口,以節(jié)省用戶的時(shí)間。
產(chǎn)生隨機(jī)IP地址
產(chǎn)生100萬(wàn)個(gè)隨機(jī)的IP地址,并將之保存到文件中,方便后續(xù)掃描時(shí)作為參數(shù)輸入。
nmap -iR 1200000 -sL -n | grep “not scanned” | awk ‘{print $2}’ | sort -n | uniq >! tp; head -25000000 tp >! tcp-allports-1M-IPs; rm tp
上述命令含義:隨機(jī)生成1200000個(gè)IP地址(-iR 120000),并進(jìn)行列表掃描(-sL,列舉出IP地址,不進(jìn)行真正的掃描),不進(jìn)行dns解析操作(-n),這樣將產(chǎn)生Nmap列表掃描的結(jié)果。在此 結(jié)果中搜出未掃描的行(grep “not scanned”),打印出每一行的第二列內(nèi)容(awk ‘{print $2}’,也就是IP地址),然后對(duì)獲取到的IP地址進(jìn)行排序(sort -n),然后剔除重復(fù)IP地址,將結(jié)果保存到臨時(shí)文件tp,再取出前1000000個(gè)IP地址保存到tcp-allports-1M-IPs文件中,刪除 臨時(shí)文件。
總之,此處產(chǎn)生了1000000個(gè)隨機(jī)IP地址存放在tcp-allports-1M-IPs文件中。
優(yōu)化主機(jī)發(fā)現(xiàn)
nmap -sP -PE -PP -PS21,22,23,25,80,113,31339-PA80,113,443,10042 –source-port 53 -T4 -iL tcp-allports-1M-IPs
上述命令進(jìn)行主機(jī)發(fā)現(xiàn):使用產(chǎn)生的IP地址(-iL tcp-allports-1M-IPs),指定發(fā)送包的源端口為53(–source-port 53,該端口是DNS查詢端口,一般的防火墻都允許來(lái)自此端口的數(shù)據(jù)包),時(shí)序級(jí)別為4(-T4,探測(cè)速度比較快),以TCP SYN包方式探測(cè)目標(biāo)機(jī)的21,22,23,25,80,113,31339端口,以TCP ACK包方式探測(cè)對(duì)方80,113,443,10042端口,另外也發(fā)送ICMP ECHO/ICMP TIMESTAMP包探測(cè)對(duì)方主機(jī)。只要上述的探測(cè)包中得到一個(gè)回復(fù),就可以證明目標(biāo)主機(jī)在線。
完整的掃描命令
在準(zhǔn)備了必要的IP地址文件,并對(duì)主機(jī)發(fā)現(xiàn)參數(shù)優(yōu)化后,我們就得到最終的掃描命令:
nmap -S [srcip] -d –max-scan-delay 10 -oAlogs/tcp-allports-%T-%D -iL tcp-allports-1M-IPs –max-retries 1–randomize-hosts -p- -PS21,22,23,25,53,80,443 -T4 –min-hostgroup 256 –min-rate175 –max-rate 300
上述命令用于掃描互聯(lián)網(wǎng)上100萬(wàn)臺(tái)主機(jī)全部的TCP端口的開(kāi)放情況。
使用包含100萬(wàn)個(gè)IP地址的文件(-iL tcp-allports-1M-IPs),源端IP地址設(shè)置為srcip(指定一個(gè)IP地址,保證該IP地址位于統(tǒng)一局域網(wǎng)中,否則無(wú)法收到目標(biāo)機(jī)的回 復(fù)包),主機(jī)發(fā)現(xiàn)過(guò)程使用TCP SYN包探測(cè)目標(biāo)機(jī)的21,22,23,25,53,80,443,掃描過(guò)程將隨機(jī)打亂主機(jī)順序(–randomize-hosts,因?yàn)槲募械腎P 已經(jīng)排序,這里將之打亂,避免被防火墻檢查出),端口掃描過(guò)程檢查全部的TCP端口(-p-,端口1到65535),使用時(shí)序級(jí)別為4(-T4,速度比較 快),將結(jié)果以XML/grepable/普通格式輸出到文件中(-oA logs/tcp-allports-%T-%D,其中%T表示掃描時(shí)間,%D表示掃描日期)。
-d表示打印調(diào)試出信息。
–max-scan-delay 10表示發(fā)包最多延時(shí)10秒,防止特殊情景下等待過(guò)長(zhǎng)的時(shí)間。
–max-retries 1,表示端口掃描探測(cè)包最多被重傳一次,防止Nmap在沒(méi)有收到回復(fù)的情況下多次重傳探測(cè)包,當(dāng)然這樣也會(huì)降低探測(cè)的準(zhǔn)確性。
–min-host-group 256表示進(jìn)行端口掃描與版本偵測(cè)時(shí),同時(shí)進(jìn)行探測(cè)的主機(jī)的數(shù)量,這里至少256個(gè)主機(jī)一組來(lái)進(jìn)行掃描,可以加快掃描速度。
–min-rate 175和–max-rate 300,表示發(fā)包速率介于175和300之間,保證掃描速度不會(huì)太慢,也不會(huì)因?yàn)樗俾蔬^(guò)高引起目標(biāo)機(jī)的警覺(jué)。
掃描結(jié)果
Fyodor組織的此次掃描得出很多重要結(jié)論,統(tǒng)計(jì)出了互聯(lián)網(wǎng)最有可能開(kāi)放的10個(gè)TCP端口。
最有可能開(kāi)放的10個(gè)UDP端口。
Web是互聯(lián)網(wǎng)上最廣泛的應(yīng)用,而且越來(lái)越多的服務(wù)傾向于以Web形式提供出來(lái),所以對(duì)Web安全監(jiān)管也越來(lái)越重要。目前安全領(lǐng)域有很多專門的 Web掃描軟件(如AppScan、WebInspect、W3AF),能夠提供端口掃描、漏洞掃描、漏洞利用、分析報(bào)表等諸多功能。而Nmap作為一款 開(kāi)源的端口掃描器,對(duì)Web掃描方面支持也越來(lái)越強(qiáng)大,可以完成Web基本的信息探測(cè):服務(wù)器版本、支持的Method、是否包含典型漏洞。功能已經(jīng)遠(yuǎn)遠(yuǎn) 超過(guò)同領(lǐng)域的其他開(kāi)源軟件,如HTTPrint、Httsquash。
目前Nmap中對(duì)Web的支持主要通過(guò)Lua腳本來(lái)實(shí)現(xiàn),NSE腳本庫(kù)中共有50多個(gè)HTTP相關(guān)的腳本。
掃描實(shí)例:
nmap -sV -p 80 -T4 –script http*,defaultscanme.nmap.org
上面以掃描scanme.nmap.org的Web應(yīng)用展示Nmap提供Web掃描能力,從圖中可以看到掃描結(jié)果中提供了比較豐富的信息。
首先是應(yīng)用程序及版本:Apachehttpd 2.2.14 (Ubuntu)
然后搜出了該站點(diǎn)的affiliate-id:該ID可用于識(shí)別同一擁有者的不同頁(yè)面。
然后輸出HTTP-headers信息,從中查看到基本配置信息。
從http-title中,可以看到網(wǎng)頁(yè)標(biāo)題。某些網(wǎng)頁(yè)標(biāo)題可能會(huì)泄漏重要信息,所以這里也應(yīng)對(duì)其檢查。
有想深入學(xué)習(xí)nmap的也可以參考:《滲透測(cè)試工具Nmap從初級(jí)到高級(jí)》文章
from:http://blog.csdn.net/aspirationflow/article/details/7983368
聯(lián)系客服