這些選項(xiàng)并非必需的,但有些會(huì)非常實(shí)用。
-P0 在掃描前不嘗試或者PING主機(jī),這是用來掃描那些不允許ICMP echo 請(qǐng)求(或應(yīng)答)的主機(jī)。microsoft.com就是這其中的一個(gè)例子,我們就必須使用-P0或者-PT80來察看microsoft.com的端口。
-PT 用TCP的ping來確定主機(jī)是否打開。作為替代發(fā)送ICMP echo請(qǐng)求包并等待回應(yīng)的方式,我們可以大量發(fā)送TCP ACK包往目標(biāo)網(wǎng)絡(luò)(或者單機(jī))并一點(diǎn)點(diǎn)地等待它的回應(yīng),打開的主機(jī)會(huì)返回一個(gè)RST。這一參數(shù)可以讓你在ping信息包阻塞時(shí)仍能高效率地掃描一個(gè)網(wǎng)絡(luò)/主機(jī)。對(duì)非root的用戶,我們用connect(),以如下格式設(shè)置目標(biāo)探針-PT
-PS 這一選項(xiàng)是root用戶使用的,能用SYN(連接請(qǐng)求)包替代ACK包,打開的主機(jī)會(huì)有一個(gè)RST(或者SYN|ACK——但比較少見)應(yīng)答。
-PI 這一選項(xiàng)是使用一個(gè)真正的ping(ICMP echo request)包。它找到開放的主機(jī)并且將該子網(wǎng)中的廣播地址全數(shù)搜尋——該廣播地址是能夠到達(dá)并能正確解析IP包的。如果其會(huì)被大量的DoS(denial of service)攻擊時(shí),我們就能找到它。
-PB 默認(rèn)的ping形式,它用于ACK(-PT)與ICMP(-PI)并行攻擊,以這一形式可以通過防火墻或包過濾。
-O 經(jīng)由TCP/IP獲取‘指紋’來判別主機(jī)的OS類型,用另一說法,就是用一連串的信息包探測(cè)出你所掃描的主機(jī)位于操作系統(tǒng)有關(guān)堆棧信息并區(qū)分其精細(xì)差別,以此判別操作系統(tǒng)。它用搜集到的信息建立一個(gè)“指紋”用來同已知的操作系統(tǒng)的指印相比較(the nmap-os-fingerprints file)——這樣判定操作系統(tǒng)就有了依據(jù)。如果你發(fā)現(xiàn)一臺(tái)機(jī)器開了至少一個(gè)端口并得到錯(cuò)誤的診斷信息,那么你可以寫信告訴我相關(guān)細(xì)節(jié)比如操作系統(tǒng)版本或偵測(cè)到的操作系統(tǒng)版本圖,如果他有端口開放但nmap返回'不可識(shí)別的操作系統(tǒng)',這可能也是有用的,你可以將它的IP告訴我或者另一個(gè)辦法是用nmap的-d參數(shù)并告訴我它返回的“指印”——操作系統(tǒng)和版本號(hào),這樣做,也算是對(duì)nmap在判定操作系統(tǒng)的進(jìn)一步開發(fā)中做了些事情,以便后續(xù)版本中它能更精確地判別系統(tǒng)類型。
-I 這是用ident掃描方式的參數(shù),如Dave Goldsmith于1996年在Bugtraq中所說的,這個(gè)ident協(xié)議(rfc 1413)允許通過TCP連接得到擁有進(jìn)程的用戶名——即使這個(gè)連接不是由該進(jìn)程發(fā)起的。所以呢,舉個(gè)例吧,你可以通過ident連接到一個(gè)http端口并找出該進(jìn)程是否由root運(yùn)行,但這只能在“全開”的對(duì)目標(biāo)端口的TCP連接中使用(象-sT掃描參數(shù))。當(dāng)你用-I參數(shù)時(shí),遠(yuǎn)程主機(jī)的identd在開放的端口接受連接質(zhì)詢——很明顯的,如果主機(jī)不運(yùn)行identd的話,那它就無法正常工作。
-f 這個(gè)參數(shù)配置以細(xì)小的IP碎片包實(shí)現(xiàn)SYN,F(xiàn)IN,XMAS或NULL掃描請(qǐng)求。這個(gè)想法是把TCP包頭分別放在幾個(gè)不同的信息包中,使包過濾器難于運(yùn)作,而后你就可以闖入系統(tǒng)做你想做的事了。但要注意,部份程序可能會(huì)對(duì)這些小信息包處理錯(cuò)誤。比方說我最喜歡的sniffer segmentation在接收第一個(gè)36字節(jié)的信息碎片時(shí)就出現(xiàn)麻煩,之后又來了個(gè)24字節(jié)的!當(dāng)包過濾器和能將IP碎片排列的防火墻沒有獲得此順序時(shí)(就象linux內(nèi)核中的CON-FIG_IP_ALWAYS_DEFRAG選項(xiàng)),一些網(wǎng)絡(luò)系統(tǒng)就不能反映出找到目標(biāo),并且放棄。
記住這個(gè)參數(shù)不一定能很好地工作在任何系統(tǒng)上,它在我的Linux,FreeBSD以及OpenBSD下是正常的,當(dāng)然也有一些人說它能在部份不同的*NIX環(huán)境下工作。
-v 詳細(xì)模式。這是被強(qiáng)烈推薦的選項(xiàng),因?yàn)樗軒砟阆胍母嘈畔ⅰD憧梢灾貜?fù)使用它以獲得更大效果。如果你需要大量翻動(dòng)屏幕請(qǐng)使用 -d 命令兩次
-h 這是一個(gè)快捷的幫助選項(xiàng),可以在屏幕上顯示nmap的參數(shù)使用方法——象你注意到的那樣,這個(gè)man page實(shí)在不是一個(gè)“快速入門參考”:)
-o
-m 這也是存放掃描結(jié)果的參數(shù),但它是存放機(jī)器可解析(machine parseable)結(jié)果的,你可以用-m 帶'-'(引號(hào)不用)將其輸出到標(biāo)準(zhǔn)輸出里(用shell的管道符……)。在這種形式下,正常的輸出被禁止了,你需要察看一些錯(cuò)誤信息來了解情況。
-i
-p
-F 快速掃描模式。指定只希望掃描nmap里提供的services file中列出的端口列表里的端口。這明顯會(huì)比掃描所有65535個(gè)端口來得快。
-D
-S
-e
-g
-M


