僵尸掃描
僵尸掃描是非常隱蔽的,而且實施的條件非常嚴格。如果要實施僵尸掃描,則必須先找到合適的僵尸機。其中,僵尸機必須符合以下兩個條件:
- 它需要是一個空閑主機,很少發送和接收數據包。
- 它的IPID必須是遞增的,0和隨機都不可以。現在大部分主流操作系統的PID都是隨機產生的,但是早期的Windows XP系統(如Windows 2000、Windows 2003)都是遞增的IPID。
1. 僵尸掃描的過程
如果要實施僵尸掃描,則需要對其工作流程有所了解。僵尸掃描的過程如下:
(1)掃描者主機對Zombie(僵尸機)發送SYN/ACK包,然后Zombie(假設此時系統產生的IPID為x)會返回主機一個RST,主機將會得到Zombie的IPID。
(2)掃描主機向目標機器發送一個SYN包。此時掃描主機會偽裝成Zombie的IP(即是x)向目標主機發送SYN包。
(3)如果目標的端口開放,便會向Zombie返回一個SYN/ACK包。但是Zombie機并沒有發送任何的包,Zombie會覺得莫名其妙,于是向目標主機發送一RST進行詢問。此時Zombie的IPID將會增加1(x+1)。如果目標主機的端口并未開放,那么目標主機也會向Zombie機發送一個RST包。但是Zombie收到RST包不會有任何反應,所以IPID不會改變(依舊是x)。
(4)掃描者主機再向Zombie發送一個SYN/ACK。同樣Zombie機會摸不著頭腦,然后再向掃描者主機發送一個RST包。此時,Zombie的IPID將變成(x+2)。
2. 實施僵尸掃描
在Nmap工具中,提供了一個-sI選項可以用來實施僵尸掃描。用來實施僵尸掃描的語法格式如下:
nmap -sI
這種高級的掃描方法允許對目標進行真正的TCP端口盲掃描。
在Nmap中提供了大量用于僵尸掃描的腳本序(如ipidseq.nes腳本)。所以我們可以通過調用這些腳本程序來判斷一個主機是否是一個合適的僵尸機。
使用Nmap實施僵尸掃描。具體步驟如下:
(1)使用Nmap掃描指定端口來判斷主機(192.168.1.5)是否是合適的僵尸機(zombie)。執行命令如下:
root@daxueba:~# nmap -p 445 192.168.1.5 --script=ipidseq.nse
Starting Nmap 7.70 ( https://nmap.org ) at 2021-09-03 18:09 CST
Nmap scan report for test-pc (192.168.1.5)
Host is up (0.00036s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:21:8C:96 (VMware)
Host script results:
|_ipidseq: Incremental!
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds
從輸出信息中可以看到,主機192.168.1.5的IPID是遞增的。所以,可以使用該主機作為僵尸機對目標實施掃描。
(2)實施僵尸掃描。執行命令如下:
root@daxueba:~# nmap 192.168.1.6 -sI 192.168.1.5 -Pn
Starting Nmap 7.70 ( https://nmap.org ) at 2021-09-03 18:10 CST
Idle scan using zombie 192.168.1.5 (192.168.1.5:80); Class: Incremental
Nmap scan report for 192.168.1.6 (192.168.1.6)
Host is up (0.051s latency).
Not shown: 977 closed|filtered ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
MAC Address: 00:0C:29:3E:84:91 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 20.92 seconds
從以上輸出信息中可以看到,通過Nmap,成功使用僵尸機192.168.1.5對目標主機實施了僵尸掃描。另外,從顯示結果中還可以看到目標主機上開放的所有端
口及對應的服務名。