nmap掃描的幾種方式

nmap掃描的方法

原文 the art of port scanning

tcp connect()

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

TCP SYN scanning

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

TCP FIN scanning

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

TCP NULL, FIN, and Xmas scans

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

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

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

TCP ACK scan

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

TCP Window scan

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

TCP Maimon scan

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

IP protocol scan

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

UDP ICMP port unreachable scanning

如果udp端口開放,則無響應(yīng)。如果udp端口關(guān)閉,則會返回icmp unreachable error錯誤。這種掃描需要root權(quán)限,因為需要構(gòu)建raw socket。

UDP connect掃描

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

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

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