Nmap是一款網(wǎng)絡(luò)掃描和主機(jī)檢測(cè)的非常有用的工具。 Nmap是不局限于僅僅收集信息和枚舉灰署,同時(shí)可以用來(lái)作為一個(gè)漏洞探測(cè)器或安全掃描器判帮。它可以適用于winodws,linux,mac等操作系統(tǒng)。Nmap是一款非常強(qiáng)大的實(shí)用工具,可用于:
檢測(cè)活在網(wǎng)絡(luò)上的主機(jī)(主機(jī)發(fā)現(xiàn))
檢測(cè)主機(jī)上開放的端口(端口發(fā)現(xiàn)或枚舉)
檢測(cè)到相應(yīng)的端口(服務(wù)發(fā)現(xiàn))的軟件和版本
檢測(cè)操作系統(tǒng)溉箕,硬件地址晦墙,以及軟件版本
檢測(cè)脆弱性的漏洞(Nmap的腳本)
Nmap是一個(gè)非常普遍的工具,它有命令行界面和圖形用戶界面肴茄。本人包括以下方面的內(nèi)容:
介紹Nmap
掃描中的重要參數(shù)
操作系統(tǒng)檢測(cè)
Nmap使用教程
Nmap使用不同的技術(shù)來(lái)執(zhí)行掃描晌畅,包括:TCP的connect()掃描,TCP反向的ident掃描寡痰,F(xiàn)TP反彈掃描等抗楔。所有這些掃描的類型有自己的優(yōu)點(diǎn)和缺點(diǎn)棋凳,我們接下來(lái)將討論這些問(wèn)題。
Nmap的使用取決于目標(biāo)主機(jī),因?yàn)橛幸粋€(gè)簡(jiǎn)單的(基本)掃描和預(yù)先掃描之間的差異连躏。我們需要使用一些先進(jìn)的技術(shù)來(lái)繞過(guò)防火墻和入侵檢測(cè)/防御系統(tǒng)剩岳,以獲得正確的結(jié)果。下面是一些基本的命令和它們的用法的例子:
掃描單一的一個(gè)主機(jī)入热,命令如下:
#nmap nxadmin.com
#nmap 192.168.1.2
掃描整個(gè)子網(wǎng),命令如下:
#nmap 192.168.1.1/24
掃描多個(gè)目標(biāo),命令如下:
#nmap 192.168.1.2 192.168.1.5
掃描一個(gè)范圍內(nèi)的目標(biāo),如下:
#nmap 192.168.1.1-100 (掃描IP地址為192.168.1.1-192.168.1.100內(nèi)的所有主機(jī))
如果你有一個(gè)ip地址列表拍棕,將這個(gè)保存為一個(gè)txt文件,和namp在同一目錄下,掃描這個(gè)txt內(nèi)的所有主機(jī)勺良,命令如下:
#nmap -iL target.txt
如果你想看到你掃描的所有主機(jī)的列表绰播,用以下命令:
#nmap -sL 192.168.1.1/24
掃描除過(guò)某一個(gè)ip外的所有子網(wǎng)主機(jī),命令:
#nmap 192.168.1.1/24 -exclude 192.168.1.1
掃描除過(guò)某一個(gè)文件中的ip外的子網(wǎng)主機(jī)命令
#nmap 192.168.1.1/24 -exclude file xxx.txt(xxx.txt中的文件將會(huì)從掃描的主機(jī)中排除)
掃描特定主機(jī)上的80,21,23端口,命令如下
#nmap -p80,21,23 192.168.1.1
從上面我們已經(jīng)了解了Nmap的基礎(chǔ)知識(shí),下面我們深入的探討一下Nmap的掃描技術(shù).
Tcp SYN Scan (sS)
這是一個(gè)基本的掃描方式,它被稱為半開放掃描尚困,因?yàn)檫@種技術(shù)使得Nmap不需要通過(guò)完整的握手幅垮,就能獲得遠(yuǎn)程主機(jī)的信息。Nmap發(fā)送SYN包到遠(yuǎn)程主機(jī)尾组,但是它不會(huì)產(chǎn)生任何會(huì)話.因此不會(huì)在目標(biāo)主機(jī)上產(chǎn)生任何日志記錄,因?yàn)闆]有形成會(huì)話。這個(gè)就是SYN掃描的優(yōu)勢(shì).
如果Nmap命令中沒有指出掃描類型,默認(rèn)的就是Tcp SYN.但是它需要root/administrator權(quán)限.
#nmap -sS 192.168.1.1
Tcp connect() scan(sT)
如果不選擇SYN掃描,TCP connect()掃描就是默認(rèn)的掃描模式.不同于Tcp SYN掃描,Tcp connect()掃描需要完成三次握手,并且要求調(diào)用系統(tǒng)的connect().Tcp connect()掃描技術(shù)只適用于找出TCP和UDP端口.
#nmap -sT 192.168.1.1
Udp scan(sU)
顧名思義,這種掃描技術(shù)用來(lái)尋找目標(biāo)主機(jī)打開的UDP端口.它不需要發(fā)送任何的SYN包示弓,因?yàn)檫@種技術(shù)是針對(duì)UDP端口的讳侨。UDP掃描發(fā)送UDP數(shù) 據(jù)包到目標(biāo)主機(jī),并等待響應(yīng),如果返回ICMP不可達(dá)的錯(cuò)誤消息奏属,說(shuō)明端口是關(guān)閉的跨跨,如果得到正確的適當(dāng)?shù)幕貞?yīng),說(shuō)明端口是開放的.
#nmap -sU 192.168.1.1
FIN scan (sF)
有時(shí)候Tcp SYN掃描不是最佳的掃描模式,因?yàn)橛蟹阑饓Φ拇嬖?目標(biāo)主機(jī)有時(shí)候可能有IDS和IPS系統(tǒng)的存在,防火墻會(huì)阻止掉SYN數(shù)據(jù)包囱皿。發(fā)送一個(gè)設(shè)置了FIN標(biāo)志的數(shù)據(jù)包并不需要完成TCP的握手.
root@bt:~# nmap -sF 192.168.1.8
Starting Nmap 5.51? at 2012-07-08 19:21 PKT
Nmap scan report for 192.168.1.8
Host is up (0.000026s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
111/tcp open|filtered rpcbind
FIN掃描也不會(huì)在目標(biāo)主機(jī)上創(chuàng)建日志(FIN掃描的優(yōu)勢(shì)之一).個(gè)類型的掃描都是具有差異性的,FIN掃描發(fā)送的包只包含F(xiàn)IN標(biāo)識(shí),NULL掃描不發(fā)送數(shù)據(jù)包上的任何字節(jié),XMAS掃描發(fā)送FIN勇婴、PSH和URG標(biāo)識(shí)的數(shù)據(jù)包.
PING Scan (sP)
PING掃描不同于其它的掃描方式,因?yàn)樗挥糜谡页鲋鳈C(jī)是否是存在在網(wǎng)絡(luò)中的.它不是用來(lái)發(fā)現(xiàn)是否開放端口的.PING掃描需要ROOT權(quán)限嘱腥,如果用戶沒有ROOT權(quán)限,PING掃描將會(huì)使用connect()調(diào)用.
#nmap -sP 192.168.1.1
版本檢測(cè)(sV)
版本檢測(cè)是用來(lái)掃描目標(biāo)主機(jī)和端口上運(yùn)行的軟件的版本.它不同于其它的掃描技術(shù)耕渴,它不是用來(lái)掃描目標(biāo)主機(jī)上開放的端口,不過(guò)它需要從開放的端口獲取信息來(lái)判斷軟件的版本.使用版本檢測(cè)掃描之前需要先用TCP SYN掃描開放了哪些端口.
#nmap -sV 192.168.1.1
Idle scan (sL)
Idle scan是一種先進(jìn)的掃描技術(shù)齿兔,它不是用你真實(shí)的主機(jī)Ip發(fā)送數(shù)據(jù)包橱脸,而是使用另外一個(gè)目標(biāo)網(wǎng)絡(luò)的主機(jī)發(fā)送數(shù)據(jù)包.
#nmap -sI 192.168.1.6 192.168.1.1
Idle scan是一種理想的匿名掃描技術(shù),通過(guò)目標(biāo)網(wǎng)絡(luò)中的192.168.1.6向主機(jī)192.168.1.1發(fā)送數(shù)據(jù),來(lái)獲取192.168.1.1開放的端口
有需要其它的掃描技術(shù)分苇,如?FTP bounce(FTP反彈), fragmentation scan(碎片掃描), IP protocol scan(IP協(xié)議掃描),以上討論的是幾種最主要的掃描方式.
Nmap的OS檢測(cè)(O)
Nmap最重要的特點(diǎn)之一是能夠遠(yuǎn)程檢測(cè)操作系統(tǒng)和軟件添诉,Nmap的OS檢測(cè)技術(shù)在滲透測(cè)試中用來(lái)了解遠(yuǎn)程主機(jī)的操作系統(tǒng)和軟件是非常有用的,通過(guò) 獲取的信息你可以知道已知的漏洞医寿。Nmap有一個(gè)名為的nmap-OS-DB數(shù)據(jù)庫(kù)栏赴,該數(shù)據(jù)庫(kù)包含超過(guò)2600操作系統(tǒng)的信息。 Nmap把TCP和UDP數(shù)據(jù)包發(fā)送到目標(biāo)機(jī)器上靖秩,然后檢查結(jié)果和數(shù)據(jù)庫(kù)對(duì)照须眷。
Initiating SYN Stealth Scan at 10:21
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 111/tcp on 127.0.0.1
Completed SYN Stealth Scan at 10:21, 0.08s elapsed (1000 total ports)
Initiating OS detection (try #1) against localhost (127.0.0.1)
Retrying OS detection (try #2) against localhost (127.0.0.1)
上面的例子清楚地表明竖瘾,Nmap的首次發(fā)現(xiàn)開放的端口,然后發(fā)送數(shù)據(jù)包發(fā)現(xiàn)遠(yuǎn)程操作系統(tǒng)柒爸。操作系統(tǒng)檢測(cè)參數(shù)是O(大寫O)
Nmap的操作系統(tǒng)指紋識(shí)別技術(shù):
設(shè)備類型(路由器准浴,工作組等)
運(yùn)行(運(yùn)行的操作系統(tǒng))
操作系統(tǒng)的詳細(xì)信息(操作系統(tǒng)的名稱和版本)
網(wǎng)絡(luò)距離(目標(biāo)和攻擊者之間的距離跳)
如果遠(yuǎn)程主機(jī)有防火墻,IDS和IPS系統(tǒng)捎稚,你可以使用-PN命令來(lái)確保不ping遠(yuǎn)程主機(jī)乐横,因?yàn)橛袝r(shí)候防火墻會(huì)組織掉ping請(qǐng)求.-PN命令告訴Nmap不用ping遠(yuǎn)程主機(jī)。
# nmap -O -PN 192.168.1.1/24
以上命令告訴發(fā)信主機(jī)遠(yuǎn)程主機(jī)是存活在網(wǎng)絡(luò)上的今野,所以沒有必要發(fā)送ping請(qǐng)求,使用-PN參數(shù)可以繞過(guò)PING命令,但是不影響主機(jī)的系統(tǒng)的發(fā)現(xiàn).
Nmap的操作系統(tǒng)檢測(cè)的基礎(chǔ)是有開放和關(guān)閉的端口葡公,如果OS scan無(wú)法檢測(cè)到至少一個(gè)開放或者關(guān)閉的端口,會(huì)返回以下錯(cuò)誤:
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
OS Scan的結(jié)果是不可靠的条霜,因?yàn)闆]有發(fā)現(xiàn)至少一個(gè)開放或者關(guān)閉的端口.
這種情況是非常不理想的催什,應(yīng)該是遠(yuǎn)程主機(jī)做了針對(duì)操作系統(tǒng)檢測(cè)的防范。如果Nmap不能檢測(cè)到遠(yuǎn)程操作系統(tǒng)類型宰睡,那么就沒有必要使用-osscan_limit檢測(cè)蒲凶。
想好通過(guò)Nmap準(zhǔn)確的檢測(cè)到遠(yuǎn)程操作系統(tǒng)是比較困難的,需要使用到Nmap的猜測(cè)功能選項(xiàng),?–osscan-guess 猜測(cè)認(rèn)為最接近目標(biāo)的匹配操作系統(tǒng)類型拆内。
# nmap -O –osscan-guess 192.168.1.1
總結(jié)
Nmap是一個(gè)非常強(qiáng)大的工具旋圆,它具有覆蓋滲透測(cè)試的第一方面的能力,其中包括信息的收集和統(tǒng)計(jì)麸恍。本文從初級(jí)到高級(jí)的講解了Nmap入侵掃描工具的使用.希望對(duì)大家有所幫助.