nmap掃描的幾種方式

nmap掃描的方法

原文 the art of port scanning

tcp connect()

這種方式最簡(jiǎn)單。直接與被掃描的端口建立tcp鏈接,如果成功,則說(shuō)明端口開(kāi)放,如果不成功則說(shuō)明端口關(guān)閉的。這種掃描的特點(diǎn)是與被掃描端口建立完成的tcp鏈接,完整的tcp三次握手。優(yōu)點(diǎn)主要是不需要root權(quán)限即可掃描端口。因?yàn)閏onnect可以在用戶態(tài)直接調(diào)用

TCP SYN scanning

這種掃描方式又被稱為tcp半開(kāi)放掃描。顧名思義,這種掃描不需要建立完整的tcp連接,即可掃描端口的狀態(tài)。發(fā)送tcp syn數(shù)據(jù)包,這個(gè)也是tcp握手的第一個(gè)包。如果端口開(kāi)放,則會(huì)返回 tcp syn+ack數(shù)據(jù)包。如果端口關(guān)閉,則返回 tcp rst數(shù)據(jù)包。這樣我們就不用進(jìn)行tcp 握手的第三步,也可以探測(cè)端口的狀態(tài)。這種掃描需要構(gòu)建raw socket。所以需要root權(quán)限

TCP FIN scanning

有些時(shí)候防火墻繪過(guò)濾tcp syn數(shù)據(jù)包,有些時(shí)候會(huì)記錄syn數(shù)據(jù)包并檢測(cè)時(shí)候有nmap掃描。這時(shí)候可以使用TCP FIN scanning。這種方式很簡(jiǎn)單。發(fā)送tcp FIN數(shù)據(jù)包到待測(cè)端口。如果返回RST數(shù)據(jù)包,則說(shuō)明該端口關(guān)閉,如果無(wú)返回則說(shuō)明該端口開(kāi)放。這時(shí)tcp協(xié)議的一個(gè)BUG,所以這種掃描方式不一定百分之百可靠(例如windows),但是這種掃描方式適合大部分 *NIX 系統(tǒng)。

TCP NULL, FIN, and Xmas scans

在RFC 793的第65頁(yè)寫(xiě)到,如果目的端口的是關(guān)閉的,并且接受到的tcp數(shù)據(jù)包如果可能會(huì)導(dǎo)致系統(tǒng)錯(cuò)誤,則返回RST。如果開(kāi)放的端口接受到諸如SYN RST ACK,則丟棄或者不做任何處理。根據(jù)此RFC描述,我們可以發(fā)送不包含SYN RST或者ACK標(biāo)志的數(shù)據(jù)包,如果返回RST則說(shuō)明端口是關(guān)閉狀態(tài),如果什么都沒(méi)有返回則說(shuō)明端口是開(kāi)放狀態(tài)。

  • Null scan
    tcp flag headers 全為0
  • FIN scan
    只設(shè)置tcp FIN標(biāo)志
  • xmas scan
    同時(shí)設(shè)置FIN PSH URG標(biāo)志位。

上面這三種掃描的結(jié)果都是一致的,如果接受到到RST,則說(shuō)明端口是關(guān)閉的。如果無(wú)響應(yīng),則端口可能是開(kāi)放或者filteted狀態(tài)。如果返回icmp unreachable error(type 3, code 0, 1, 2, 3, 9, 10, 13),則說(shuō)明端口一定是filtered的。

TCP ACK scan

這種掃描只設(shè)置tcp ack標(biāo)志位。這種掃描一般來(lái)探測(cè)防火墻是否過(guò)濾被掃描的端口。如果掃描的端口未被防火墻保護(hù),那么無(wú)論是開(kāi)放或者是關(guān)閉,都會(huì)返回RST。nmap將該端口標(biāo)記為未被封鎖的(unfiltered),但是不能確定該端口是開(kāi)放或者關(guān)閉狀態(tài)。如果無(wú)響應(yīng),或者返貨icmp error,則該端口一定被防火墻封鎖了

TCP Window scan

tcp窗口掃描,如果接收到RST,則說(shuō)明端口封鎖了。在某些操作系統(tǒng),開(kāi)放的端口會(huì)返回一個(gè)正數(shù)的tcp窗口值,如果端口關(guān)閉,則返回tcp窗口值為0或者負(fù)數(shù)。但是這種掃描不是很靠譜

TCP Maimon scan

這種掃描為發(fā)送同時(shí)設(shè)置FIN/ACK的數(shù)據(jù)包。如果返回RST,則說(shuō)明端口是開(kāi)放的,如果無(wú)響應(yīng),則是關(guān)閉狀態(tài)的。

IP protocol scan

這種是專門(mén)掃描ip協(xié)議的。掃描類似于udp掃描,如果IP協(xié)議號(hào)不存在,返回 icmp錯(cuò)誤。具體沒(méi)用過(guò),不太好寫(xiě)

UDP ICMP port unreachable scanning

如果udp端口開(kāi)放,則無(wú)響應(yīng)。如果udp端口關(guān)閉,則會(huì)返回icmp unreachable error錯(cuò)誤。這種掃描需要root權(quán)限,因?yàn)樾枰獦?gòu)建raw socket。

UDP connect掃描

這種直接一個(gè)一個(gè)建立udp連接,如果能建立,則說(shuō)明端口開(kāi)放,不能建立則端口關(guān)閉唄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容