關于SpyCast 

SpyCast是一款功能強大的跨平臺mDNS枚舉工具,該工具支持在主動模式下遞歸查詢服務,也可以在被動模式下僅偵聽多播數據包。因此,廣大研究人員可以使用該工具測試mDNS協議和本地網絡的安全性。

 mDNS介紹 

mDNS,即多播DNS,該協議將主機名解析為不包含本地名稱服務器的小型網絡中的IP地址。它是一種零配置服務,使用與單播域名系統 (DNS)基本相同的編程接口,數據包格式和操作語義。雖然Stuart Cheshire將mDNS設計為獨立協議,但它可以與標準DNS服務器協同工作。

mDNS協議發布為 RFC 6762使用IP多播用戶數據報協議 (UDP)數據包,由Apple Bonjour和開源Avahi軟件包實現。Android包含mDNS實現。mDNS也已在Windows 10中實現,最初僅限于發現網絡打印機[3] ,后來也能夠解析主機名。

mDNS可以與DNS服務發現 (DNS-SD)結合使用, DNS服務發現是RFC 6763中單獨指定的配套零配置技術。

mDNS主要實現了在沒有傳統DNS服務器的情況下使局域網內的主機實現相互發現和通信,使用的端口為5353,遵從dns協議,使用現有的DNS信息結構、名語法和資源記錄類型。并且沒有指定新的操作代碼或響應代碼。

 工具下載 

廣大研究人員可以使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/evilsocket/spycast.git

代碼構建

切換到項目目錄下,然后使用cargo構建項目代碼:

cargo build --release

我們還可以針對不同的操作系統來構建代碼包,比如說macOS平臺下,可以使用下列命令構建:

cargo tauri build

SpyCast還可以構建出不帶默認用戶交互界面的版本,此時所有的數據輸出結果都會打印在控制臺終端中:

cargo build --no-default-features --release

 工具運行 

下列命令能夠以主動模式運行SpyCast,該模式下工具將會遞歸查詢所有可用的mDNS服務:

./target/release/spycast

下列命令能夠以被動模式運行SpyCast,該模式下工具不會產生任何mDNS流量,并只會監聽多播數據包:

./target/release/spycast --passive

查看工具幫助信息:

spycast --help

 工具運行截圖