基於ICMP的活躍主機發現技術

2021-10-21 20:01:18 字數 2859 閱讀 8899

icmp 位於tcp/ip 協議族中的網路層,它的目的是用於在 ip 主機、路由器之間傳遞控制訊息。

有了之前 arp主機發現技術的經驗之後,再來了解一下 icmp 這個協議是如何進行活躍主機發現的,相信對大家來說並不困難。

相比arp簡單明瞭的工作模式,icmp雖然要複雜一些,但是用來掃瞄活躍主機的原理卻是一樣的。

icmp 中提供了多種報文,這些報文又可以分成兩大類:差錯報文和查詢報文。 其中,查詢報文都是由乙個請求和乙個應答構成的。

只需要向目標傳送乙個請求資料報,如果收到了來自目標的回應,就可以判斷目標是活躍主機,否則可以判斷目標是非活躍主機,這與 arp 掃瞄原理是相同的。

這裡我只是提一下,而且描述的也相對模糊,所以可以選擇性的理解

但是,與arp掃瞄不同的地方在於icmp查詢報文有4種,分別是響應請求或應答、 時間戳請求或應答、 位址掩碼請求或應答、路由器詢問或應答。

ping命令就是響應請求或應答的一種應用,我們經常會使用這個命令來測試本地與目標之間的連通性,例如我們所在的主機 ip 為 192.168.1.1 ,而通訊的目標 ip 位址為 192.168.1.2,如果要判斷 192.168.1.2 是否為活躍主機就需要向其傳送乙個icmp請求,這個請求的格式如下。

以圖形的形式描述如下:

向目標傳送乙個icmp request

如果目標主機處於活躍狀態,在正常情況下它就會回應乙個icmp reply

要注意的是現在很多網路安全裝置或者機制都會遮蔽icmp,在這種情況下即使目標主機處於活躍狀態,也收不到任何資訊。

如果目標主機處於非活躍狀態,他不會給出任何回應

那麼我們就可以得到結論,只要收到了icmp回應,就可以判斷該主機未活躍狀態。

現在編寫乙個利用icmp實現的活躍主機掃瞄程式,這個程式有很多方式可以實現,首先借助scapy庫來完成。其核心思想就是要產生乙個icmp請求。

我們首先檢視scapy庫中icmp型別資料報中需要的引數。

ls(icmp(

))

執行結果:

這裡面大多數引數都不需要設定,唯一需要注意的是type,這個引數的預設值已經是8,所以無須修改。

另外,icmp並沒有目標位址和源位址,所以需要在ip中進行設定,首先檢視一下scapy庫中ip型別資料報中需要的引數。

ls(ip(

))

執行結果:

這一層和位址有關的引數有兩個:dst是目的ip位址,src是源ip位址。

這裡面src會自動設定為本機位址。

所以只需要將dst設定為「1目標主機位址」即可將資料傳送到目標主機上。

接下來構造乙個掃瞄192.168.43.1的icmp請求資料報並將其傳送出去.

data = ip(dst=

"192.168.43.1"

)/ icmp(

)ans, unans = sr(data)

ans.summary(

)

執行結果:

我們再描述仔細一點

data = ip(dst=

"192.168.43.1"

)/ icmp(

)ans, unans = sr(data)

ans.summary(

)for s, r in ans:

print

("發出去的包:%s"

% s.summary())

print

("回應的包:%s"

% r.summary(

))

這裡很明顯是收到包的,所以目標主機是活躍的,那麼我們輸出這個主機的ip位址。

from scapy.

allimport

*data = ip(dst=

"192.168.43.1"

)/ icmp(

)ans, unans = sr(data, timeout=

0.1)

ans.summary(

)for s, r in ans:

print

("發出去的包:%s"

% s.summary())

print

("回應的包:%s"

% r.summary())

for s, r in ans:

print

("[*]主機:%s"

% r[ip]

.src)

print

("[*]存活!"

)

執行結果:

基於ICMP發現活躍主機

第一步 向目標傳送乙個icmp request 第二步 如果目標主機處於活躍狀態,它一定會回應乙個icmpreply 第三步 如果目標主機處於非活躍狀態,那麼它不會給出任何回應 icmp掃瞄和arp掃瞄不同之處在於 icmp的查詢報文有四種 1.響應請求或應答 2.時間戳請求或應答 3.位址掩碼請求...

基於UDP的活躍主機發現技術

udp全稱是使用者資料協議,在網路中它與tcp一樣用於處理資料報,是一種無法連線的協議。在osi模型中位於第4層 傳輸層,處於ip的上一層。但基於udp的或與主機發現技術和tcp不同,udp沒有三次握手。當想主機傳送以個udp資料報之後,目標是不會發出任何udp資料報的。不過,如果目標主機是處於活躍...

nmap中活躍主機發現技術

nmap pr 目標ip 優點 準確度高 缺點 不能對處於不同網段的目標主機進行掃瞄 icmp響應請求與應答 nmap pe 目標ip 過程與ping一樣 icmp協議的時間戳主機發現 nmap pp 目標ip 資料報type字段值變為13 tcp syn掃瞄 nmap ps 埠 目標ip tcp ...