除ARP和DHCP請(qǐng)求外,在局域網(wǎng)中還有一些協(xié)議,會(huì)主動(dòng)發(fā)送一些廣播或組播包,如BROWSER、SSDP和LLMNR等。此時(shí)通過(guò)監(jiān)聽(tīng)方式,可以了解到一些活動(dòng)主機(jī)的信息。本文介紹對(duì)這些協(xié)議數(shù)據(jù)包進(jìn)行監(jiān)聽(tīng)的方法。
1. 使用Wireshark工具
Wireshark是一款非常流行的網(wǎng)絡(luò)封包分析軟件,功能十分強(qiáng)大。使用該工具可以截取各種網(wǎng)絡(luò)封包,并顯示網(wǎng)絡(luò)封包的詳細(xì)信息。下面介紹使用Wireshark工具監(jiān)聽(tīng)局域網(wǎng)中的各種廣播數(shù)據(jù)包。
使用Wireshark進(jìn)行數(shù)據(jù)包監(jiān)聽(tīng)。具體操作步驟如下:
1)關(guān)閉系統(tǒng)中運(yùn)行的程序,以免產(chǎn)生流量影響對(duì)數(shù)據(jù)包的分析。然后啟動(dòng)Wireshark工具。在圖形界面依次選擇“應(yīng)用程序”|“嗅探/欺騙”|wireshark命令,將彈出如圖1所示對(duì)話框?;蛘撸诿钚休斎肴缦旅睿?/p>
root@daxueba:~# wireshark
執(zhí)行以上命令后,將彈出如圖1所示對(duì)話框。
圖1 警告信息
2)該對(duì)話框中顯示的是一個(gè)警告信息,提示在init.lua文件中使用dofile函數(shù)禁用了使用超級(jí)用戶運(yùn)行Wireshark。這是因?yàn)閃ireshark工具是使用Lua語(yǔ)言編寫的,并且在Kali Linux中的init.lua文件中有一處語(yǔ)法錯(cuò)誤,所以會(huì)提示Lua:Error during loading:。此時(shí)只需要將init.lua文件中倒數(shù)第二行代碼修改一下就可以了,原文件中倒數(shù)第一、二行代碼如下:
root@daxueba:~# vi /usr/share/wireshark/init.lua
dofile(DATA_DIR“console.lua”)
--dofile(DATA_DIR“dtd_gen.lua”)
將以上第1行修改如下:
--dofile(DATA_DIR“console.lua”)
--dofile(DATA_DIR“dtd_gen.lua”)
修改完該內(nèi)容后,再次運(yùn)行Wireshark將不會(huì)提示以上警告信息。
3)此時(shí),單擊OK按鈕,即可啟動(dòng)Wireshark工具,如圖2所示。
圖2 Wireshark的主界
4)在其中選擇eth0接口,并單擊按鈕,將開(kāi)始捕獲數(shù)據(jù)包,如圖3所示。或者,直接雙擊選擇的網(wǎng)絡(luò)接口,也可以開(kāi)始捕獲數(shù)據(jù)包。
圖3 監(jiān)聽(tīng)到的數(shù)據(jù)包
5)從圖3中可以看到監(jiān)聽(tīng)到的所有數(shù)據(jù)包。從Protocol(協(xié)議)列中可以看到每個(gè)數(shù)據(jù)包的協(xié)議。例如,監(jiān)聽(tīng)到的協(xié)議數(shù)據(jù)包有ICMPv6、BROWSER、SSDP、NBNS、LLMNR、ARP、DHCP。此時(shí),通過(guò)分析源(Source)和目標(biāo)地址(Destination),即可知道這些包是由哪個(gè)主機(jī)發(fā)送的,進(jìn)而確定該主機(jī)的狀態(tài)。為了能夠快速找到廣播的數(shù)據(jù)包,可以使用顯示過(guò)濾器進(jìn)行過(guò)濾。顯示過(guò)濾器的語(yǔ)法格式如下:
ip.dst==廣播地址
在本例中廣播地址為192.168.33.255,所以輸入的顯示過(guò)濾器為“ip.dst==192.168.33.255”。當(dāng)過(guò)濾成功后,顯示如圖4所示。
圖4 廣播數(shù)據(jù)包
6)在圖4中顯示的數(shù)據(jù)包都是廣播數(shù)據(jù)包。發(fā)送這幾個(gè)廣播數(shù)據(jù)包的源IP地址分別是192.168.33.147和192.168.33.1。由此可以說(shuō)明,當(dāng)前局域網(wǎng)中IP地址為192.168.33.147和192.168.33.1的主機(jī)是活動(dòng)的。
2. 使用Tcpdump工具
Tcpdump是一個(gè)命令行的嗅探工具,可以基于過(guò)濾表達(dá)式抓取網(wǎng)絡(luò)中的報(bào)文,分析報(bào)文,并且在包層面輸出報(bào)文內(nèi)容以便于包層面的分析。其中,使用Tcpdump工具監(jiān)聽(tīng)數(shù)據(jù)包的語(yǔ)法格式如下:
tcpdump -i < interface >-w <file>
以上語(yǔ)法中的選項(xiàng)及含義如下:
-i:指定監(jiān)聽(tīng)的網(wǎng)絡(luò)接口。
-w:指定數(shù)據(jù)包保存的文件名。
使用Tcpdump工具監(jiān)聽(tīng)局域網(wǎng)(192.168.33.0/24)中的廣播數(shù)據(jù)包。執(zhí)行命令如下:
root@daxueba:~# tcpdump -i eth0 'dst 192.168.33.255'
執(zhí)行以上命令后,將顯示如下信息:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:42:08.253592 IP 192.168.33.1.netbios-ns > 192.168.33.255.netbios-ns:
NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
16:42:09.003718 IP 192.168.33.1.netbios-ns > 192.168.33.255.netbios-ns:
NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
16:42:09.753975 IP 192.168.33.1.netbios-ns > 192.168.33.255.netbios-ns:
NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
16:43:40.623859 IP 192.168.33.147.netbios-dgm > 192.168.33.255.netbios-dgm:
NBT UDP PACKET(138)
16:43:40.623967 IP 192.168.33.147.netbios-dgm > 192.168.33.255.netbios-dgm:
NBT UDP PACKET(138)
16:55:47.618389 IP 192.168.33.147.netbios-dgm > 192.168.33.255.netbios-dgm:
NBT UDP PACKET(138)
16:55:47.618562 IP 192.168.33.147.netbios-dgm > 192.168.33.255.netbios-dgm:
NBT UDP PACKET(138)
16:58:20.188490 IP 192.168.33.1.netbios-ns > 192.168.33.255.netbios-ns:
NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
16:58:20.939089 IP 192.168.33.1.netbios-ns > 192.168.33.255.netbios-ns:
NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
16:58:21.689402 IP 192.168.33.1.netbios-ns > 192.168.33.255.netbios-ns:
NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
從以上輸出信息中可以看到監(jiān)聽(tīng)到的數(shù)據(jù)包。從顯示的包信息中,可以看到數(shù)據(jù)包的源和目標(biāo)IP地址、使用的協(xié)議及包長(zhǎng)度。如果想停止監(jiān)聽(tīng)數(shù)據(jù)包的話,按Ctrl+C組合鍵后,將顯示如下信息:
^C
10 packets captured
10 packets received by filter
0 packets dropped by kernel
從輸出的信息中可以看到,捕獲到了10個(gè)數(shù)據(jù)包。在以上命令中,沒(méi)有指定將輸出結(jié)果寫入到一個(gè)文件中,所以是標(biāo)準(zhǔn)輸出。如果使用-w選項(xiàng)指定捕獲文件的話,將不會(huì)是標(biāo)準(zhǔn)輸出。此外,還可以使用Wireshark工具,以圖形界面分析捕獲到的包。