环境介绍
NAT模式:
- kali攻击方
- win7受害者
- Metasploitable受害者
工具简介
masscan号称是目前是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。 masscan的扫描结果类似于nmap,在内部,它更像scanrand, unicornscan, and ZMap,采用了异步传输的方式。它和这些扫描器最主要的区别是,它比这些扫描器更快。而且,masscan更加灵活,它允许自定义任意的地址范和端口范围。
参数很多,跟扫描相关的就是-p
,用来指定扫描的端口范围
masscan 192.168.239.130 -p1-600
数据包
前面介绍过nmap的SYN扫描,nc的TCP扫描,这里对比观察一下,避免引起误报
对比下面的数据包发现:
- 三者的首部长度是不一样的,可以以此为突破口
- masscan的特征体现在首部长度是20字节,没有tcp.option关键字,存在高并发行为(还是有可能触发别的误报,触发的话,再对比优化了)
nmap的SYN扫描
nc的TCP扫描
masscan的扫描
masscan 192.168.239.130 -p1-600
观察第2340、2344、2345三个数据包,发现masscan默认使用SYN扫描,当对方的80端口回应了之后,masscan就发送RST断开连接
对比masscan、nc、nmap的SYN扫描
1:masscan默认使用SYN扫描,一旦建立第二次握手之后,masscan就发送RST断开连接
见序号2340、2344、2345的数据包
2:nmap使用-sS
扫描时,与masscan一样,一旦建立第二次握手之后,nmap就发送RST断开连接
见序号是91、93、99的数据包
3:nc使用-nvz
扫描时,建立完整的三次握手之后,就发送Fin+Ack开始断开连接
见序号是5732~5737的数据包
规则
alert tcp any any -> any any (msg:"masscan 端口扫描"; flags:S; window:1024; dsize:0; detection_filter:track by_src,count 100,seconds 5; tcp.header_len:=20; metadata:service check-ports; sid:7; rev:1;)
由于snort不支持tcp.header_len
关键字,这里剔除这个关键字之后,snort可以正常告警