第3章 區域網路掃描
區域網路(Local Area Network,LAN)是指某一區域内由多台計算機互聯成的計算機組。在區域網路中,所有的主機之間都可以進行通信。是以,通過對區域網路中的主機進行掃描,即可發現活動的主機,并進行資料傳輸。本章将介紹對區域網路中的主機進行掃描的方法。
3.1 網 絡 環 境
在實施區域網路掃描之前,需要對其網絡環境有所了解,如網絡範圍、經過的路由等,然後才可以确定掃描的目标。本節将對區域網路網絡環境進行簡單介紹。
3.1.1 網絡範圍
當使用者實施區域網路掃描時,首先要确定一個網絡範圍,如單個IP位址、多個IP位址、一個位址範圍或整個子網,否則将會浪費大量的時間。IP位址是由兩部分組成,即網絡位址和主機位址。網絡位址表示其屬于網際網路的哪一個網絡,主機位址表示其屬于該網絡中的哪一台主機。二者是主從關系。IP位址根據網絡号和主機号,分為A類(1.0.0.0~126.0.0.0)、B類(128.1.0.0~191.255.0.0)和C類(192.0.1.0~223.255.255.0)三類及特殊位址D類和E類。另外,全0和全1都保留不用。下面簡單對每類位址作一個分析。
- A類:該類位址範圍為1.0.0.0~126.0.0.0,子網路遮罩為255.0.0.0。在該位址中,第一個位元組為網絡号,後三個位元組為主機号。該類IP位址的最前面為0,是以位址的網絡号取值于1~126之間。
- B類:該類位址範圍為128.1.0.0~191.255.0.0,子網路遮罩為255.255.0.0。在該位址中,前兩個位元組為網絡号,後兩個位元組為主機号。該類IP位址的最前面為10,是以位址的網絡号取值于128~191之間。
- C類:該類位址範圍為192.0.1.0~223.255.255.0,子網路遮罩為255.255.255.0。在該位址中,前3個位元組為網絡号,最後一個位元組為主機号。該類IP位址的最前面為110,是以位址的網絡号取值于129~223之間。
- D類:是多點傳播位址。該類IP位址的最前面為1110,是以位址的網絡号取值于224~239之間。一般用于多路廣播使用者。多點傳播位址是讓源裝置能夠将分組發送給一組裝置的位址。屬于多點傳播組的裝置将被配置設定一個多點傳播組IP位址,多點傳播位址範圍為224.0.0.0~239.255.255.255。由于多點傳播位址表示一組裝置,是以隻能用作分組的目标位址。源位址總是為單點傳播位址。多點傳播MAC位址以十六進制值01-00-5E開頭,餘下的6個十六進制位是根據IP多點傳播組位址的最後23位轉換得到的。
- E類:是保留位址。該類IP位址的最前面為1111,是以位址的網絡号取值于240~255之間。
在掃描時還可以通過CIDR格式來指定掃描整個子網。其中,CIDR格式是由網絡位址和子網路遮罩兩部分組成,中間使用斜杠(/)分隔。下面将給出一個CIDR和子網路遮罩對應清單,如表3.1所示。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SYwQTZmVTM0M2N1MmY4MTY2kTY0MTZ4QTNmhDZ1IWZl9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
在IP位址中,還有一種特殊的IP位址是廣播位址。廣播位址是專門用于同時向網絡中所有工作站進行發送的一個位址。在使用TCP/IP協定的網絡中,主機辨別段host ID為全1的IP位址為廣播位址,廣播的分組傳送給host ID段所涉及的所有計算機。例如,10.0.0.0(255.0.0.0)網段,其廣播位址為10.255.255.255;172.16.0.0(255.255.0.0)網段,其廣播位址為172.16.255.255;192.168.1.0(255.255.255.0)網段,其廣播位址為192.168. 1.255。其中,廣播位址對應的MAC位址為FF-FF-FF-FF-FF-FF。
1.使用Netmask工具
在Kali Linux中,預設提供了一個名為Netmask工具,可以用來實作IP位址格式轉換。該工具可以在IP範圍、子網路遮罩、CIDR、Cisco等格式中互相轉換,并且提供了IP位址的點分十進制、十六進制、八進制、二進制之間的互相轉換。
【執行個體3-1】使用Netmask工具将IP範圍轉換為CIDR格式。執行指令如下:
root@daxueba:~# netmask -c 192.168.0.0:192.168.2.255
192.168.0.0/23
192.168.2.0/24
從以上輸出的資訊中可以看到,已經成功地将IP範圍轉換為CIDR格式了。
【執行個體3-2】使用Netmask工具将IP範圍轉換為标準的子網路遮罩格式。執行指令如下:
root@daxueba:~# netmask -s 192.168.0.0:192.168.2.255
192.168.0.0/255.255.254.0
192.168.2.0/255.255.255.0
從以上輸出的資訊中可以看到,已經成功地将IP範圍轉換為子網路遮罩格式了。
【執行個體3-3】使用Netmask工具将IP範圍轉換到Cisco格式。執行指令如下:
root@daxueba:~# netmask -i 192.168.0.0:192.168.2.255
192.168.0.0 0.0.1.255
192.168.2.0 0.0.0.255
從以上輸出的資訊中可以看到,已經成功地将IP範圍轉換為Cisco格式了。
【執行個體3-4】使用Netmask工具将CIDR格式轉換到IP範圍格式。執行指令如下:
root@daxueba:~# netmask -r 192.168.0.0/23
192.168.0.0-192.168.1.255 (512)
從以上輸出的資訊中可以看到,已經成功地将CIDR格式轉換為IP範圍格式了。
2.使用Nmap工具實施掃描
Nmap工具提供了一個-iL選項,可以對指定的目标清單實施掃描。使用該工具的文法格式如下:
以上文法中的選項及參數含義如下:
- -iL:從檔案清單中讀取目标位址。該清單支援任何格式的位址,包括IP位址、主機名、CIDR、IPv6或者八位位元組範圍,而且每一項必須以一個或多個空格、制表符或換行符分開。
- inputfilename:位址清單檔案名。
【執行個體3-5】使用Nmap工具對192.168.33.0/24整個子網中的主機進行掃描。這裡将該目标寫入hosts.list檔案,具體如下:
root@daxueba:~# vi hosts.list
192.168.33.0/24
此時,将使用-iL選項,指定對該目标清單檔案實施掃描。執行指令如下:
root@daxueba:~# nmap -iL hosts.list
Starting Nmap 7.70 ( https://nmap.org ) at 2018-12-21 11:28 CST
Nmap scan report for 192.168.33.152 (192.168.33.152)
Host is up (0.00096s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
MAC Address: 00:0C:29:FD:58:4B (VMware)
Nmap scan report for 192.168.33.1 (192.168.33.1)
Host is up (0.00022s latency).
All 1000 scanned ports on 192.168.33.1 (192.168.33.1) are filtered
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.33.2 (192.168.33.2)
Host is up (0.00044s latency).
All 1000 scanned ports on 192.168.33.2 (192.168.33.2) are closed
MAC Address: 00:50:56:FE:0A:32 (VMware)
Nmap done: 3 IP addresses (3 hosts up) scanned in 4.12 seconds
從以上顯示的結果中可以看到,192.168.33.0/24網絡内有3台活動主機。其中,活動的主機位址分别是192.168.33.152、192.168.33.1和192.168.33.2。
3.1.2 上級網絡
在一個區域網路内,使用者也可能會使用多個路由器進行串聯,以滿足擴大原有的網絡範圍,或者在原有的網絡下建構新的網絡(子網絡)。如果使用者連接配接的是最底層網絡的話,則可以通過路由跟蹤的方式掃描到上級網絡的路由。根據擷取的路由資訊,可以猜測上級網絡的範圍大小。下面将介紹實施路由跟蹤的方法。
1.使用Nmap工具
Nmap工具提供了一個--traceroute選項,可以用來實作路由跟蹤。下面介紹使用Nmap工具實施路由跟蹤,以擷取上級網絡資訊。
【執行個體3-6】使用Nmap工具找出通路百度伺服器(www.baidu.com)所經過的網絡節點。執行指令如下:
root@daxueba:~# nmap --traceroute www.baidu.com
Starting Nmap 7.70 ( https://nmap.org ) at 2019-01-04 15:28 CST
Nmap scan report for www.baidu.com (61.135.169.125)
Host is up (0.019s latency).
Other addresses for www.baidu.com (not scanned): 61.135.169.121
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
TRACEROUTE (using port 443/tcp)
HOP RTT ADDRESS
1 1.22 ms 192.168.1.1 (192.168.1.1)
2 3.56 ms 10.188.0.1 (10.188.0.1)
3 ... 10
11 18.21 ms 61.135.169.125
Nmap done: 1 IP address (1 host up) scanned in 9.22 seconds
從輸出的資訊中可以看到,Nmap工具自動将百度伺服器的IP位址解析出來并進行了掃描。從顯示的結果中可以看到,本地到百度伺服器經過的上級路由依次為192.168.1.1和192.168.0.1。而且,還可以看到目标伺服器上開放了80和443兩個端口。
2.使用Traceroute工具
Traceroute是一款用來偵測由源主機到目标主機所經過的路由請求的重要工具。Traceroute工具收到目的主機IP後,首先給目的主機發送一個TTL=1(TTL指生存時間)的UDP資料包,而經過的第一個路由器收到這個資料包之後,自動把TTL減去1。當TTL變為0之後,路由器就将這個資料包抛棄了,并同時産生一個主機不可達的ICMP逾時資料報給主機。主機收到這個ICMP資料報以後,會發送一個TTL=2的資料報給目的主機,然後刺激第二個路由器給主機發送ICMP資料報,如此反複,直到到達目的主機。這樣Traceroute就可以拿到所有路由器的IP,進而避開IP頭隻能記錄有限路由的IP位址。下面介紹使用Traceroute工具實施路由跟蹤的方法。
使用Traceroute工具實施路由跟蹤的文法格式如下:
【執行個體3-7】使用Traceroute工具偵測通路百度伺服器的所有路由。執行指令如下:
root@daxueba:~# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 0.622 ms 0.520 ms 0.616 ms
2 10.188.0.1 (10.188.0.1) 3.504 ms 3.463 ms 3.528 ms
3 193.6.220.60.adsl-pool.sx.cn (60.220.6.193) 12.510 ms 12.441 ms 12.364
ms
4 253.8.220.60.adsl-pool.sx.cn(60.220.8.253) 14.471 ms 169.9.220.60.
adsl-
pool.sx.cn (60.220.9.169) 12.489 ms 249.8.220.60.adsl-pool.sx.cn (60. 220. 8.249) 12.112 ms
5 - 219.158.96.89 (219.158.96.89) 24.322 ms 219.158.103.81 (219.158.103.
81) 21.709 ms
6 124.65.194.18 (124.65.194.18) 23.039 ms 124.65.194.166 (124.65.194. 166) 23.014 ms 124.65.194.154 (124.65.194.154) 26.398 ms
7 123.126.0.54 (123.126.0.54) 20.222 ms 19.757 ms 61.51.113.194 (61.51.
113.194) 32.827 ms
8 61.49.168.78 (61.49.168.78) 27.969 ms 123.125.248.110 (123.125.248. 110)
21.597 ms 61.49.168.102 (61.49.168.102) 21.717 ms
9 - - *
10 - - *
11 - - *
12 - - *
13 - - *
14 - - *
15 - - *
16 - - *
17 - - *
18 - - *
19 - - *
20 - - *
21 - - *
22 - - *
23 - - *
24 - - *
25 - - *
26 - - *
27 - - *
28 - - *
29 - - *
30 - - *
在以上輸出資訊中,每條記錄序列号從1開始。其中,每個記錄就是一跳,每跳表示一個網關。而且我們還可以看到每行有3個時間,機關是ms。這3個時間表示探測資料包向每個網關發送3個資料包後,網關響應後傳回的時間。另外,我們還發現有一些行是以星号表示的。出現這種情況,可能是防火牆封掉了ICMP的傳回消息,是以我們無法擷取到相關的資料包傳回資料。從輸出的第一行資訊可以看到,已經成功解析出百度伺服器的IP位址為61.135.169.125,共經過30跳,包大小為60個位元組。從顯示的記錄中可以看到,經過的路由有192.168.1.1、10.188.0.1、60.220.6.193等。
3.2 ARP掃描
ARP(Address Resolution Protocol,位址解析協定)是根據IP位址擷取實體位址的一個TCP/IP協定。由于主機進行通信時,将會發送一個包含目标IP位址的ARP請求廣播到網絡上的所有主機,并接收傳回消息,以此确定目标的實體位址,是以可以使用主動和被動兩種方式來實施ARP掃描。本節将介紹ARP掃描的方法。
3.2.1 主動掃描
主動掃描就是主動發送一個ARP請求包,等待目标主機的響應。如果目标主機響應了該請求後,則說明該主機是活動的;否則,說明目标主機不線上。下面介紹使用Nmap工具的-PR選項實施ARP主動掃描的方法。
使用Nmap工具實施ARP主動掃描的文法格式如下:
其中,-PR表示實施ARP Ping掃描。
【執行個體3-8】使用Nmap實施ARP主動掃描。執行指令如下:
root@daxueba:~# nmap -PR 192.168.33.152
Starting Nmap 7.70 ( https://nmap.org ) at 2018-12-21 11:49 CST
Nmap scan report for 192.168.33.152 (192.168.33.152)
Host is up (0.000073s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
MAC Address: 00:0C:29:FD:58:4B (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds
從以上輸出資訊中可以看到,目标主機192.168.33.152是活動的。而且,開放的端口有3個,分别是21、22和80。
1.使用Netdiscover工具
Netdiscover是一個主動/被動的ARP偵查工具。使用該工具可以在網絡上掃描IP位址,檢查線上主機或搜尋為它們發送的ARP請求。下面介紹使用Netdiscover工具實施ARP主動掃描的方法。文法格式如下:
其中,-r [range]表示指定掃描的網絡範圍。
【執行個體3-9】使用Netdiscover工具實施ARP主動掃描。執行指令如下:
root@daxueba:~# netdiscover -r 192.168.1.0/24
Currently scanning: Finished! | Screen View: Unique Hosts
6 Captured ARP Req/Rep packets, from 3 hosts. Total size: 360
________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
----------------------------------------------------------------
192.168.1.1 70:85:40:53:e0:35 20 1200 Unknown vendor
192.168.1.3 1c:6f:65:c8:4c:89 14 840 GIGA-BYTE TECHNOLOGY
CO.,LTD.
192.168.1.41 1c:77:f6:60:f2:cc 5 300 GUANGDONG OPPO MOBILE
TELECOMMUNICATIONS CORP.,LTD
從以上輸出資訊中可以看到,掃描到了3台活動主機,位址分别是192.168.1.1、192.168.1.3和192.168.1.41。
2.使用arp-scan工具
arp-scan是一款ARP掃描工具。該工具可以進行單一目标掃描,也可以進行批量掃描。批量掃描的時候,使用者可以通過CIDR、位址範圍或者清單檔案的方式指定。該工具允許使用者定制ARP包,建構非标準資料包。同時,該工具會自動解析MAC位址,給出MAC位址對應的硬體廠商,以幫助使用者确認目标。其中,使用arp-scan工具掃描的文法格式如下:
【執行個體3-10】使用arp-scan工具對目标主機192.168.1.3實施掃描。執行指令如下:
root@daxueba:~# arp-scan 192.168.1.3
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 1 hosts (https://github.com/royhills/arp-scan)
192.168.1.3 1c:6f:65:c8:4c:89 GIGA-BYTE TECHNOLOGY CO.,LTD.
1 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 1 hosts scanned in 0.590 seconds (1.69 hosts/sec).
1 responded
從以上的輸出資訊中可以看到,目标主機是活動的。此外,還可以看到該目标主機的MAC位址為1c:6f:65:c8:4c:89,網卡生産廠商為GIGA-BYTE TECHNOLOGY CO.,LTD。
3.使用Arping工具
Arping是一個ARP級别的Ping工具,主要用來向區域網路内的其他主機發送ARP請求的指令。使用該工具可以測試區域網路内的某個IP位址是否已被使用。Arping工具的文法格式如下:
其中,-c 表示指定發送的ARP包數。
【執行個體3-11】使用Arping工具實施ARP掃描,并發送一個ARP請求包。執行指令如下:
root@daxueba:~# arping -c 1 192.168.33.147
ARPING 192.168.33.147
60 bytes from 00:0c:29:3e:84:91 (192.168.33.147): index=0 time=238.821 usec
--- 192.168.33.147 statistics ---
1 packets transmitted, 1 packets received, 0% unanswered (0 extra)
rtt min/avg/max/std-dev = 0.239/0.239/0.239/0.000 ms
從以上輸出資訊中可以看到,收到了目标主機傳回的一個響應包,由此可以說明目标主機是活動的。如果目标主機不線上,将顯示如下資訊:
root@daxueba:~# arping -c 1 192.168.33.128
ARPING 192.168.33.128
Timeout
--- 192.168.33.128 statistics ---
1 packets transmitted, 0 packets received, 100% unanswered (0 extra)
從輸出的資訊中可以看到,傳回的消息為Timeout(逾時)。
3.2.2 被動掃描
被動掃描是通過長期監聽ARP廣播,來發現同一區域網路中的活動主機。Netdiscover工具既可以以主動模式掃描主機,也可以以被動模式嗅探存活的主機。下面介紹使用Netdiscover工具實施被動掃描的方法。
Netdiscover工具實施被動掃描的文法格式如下:
其中,-p:被動模式(passive mode),不發送任何資料包,僅嗅探。
【執行個體3-12】使用Netdiscover工具實施被動掃描。執行指令如下:
root@daxueba:~# netdiscover -p
執行以上指令後,将顯示如下資訊:
Currently scanning: (passive) | Screen View: Unique Hosts
39 Captured ARP Req/Rep packets, from 3 hosts. Total size: 2340
_________________________________________________________________
IP At MAC Address Coun Len MAC Vendor / Hostname
-----------------------------------------------------------------
192.168.1.1 70:85:40:53:e0:35 20 1200 Unknown vendor
192.168.1.3 1c:6f:65:c8:4c:89 14 840 GIGA-BYTE TECHNOLOGY
CO.,LTD.
192.168.1.41 1c:77:f6:60:f2:cc 5 300 GUANGDONG OPPO MOBILE
TELECOMMUNICATIONS CORP.,LTD
從輸出的第1行資訊中,可以看到正在使用被動模式(passive)實施掃描。從第2行資訊中,可以看到嗅探到的包數、主機數及包大小。第3行以下的資訊則是嗅探到的包資訊。在該部分中共包括6列,分别是IP(IP位址)、At MAC Address(MAC位址)、Count(包數)、Len(長度)、MAC Vendor(MAC位址生産廠商)和Hostname(主機名)。通過分析捕獲到的包,可以知道目前區域網路中活動的主機IP位址、MAC位址及MAC位址的生産廠商等。例如,主機192.168.13的MAC位址為1c:6f:65:c8:4c:89,MAC位址廠商為GIGA-BYTE,主機名為TECHNOLOGY CO.,LTD.。如果使用者不想要繼續掃描的話,可以按快捷鍵Ctrl+C停止被動掃描。
3.2.3 裝置MAC查詢
通過對目标主機實施ARP掃描後,可以擷取到目标主機的MAC位址,以及MAC生産廠商。但有一些裝置無法擷取到其生産廠商,此時可以到
https://mac.51240.com/網站進行查詢,以擷取更詳細的資訊。
【執行個體3-13】查詢裝置MAC位址的詳細資訊。具體操作步驟如下:
(1)在浏覽器中輸入MAC位址查詢網址
。通路成功後,将顯示如圖3.1所示的界面。
(2)在圖3.1所示的“MAC位址”文本框中輸入要查詢的MAC位址,并單擊“查詢”按鈕即可擷取到對應資訊。其中,輸入的MAC位址格式為00-01-6C-A6-29或00:01:6C:06:A6:29。例如,這裡查詢MAC位址為70:85:40:53:e0:35的資訊,查詢結果如圖3.2所示。
(3)從圖3.2中可以看到擷取到的MAC相關資訊,包括組織名稱、國家/地區、省份、城市、街道和郵編。
3.3 DHCP被動掃描
DHCP(Dynamic Host Configuration Protocol,動态主機配置協定)是一個區域網路的網絡協定,主要作用就是給内部網或網絡服務供應商自動配置設定IP位址。當一個用戶端需要擷取一個IP位址時,将會向DHCP伺服器發送廣播包,收到請求的伺服器會提供一個可用的IP位址給用戶端,是以可以監聽該協定的包。本節将介紹實施DHCP被動掃描的方法。
3.3.1 DHCP工作機制
DHCP協定采用UDP作為傳輸協定,主機發送請求消息到DHCP伺服器的67号端口,DHCP伺服器回應應答消息給主機的68号端口。DHCP協定的具體工作流程如圖3.3所示。
DHCP工作流程的詳細互動過程如下:
(1)DHCP用戶端以廣播的方式發出DHCP Discover封包。
(2)所有的DHCP伺服器都能夠接收到DHCP用戶端發送的DHCP Discover封包,所有的DHCP伺服器都會給出響應,向DHCP用戶端發送一個DHCP Offer封包。DHCP Offer封包中Your(Client) IP Address字段就是DHCP伺服器能夠提供給DHCP用戶端使用的IP位址,且DHCP伺服器會将自己的IP位址放在Option字段中以便DHCP用戶端區分不同的DHCP伺服器。DHCP伺服器在發出此封包後會存在一個已配置設定IP位址的記錄。
(3)DHCP用戶端隻能處理其中的一個DHCP Offer封包,一般的原則是DHCP用戶端處理最先收到的DHCP Offer封包。DHCP用戶端會發出一個廣播的DHCP Request封包,在選項字段中會加入選中的DHCP伺服器的IP位址和需要的IP位址。
(4)DHCP伺服器收到DHCP Request封包後,判斷選項字段中的IP位址是否與自己的位址相同。如果不相同,DHCP伺服器不做任何處理隻清除相應IP位址配置設定記錄。如果相同,DHCP伺服器就會向DHCP用戶端響應一個DHCP ACK封包,并在選項字段中增加IP位址的使用租期資訊。
(5)DHCP用戶端接收到DHCP ACK封包後,檢查DHCP伺服器配置設定的IP位址是否能夠使用。如果可以使用,則DHCP用戶端成功獲得IP位址,并根據IP位址使用租期自動啟動續延過程。如果DHCP用戶端發現配置設定的IP位址已經被使用,則DHCP用戶端向DHCP伺服器發出DHCP Decline封包,通知DHCP伺服器禁用這個IP位址。然後,DHCP用戶端将開始新的位址申請過程。
(6)DHCP用戶端在成功擷取IP位址後,随時可以通過發送DHCP Release封包釋放自己的IP位址。DHCP伺服器收到DHCP Release封包後,會回收相應的IP位址并重新配置設定。
3.3.2 被動掃描
通過對DHCP協定的工作流程進行分析可知,當用戶端請求擷取IP位址時,會發送一個DHCP Discover廣播包,此時,區域網路中的所有主機都可以收到該資料包。是以,通過監聽方式,即可實作DHCP被動掃描。下面将介紹實施DHCP被動掃描的方法。
在Nmap中,提供了一個broadcast-dhcp-discover腳本能夠用來發送一個DHCP Discover廣播包,并顯示響應包的具體資訊。通過對響應包的資訊進行分析,能夠找到可配置設定的IP位址。使用broadcast-dhcp-discover腳本實施被動掃描的文法格式如下:
【執行個體3-14】使用broadcast-dhcp-discover腳本向區域網路中發送DHCP Discover廣播包。執行指令如下:
root@daxueba:~# nmap --script broadcast-dhcp-discover
Starting Nmap 7.70 ( https://nmap.org ) at 2018-12-30 18:30 CST
Pre-scan script results:
| broadcast-dhcp-discover:
| Response 1 of 1:
| IP Offered: 192.168.33.156 #提供的IP位址
| DHCP Message Type: DHCPOFFER #DHCP消息類型
| Server Identifier: 192.168.33.254 #伺服器辨別符
| IP Address Lease Time: 30m00s #IP位址釋放時間
| Subnet Mask: 255.255.255.0 #子網路遮罩
| Router: 192.168.33.2 #路由位址
| Domain Name Server: 192.168.33.2 #域名服務
| Domain Name: localdomain #域名
| Broadcast Address: 192.168.33.255 #廣播位址
| NetBIOS Name Server: 192.168.33.2 #NetBIOS名稱服務
| Renewal Time Value: 15m00s #更新時間值
|_ Rebinding Time Value: 26m15s #第二次選擇時間值
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 1.32 seconds
從以上輸出資訊中可以看到,可以提供的IP位址為192.168.33.156。
2.使用dhcpdump工具
dhcpdump是一個指令行格式的DHCP流量嗅探工具,可以捕獲DHCP的請求/回複流量,并以使用者友好的方式顯示解碼的DHCP協定消息。使用dhcpdump工具實施被動掃描的文法格式如下:
其中,-i [interface]表示指定監聽的網絡接口。
在Kali Linux中,預設沒有安裝dhcpdump工具。如果要使用該工具,則必須先安裝。執行指令如下:
root@daxueba:~# apt-get install dhcpdump
執行以上指令後,如果沒有報錯,則說明安裝成功。
【執行個體3-15】使用dhcpdump工具實施被動掃描。執行指令如下:
root@daxueba:~# dhcpdump -i eth0
TIME: 2019-01-02 17:33:29.634 #時間
IP: 0.0.0.0 (0:c:29:fd:58:4b) > 255.255.255.255 (ff:ff:ff:ff:ff:ff) #IP位址
OP: 1 (BOOTPREQUEST) #封包類型
HTYPE: 1 (Ethernet) #用戶端的網絡硬體位址類型
HLEN: 6 #用戶端的網絡硬體位址長度
HOPS: 0 #跳數
XID: 5a162962 #事務ID
SECS: 0 #秒數
FLAGS: 0 #标志
CIADDR: 0.0.0.0 #用戶端自己的IP位址
YIADDR: 0.0.0.0 #你的IP位址
SIADDR: 0.0.0.0 #伺服器的IP位址
GIADDR: 0.0.0.0 #中繼代理IP位址
CHADDR: 00:0c:29:fd:58:4b:00:00:00:00:00:00:00:00:00:00 #用戶端硬體位址
SNAME: . #伺服器的主機名
FNAME: . #啟動檔案名
OPTION: 53 ( 1) DHCP message type 3 (DHCPREQUEST) #選項
OPTION: 12 ( 7) Host name daxueba
OPTION: 55 ( 16) Parameter Request List 1 (Subnet mask)
28 (Broadcast address)
2 (Time offset)
3 (Routers)
15 (Domainname)
6 (DNS server)
119 (Domain Search)
12 (Host name)
44 (NetBIOS name server)
47 (NetBIOS scope)
26 (Interface MTU)
121 (Classless Static Route)
42 (NTP servers)
249 (MSFT - Classless route)
33 (Static route)
252 (MSFT - WinSock Proxy Auto Detect)
----------------------------------------------------------
TIME: 2019-01-02 17:33:29.634 #時間
IP: 192.168.33.254 (0:50:56:f7:d0:3e) > 192.168.33.152 (0:c:29:fd:58:4b) #IP位址
OP: 2 (BOOTPREPLY) #封包類型
HTYPE: 1 (Ethernet) #用戶端的網絡硬體位址類型
HLEN: 6 #用戶端的網絡硬體位址長度
HOPS: 0 #跳數
XID: 5a162962 #事務ID
SECS: 0 #秒數
FLAGS: 0 #标志
CIADDR: 0.0.0.0 #用戶端自己的IP位址
YIADDR: 192.168.33.152 #你的IP位址
SIADDR: 192.168.33.254 #伺服器的IP位址
GIADDR: 0.0.0.0 #中繼代理IP位址
CHADDR: 00:0c:29:fd:58:4b:00:00:00:00:00:00:00:00:00:00 #客戶機硬體位址
SNAME: . #伺服器的主機名
FNAME: . #啟動檔案名
OPTION: 53 ( 1) DHCP message type 5 (DHCPACK) #選項
OPTION: 54 ( 4) Server identifier 192.168.33.254
OPTION: 51 ( 4) IP address leasetime 1800 (30m)
OPTION: 1 ( 4) Subnet mask 255.255.255.0
OPTION: 28 ( 4) Broadcast address 192.168.33.255
OPTION: 3 ( 4) Routers 192.168.33.2
OPTION: 15 ( 11) Domainname localdomain
OPTION: 6 ( 4) DNS server 192.168.33.2
OPTION: 44 ( 4) NetBIOS name server 192.168.33.2
----------------------------------------------------------
以上輸出的資訊,就是一個DHCP請求及響應包資訊。通過對以上輸出結果的分析,可知道第一個包為BOOTPREQUEST(請求),第二個包為BOOTPREPLY(響應)。
3.4 其 他 監 聽
除ARP和DHCP請求外,在區域網路中還有一些協定,會主動發送一些廣播或多點傳播包,如BROWSER、SSDP和LLMNR等。此時通過監聽方式,可以了解到一些活動主機的資訊。本節将介紹對這些協定資料包進行監聽的方法。
1.使用Wireshark工具
Wireshark是一款非常流行的網絡封包分析軟體,功能十分強大。使用該工具可以截取各種網絡封包,并顯示網絡封包的詳細資訊。下面将介紹使用Wireshark工具監聽區域網路中的各種廣播資料包。
【執行個體3-16】使用Wireshark進行資料包監聽。具體操作步驟如下:
(1)關閉系統中運作的程式,以免産生流量影響對資料包的分析。然後啟動Wireshark工具。在圖形界面依次選擇“應用程式”|“嗅探/欺騙”|wireshark指令,将彈出如圖3.4所示對話框。或者,在指令行輸入如下指令:
root@daxueba:~# wireshark
執行以上指令後,将彈出如圖3.4所示對話框。
(2)該對話框中顯示的是一個警告資訊,提示在init.lua檔案中使用dofile函數禁用了使用超級使用者運作Wireshark。這是因為Wireshark工具是使用Lua語言編寫的,并且在Kali Linux中的init.lua檔案中有一處文法錯誤,是以會提示Lua:Error during loading:。此時隻需要将init.lua檔案中倒數第二行代碼修改一下就可以了,原檔案中倒數第一、二行代碼如下:
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")
修改完該内容後,再次運作Wireshark将不會提示以上警告資訊。
(3)此時,單擊OK按鈕,即可啟動Wireshark工具,如圖3.5所示。
(4)在其中選擇eth0接口,并單擊按鈕,将開始捕獲資料包,如圖3.6所示。或者,直接輕按兩下選擇的網絡接口,也可以開始捕獲資料包。
(5)從圖3.6中可以看到監聽到的所有資料包。從Protocol(協定)列中可以看到每個資料包的協定。例如,監聽到的協定資料包有ICMPv6、BROWSER、SSDP、NBNS、LLMNR、ARP、DHCP。此時,通過分析源(Source)和目标位址(Destination),即可知道這些包是由哪個主機發送的,進而确定該主機的狀态。為了能夠快速找到廣播的資料包,可以使用顯示過濾器進行過濾。顯示過濾器的文法格式如下:
在本例中廣播位址為192.168.33.255,是以輸入的顯示過濾器為“ip.dst==192.168.33.255”。當過濾成功後,顯示如圖3.7所示。
(6)在圖3.7中顯示的資料包都是廣播資料包。發送這幾個廣播資料包的源IP位址分别是192.168.33.147和192.168.33.1。由此可以說明,目前區域網路中IP位址為192.168.33.147和192.168.33.1的主機是活動的。
2.使用Tcpdump工具
Tcpdump是一個指令行的嗅探工具,可以基于過濾表達式抓取網絡中的封包,分析封包,并且在包層面輸出封包内容以便于包層面的分析。其中,使用Tcpdump工具監聽資料包的文法格式如下:
以上文法中的選項及含義如下:
- -i < interface >:指定監聽的網絡接口。
-
-w < file >:指定資料包儲存的檔案名。
【執行個體3-17】使用Tcpdump工具監聽區域網路(192.168.33.0/24)中的廣播資料包。執行指令如下:
root@daxueba:~# tcpdump -i eth0 'dst 192.168.33.255'
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
從以上輸出資訊中可以看到監聽到的資料包。從顯示的包資訊中,可以看到資料包的源和目标IP位址、使用的協定及包長度。如果想停止監聽資料包的話,按Ctrl+C組合鍵後,将顯示如下資訊:
^C
10 packets captured
10 packets received by filter
0 packets dropped by kernel
從輸出的資訊中可以看到,捕獲到了10個資料包。在以上指令中,沒有指定将輸出結果寫入到一個檔案中,是以是标準輸出。如果使用-w選項指定捕獲檔案的話,将不會是标準輸出。此外,還可以使用Wireshark工具,以圖形界面分析捕獲到的包。