转自:
https://www.jianshu.com/p/a6d21070a72d
背景:
近期有个需求就是扫描全网的80端口,并且把header头给出抽离出来。在网上搜罗一番,有以下选择:
nmap
居家旅行常用工具,支持多种协议,比较精准和易用,一般以下语句即可做一个比较完整的端口扫描:
nmap -p 80 115.28.0.0/16 -sS -n --randomize-hosts
zmap
13年曾以44分钟扫描完全部互联网,感觉安装的时候有一点点麻烦。
masscan
号称3分钟(更快)扫完全网端口,安装的时候按照教程来就行了,具体教程见如下附录的《主页》,但感觉莫名其妙有“Segmentation fault”,我已经补充到下述列表中。
https://github.com/robertdavidgraham/masscan/issues
安装方法:
根据github上的安装文档,只需要在linux 中复制以下语句即可
$ sudo apt-get install git gcc make libpcap-dev
$ git clone https://github.com/robertdavidgraham/masscan
$ cd masscan
$ make
试用体验:
场景一:普通试用
常用语句-扫描158.23.0.0这个网段,很快就有结果(比nmap快多了):
$nohup masscan -p80 115.28.0.0/16 --rate=100000
我们注意到zmap和masscan都有一个控制发包速率的参数,为什么需要这个参数呢?不是越高越好吗?不是的,这个参数的设置直接影响漏报。一般家用adsl的上行速度在100kb/s-300kb/s 之间,以互联网最小包60byte计算,100kb/s =1746 pps,也就是说每秒发送数据包约2000个,超出就容易丢包漏报。通过这个公式不难得出在一个家庭adsl环境下且保证准确度,用zmap扫描全部互联网需要255*255*255*255/2000/3600/24=24天。
场景二:扫描OpenSSL heartbeat
场景三:批量扫描FTP匿名
参考资料:
1、《Zmap详细用户手册和DDOS的可行性》 http://drops.wooyun.org/tools/515
2、《互联网扫描器 ZMap 完全手册》 https://linux.cn/article-5860-1.html
3、《masscan》的github官方首页 https://github.com/robertdavidgraham/masscan
4、APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库。