信息搜集-二層發現 arping

信息蒐集-二層發現 arping

點擊右上角【關注】發哥微課堂頭條號,get更多相關技能~


0x00:簡介

在被動信息蒐集工作完成後,需要在進一步的對目標進行主動信息蒐集,這一階段主要搜索的信息包括目標主機是否存活,上面開放了哪些端口,有哪些服務,服務系統是什麼,開發服務的版本以及上面支撐系統運行的一些中間件或者其他軟件的版本(後續可根據版本號查看是否有公開的漏洞問題),在目標主機發現的過程中,不僅要發現目標是否存活,還要發現其整個網段下的其他設備,同時,這些其他設備也應該像目標一樣蒐集其各種信息。

主動信息蒐集是直接與系統目標進行交互通信,會有訪問痕跡,大量的掃描可能會禁止你的 ip,這時可以通過代理或者肉雞來進行相關的操作。

0x01:arp 協議

在七層模型中,arp 協議屬於數據鏈路層,各層簡單說明以及常用的協議如下:

信息蒐集-二層發現 arping


arp 全名叫 address resolution protocol 地址解析協議,在通信過程中因為需要知道對方主機的 mac 地址,而這個工作就是 arp 來做的,也就是通過 ip 獲取 mac。

arp 會發送一個廣播,來問其他主機誰的 ip 是 x.x.x.x,其他主機收到廣播後如果不是自己則忽略,如果是就會將自己的 mac 進行返回,另一端收到 mac 後就會將其緩存到自己的 arp 表中。

0x02:利用 arp 進行主機發現

二層主要協議是 arp,可以利用 arp 去進行網絡發現,命令可以實用 arping,arping 後跟 ip 地址,可以用來探測目標是否在線,如下圖:

信息蒐集-二層發現 arping


如上圖,直接跟 ip 會不斷的給目標發包,而 c 參數是指定包的數量。當需要掃描網段時,可以寫一個 shell 腳本更方便,示例如下:

#!/bin/bash
if [ "$#" -ne 1 ];then
echo "需要跟一個網卡參數,例如./arping.sh eth0"
exit
fi
interface=$1
prefix=$(ifconfig $interface | grep "inet " | cut -d 't' -f 2 | cut -d '.' -f 1-3)
for addr in $(seq 1 254);do
arping -c 1 $prefix.$addr | grep "reply from" | cut -d " " -f 4
done

整體來說就是腳本使用時後跟網卡名稱,然後利用 ifconfig 提取出來 ip 的前三段,最後用 for 循環第四段從 1 到 254,用 arping 去發現。使用如下:

首先需要賦予執行權限,命令:chmod u+x arping.sh。執行命令:./arping.sh eth0。如果不跟網卡參數,則會提醒需要跟一個網卡參數。

信息蒐集-二層發現 arping


執行過程中可以使用 wireshark 看一下經過 eth0 網卡的流量,如下圖:

信息蒐集-二層發現 arping


這裡注意的是,如果路由開啟了 AP 隔離功能,則是 ping 不通的。

當 arping 出的結果可以將結果定向輸出到一個文件中,下次需要看之前發現的目標是否還在線時,可以直接去 ping 文件中已有的 ip,節省時間,提高效率,shell 腳本示例如下:

#!/bin/bash
if [ "$#" -ne 1 ];then
echo "需要跟一個文件名稱作為參數,例如./arping-txt.sh file"
exit
fi
file=$1
for addr in $(cat $file);do
arping -c 1 $addr | grep "reply from" | cut -d " " -f 4
done

執行結果示例如下:

信息蒐集-二層發現 arping


0x03:總結

二層發現主要是利用 arp 協議進行發現其他主機,二層發現除了 arping 外其他工具和命令後續會繼續介紹,因為當拿下一個機器時,可能環境的差異,有些命令沒有有些命令有,所以瞭解每一層發現的命令是有必要的。關於 arp 的攻擊因為篇幅原因後續會單獨寫一篇博客出來。


分享到:


相關文章: