第三層網絡掃描基於TCP/IP、ICMP協議。windows
優勢:可路由、速度比較快網絡
缺點:相對於二層網絡掃描較慢,容易被邊界防火牆過濾blog
全部掃描發現技術,都會有相應的對抗辦法,因此不管是來自二層的網絡掃描仍是來自三層的網絡掃描,可能會存在誤報和漏報的狀況,因此不能絕對去不加以論證的方式去單純相信掃描結果,但能夠將掃描後的結果看成重要的參考。路由
例如:使用路由追蹤的功能get
能夠看到跳轉到第八臺設備之時,可能邊界設備開啓了屏蔽ICMP協議響應,因此這裏沒法顯示相關信息。it
涉及協議概述:百度
ICMP協議:ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡自己的消息。請求
PING命令:使用了ICMP兩種類型的數據包,其中ICMP的TYPE類型字段一共有0-15個定義,每種類型都表明了不一樣的數據包類型,而PING命令則是使用了TYPE爲8的類型的數據包,而接收到PING包的機器若是沒有防火牆規則限制那麼返回的則是ICMP的TYPE爲0類型的數據包。防火牆
在此感謝來自百度百科的一張類型圖。im
參數:
-d 使用Socket的SO_DEBUG功能。
-c <完成次數> 設置完成要求迴應的次數。
-f 極限檢測。
-i <間隔秒數> 指定收發信息的間隔時間。
-I <網絡界面> 使用指定的網絡界面送出數據包。
-l <前置載入> 設置在送出要求信息以前,先行發出的數據包。
-n 只輸出數值。
-p <範本樣式> 設置填滿數據包的範本樣式。
-q 不顯示指令執行過程,開頭和結尾的相關信息除外。
-r 忽略普通的Routing Table,直接將數據包送到遠端主機上。
-R 記錄路由過程。
-s <數據包大小> 設置數據包的大小。
-t <存活數值> 設置存活數值TTL的大小。
-v 詳細顯示指令的執行過程。
使用PING命令:
Linux下
windows下
在windows下的PING抓包分析
請求:
迴應
Linux下的PING的抓包分析
請求
迴應
分析得知:
1.根據請求的第一個包分析得之使用的是ICMP協議中的TYPE類型爲8,CODE爲0的數據包。
2.根據迴應的第一個包分析得之使用的是ICMP協議中的TYPE類型爲0,CODE爲0的數據包。
使用PING對網絡主機的發現方式:
1.使用腳本傳入IP地址段,而後使用ping –c 檢測存活主機。
2.使用scapy,組裝IP包頭和ICMP包頭而後組合造成ping包faso可以出去。
實例化一個IP協議賦值給i,實例化一個ICMP協議賦值給p
將i、p組裝成一個ping包,並將其實例化給ping
設定ping的IP包頭的目的地地址
將組裝好的ping包發送出去
查看所獲得的迴應,說明此主機存在於網絡之中,若是主機不存在那麼就不會獲得響應。