什么是端口?
將網絡設備比作一間房子,那么端口就是進出該房子的出入口(奇怪的地方就是這個房子的出入口太多了,多達65535個),這些出入口供數據進出網絡設備。
設置端口的目的,就是為了實現 “一機多用”,即在一臺機器上運行多種不同的服務。那么當一臺機器上運行著多個程序時,機器是如何區分不同程序的數據尼?
這個任務交由操作系統來處理,其采用的機制就是劃分除65535個不同的端口號。程序在發送信息時,會在數據中帶上端口編號,而操作系統在收到數據后會按照端口號將信息分流到當前內存中使用該端口號的程序。
端口的分類
公認端口
0~1024端口,這一段范圍的端口號是最常用的,并且這些端口已經明確地和某種服務是協議進行了關聯,一般不應該對其進行改變。
注冊端口
1025~49151,這一段范圍的端口通常也會關聯到一些服務上,但沒有明確地規定,不同的程序可以根據實際情況進行定義
動態/私有端口
39152~65535,這一段端口范圍,常用的服務都不會使用,但由于比較隱蔽,故成為了一些木馬和病毒程序常用的端口。
NMAP中對端口狀態的定義
open:表示該端口處于開放狀態,接受TCP和UPD的數據包
closed:表示該端口是可以訪問的,但沒有應用程序監聽該端口
filtered:導致這種結果的原因是目標網絡數據包過濾,由于這些設備過濾了探測數據包
unfinished:表示該端口是可以訪問的,但無法確定該端口是open的還是closed的
NMAP中的各種端口掃描技術
SYN掃描
原理
首先,Nmap會向目標主機系統發送一個SYN的請求連接數據包,而目標主機系統在收到該數據包后,會響應一個SYN/ACK數據包,Nmap在接收到SYN/ACK數據包后,會發送一個RST數據包中斷連接。由于并沒有經過三次握手建立完整的TCP連接,故不會再在目標主機系統中形成日志記錄。因此,這種掃描方式比較隱蔽。
掃描結果
open:目標主機系統給出了SYN/ACK數據包作為應答
closed:目標主機系統給出了RST數據包作為應答
filtered:目標主機系統沒有給出響應或nmap接收到ICMP無法到達錯誤
優點
掃描速度快,不容易被網絡中的安全設備發現
命令與實例
命令語法:nmap -sS [目標IP地址]
實例:nmap -sS 192.168.21.1
Connect掃描
與SYN掃描類似,但其完成了TCP的三次握手建立了連接。
命令與實例
命令語法:nmap -sT [目標主機ip地址]
實例:nmap -sT 192.168.21.1
UDP掃描
掃描結果
open:從目標端口收到UDP應答
open|filtered:目標主機木有給出應答
closed:ICMP端口無法抵達錯誤
filtered:ICMP無法抵達錯誤
命令與實例
命令語法:nmap -sU [目標主機ip地址]
實例:nmap -sU 192.168.21.1
僵尸掃描
利用第三方主機進行掃描
第三方主機的條件:1.處于開機且空閑狀態?? 2.IPID必須是整數遞增的
命令
尋找合格的第三方主機
nmap [第三方主機ip地址] –scrip=ipidseq.nse
#掃描結果出現”_ipidseq:Incremental!”表示該主機可以做僵尸機
掃描目標主機系統
nmap [目標主機ip地址] -sI [第三方主機ip地址] -Pn
指定掃描的端口
1.掃描一個或多個指定的端口
-p 80 / -p 80,21,443 / -p 1-1000
2.全端口掃描
-p *