網絡掃描:局域網網絡環境
在實施局域網掃描之前,需要對其網絡環境有所了解,如網絡范圍、經過的路由等,然后才可以確定掃描的目標。本文對局域網網絡環境進行簡單介紹。
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和子網掩碼對應列表,如表1所示。

表1 CIDR對照表
在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地址的點分十進制、十六進制、八進制、二進制之間的互相轉換。
使用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格式了。
使用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范圍轉換為子網掩碼格式了。
使用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格式了。
使用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選項,可以對指定的目標列表實施掃描。使用該工具的語法格式如下:
nmap -iL [inputfilename]
以上語法中的選項及參數含義如下:
-iL:從文件列表中讀取目標地址。該列表支持任何格式的地址,包括IP地址、主機名、CIDR、IPv6或者八位字節范圍,而且每一項必須以一個或多個空格、制表符或換行符分開。
inputfilename:地址列表文件名。
使用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 2021-07-03 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。
2. 上級網絡
在一個局域網內,用戶也可能會使用多個路由器進行串聯,以滿足擴大原有的網絡范圍,或者在原有的網絡下構建新的網絡(子網絡)。如果用戶連接的是最底層網絡的話,則可以通過路由跟蹤的方式掃描到上級網絡的路由。根據獲取的路由信息,可以猜測上級網絡的范圍大小。下面介紹實施路由跟蹤的方法。
(1)使用Nmap工具
Nmap工具提供了一個--traceroute選項,可以用來實現路由跟蹤。下面介紹使用Nmap工具實施路由跟蹤,以獲取上級網絡信息。
使用Nmap工具找出訪問百度服務器(www.baidu.com)所經過的網絡節點。執行命令如下:
root@daxueba:~# nmap --traceroute www.baidu.com
Starting Nmap 7.70 ( https://nmap.org ) at 2021-07-03 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工具實施路由跟蹤的語法格式如下:
traceroute [Target]
使用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等。
在NAT模式下,Traceroute運行存在問題,無法展現上一級的路由信息。