TCP空闲扫描
利用一些僵尸主机的端口
来判断IP ID
IP ID是累加的,所以只分析最后一个包就可以
理论过程:
攻击机向僵尸主机发送一个SYN包
僵尸主机会响应给攻击机一个RST包,其中rst包中存在IP ID值,IP ID 值是累加的
然后攻击机向目标服务器发送一个SYN包,SYN中的信息是僵尸主机的
服务器根据SYN包中的信息判断是僵尸主机的地址,响应RST包个给僵尸主机,其中也有一个 IP ID
我们在向僵尸主机发送SYN等待RST
判断RST中的IP ID 是否为第一次的值+2,是:服务器端口开放
否(IP ID =1):不开放
否(IP ID >2):僵尸主机不是空闲主机
使用msf中的模块
search ipidseq
利用这个模块来进行僵尸主机的探测
msf5 > use auxiliary/scanner/ip/ipidseq
msf5 auxiliary(scanner/ip/ipidseq) > show options
Module options (auxiliary/scanner/ip/ipidseq):
Name Current Setting Required Description
---- --------------- -------- -----------
INTERFACE no The name of the interface
RHOSTS yes The target address range or CIDR identifier
RPORT 80 yes The target port
SNAPLEN 65535 yes The number of bytes to capture
THREADS 1 yes The number of concurrent threads
TIMEOUT 500 yes The reply read timeout in milliseconds
msf5 auxiliary(scanner/ip/ipidseq) > set RHOSTS 10.5.65.0/24
RHOSTS => 10.5.65.0/24
msf5 auxiliary(scanner/ip/ipidseq) > set threads 2000
threads => 2000
msf5 auxiliary(scanner/ip/ipidseq) > run
[*] 10.5.65.100's IPID sequence class: Incremental!
[*] 10.5.65.105's IPID sequence class: Incremental!
发现我们有100和105可以使用
db_nmap -Pn -sI 10.5.65.100 www.baidu.com
我们扫描百度的主机,但是他的日志中不会有我们的ip,不会存在任何我们的记录
百度的端口经过处理
msf5 auxiliary(scanner/ip/ipidseq) > db_nmap -Pn -sI 10.5.65.105 www.baidu.com
[*] Nmap: Starting Nmap 7.70 ( https://nmap.org ) at 2019-07-25 10:51 CST
[*] Nmap: Idle scan using zombie 10.5.65.105 (10.5.65.105:80); Class: Incremental
[*] Nmap: Nmap scan report for www.baidu.com (61.135.169.125)
[*] Nmap: Host is up (0.20s latency).
[*] Nmap: Other addresses for www.baidu.com (not scanned): 61.135.169.121
[*] Nmap: All 1000 scanned ports on www.baidu.com (61.135.169.125) are closed|filtered
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 32.64 seconds