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

2021-10-22 03:09:44 字數 1610 閱讀 5497

udp全稱是使用者資料協議,在網路中它與tcp一樣用於處理資料報,是一種無法連線的協議。在osi模型中位於第4層——傳輸層,處於ip的上一層。

但基於udp的或與主機發現技術和tcp不同,udp沒有三次握手。當想主機傳送以個udp資料報之後,目標是不會發出任何udp資料報的。

不過,如果目標主機是處於活躍狀態的,但是目標埠是關閉的時候,可以返回乙個icmp資料報,這個資料報的含義為:「unreachable」,

如果目標主機不處於活躍狀態,這時收不到任何回應的。

接下來構造乙個發往192.168.43.1的445埠的udp資料報並將其傳送出去。

data = ip(dst=

"192.168.43.1"

)/ udp(dport=

445)

ans, unans = sr(data)

ans.summary(

)

執行結果:

這裡是有回應的,就證明目標是處於活躍狀態的,但是我們仔細看返回的包。

ip / udp 192.168.43.156:domain > 192.168.43.1:microsoft_ds ==

> ip / icmp 192.168.43.1 > 192.168.43.156 dest-unreach port-unreachable / iperror / udperror

其中有「port-unreachable」關鍵字樣,而且返回的是icmp型別的資料報,這就驗證了目標埠是關閉的時候返回「unreachable」。

接下來我們可以按照我們前面的icmp,arp,tcp的寫法進行編寫udp的探測工具。

from scapy.

allimport

*data = ip(dst=

"192.168.43.1"

)/ udp(dport=

445)

ans, unans = sr(data, timeout=3)

if unans:

print

("[*] 目標處於非活躍狀態!"

)for s, r in ans:

ip_s = s[ip]

.dst

ip_r = r[ip]

.src

if ip_s == ip_r:

print

("[*] 目標%s"

% ip_s)

print

("[*] 存活!"

)

執行結果:

學習了這麼多探測目標主機是否存活的文章,相信大家已經對此非常熟練了。

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

icmp 位於tcp ip 協議族中的網路層,它的目的是用於在 ip 主機 路由器之間傳遞控制訊息。有了之前 arp主機發現技術的經驗之後,再來了解一下 icmp 這個協議是如何進行活躍主機發現的,相信對大家來說並不困難。相比arp簡單明瞭的工作模式,icmp雖然要複雜一些,但是用來掃瞄活躍主機的原...

基於ICMP發現活躍主機

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

nmap中活躍主機發現技術

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