Masscan:快的互联网IP端口扫描器
作者:danfengcao 发布时间:[ 2016/12/23 15:24:17 ] 推荐标签:Masscan 软件测试
Masscan号称是快的互联网端口扫描器,快可以在六分钟内扫遍互联网。
masscan的扫描结果类似于nmap(一个很的端口扫描器),在内部,它更像scanrand, unicornscan, and ZMap,采用了异步传输的方式。它和这些扫描器主要的区别是,它比这些扫描器更快。而且,masscan更加灵活,它允许自定义任意的地址范和端口范围。
安装配置
在Debian/Ubuntu系统中,安装方法如下:
$ sudo apt-get install git gcc make libpcap-dev
$ git clone https://github.com/robertdavidgraham/masscan
$ cd masscan
$ make
注:安装完成后的可执行程序在masscan/bin中
您也可以使用多线程加快编译速度 make -j
PF_RING
如果您想获得超过两百万每秒的速度,您需要一个英特尔10-Gbps网卡和一个被称为PF_RING DNA( http://www.ntop.org/products/pf_ring/ )的特殊驱动程序。masscan使用PF_RING不要进行重建,你只需要建立以下组件即可:
libpfring.so (安装于 /usr/ lib/libpfring.so)
pf_ring.ko (pf_ring自己的内核驱动)
ixgbe.ko (英特尔 10 -gbps网卡驱动)
你不要建立自己的libpcap.so
当masscan检测到网卡为dna0时,将自动切换为PF_RING模式
自我测试
当安装完成是可以测试一下是否安装成功:
$ make regress
bin/masscan --regress
selftest: success!
使用方法
使用方法类似于nmap,扫描指定网段范围的指定端口
# masscan -p80,8080-8100 10.0.0.0/8
这条命令将完成如下工作:
1、扫描10.x.x.x子网,大约有1600万个地址
2、扫描端口80和8000-8100范围的端口段
3、打印结果到标准输出,也可以重定向到一个文件
也可以 –echo 将当前的配置输出到一个配置文件,利用 -c 来制定配置文件进行扫描
# masscan -p80,8000-8100 10.0.0.0/8 --echo > xxx.conf
# masscan -c xxx.conf --rate 1000
Banner获取
masscan不仅仅只是测试端口是否开放,它还能在完成TCP连接的同时获取目标应用程序的Banner信息。
# masscan 10.0.0.0/8 -p80 --banners --source-ip x.x.x.x
这条命令的意思是扫描10.x.x.x网段80端口的开放信息,并且获取banner信息。–source-ip 是指定源IP,这个ip必须指定独立有效的IP地址。
您可以通过配置防火墙来防止masscan的返回不了信息的情况
Linux可以在这样配置
# iptables -A INPUT -p tcp --dport 60000 -j DROP
# masscan 10.0.0.0/8 -p80 --banners --source-port 60000
MAC OS X和BSD可以这样配置
# sudo ipfw add 1 deny tcp from any to any 60000 in
# masscan 10.0.0.0/8 -p80 --banners --source-port 60000
您也可以检查其他类型的信息,例如心脏出血漏洞 –heartbleed,方法和获取banner是一样的
扫描全网
您可以对整个互联网发起扫描,使用的命令如下
# masscan 0.0.0.0/0 -p0-65535
有时候对这个互联网扫描可能会对你造成一些麻烦,你可能会被请去喝茶。所以,我们可以通过设置黑名单来让扫描器扫描时忽略一些网段。语法如下:
# masscan 0.0.0.0/0 -p0-65535 --excludefile exclude.txt
你也可以把扫描的结果不输出到命令行,输出到指定文件中
# masscan 0.0.0.0/0 -p0-65535 -oX scan.xml
这条命令把扫描的结果保存在一个XML文件中
当前的扫描器使用的是默认的速率100包/秒,如果是扫描全网的话,需要提高速度。
# masscan 0.0.0.0/0 -p0-65535 --max-rate 100000
这条命令将以每秒10万包的速率进行扫描
上述的这些命令可能输入起来有点麻烦,我们可以通过创建配置文件,然后用加载配置文件的方式运行。配置文件的内容如下所示:
rate = 100000
output-format = xxx
output-status = all
output-filename = xxx.xxx
ports = 0-65535
range = 0.0.0.0-255.255.255.255
excludefile = exclude.txt
扫描时,用 -c 加载配置文件,这样的话,你进行重复扫描会省很多的力气。
结果输出
主要有5种输出的格式
XML 默认格式 使用-oX <filename> 或者使用 –output-format xml 和 –output-filename <filename>进行指定
binary masscan内置格式
grepable nmap格式 使用 -oG <filename> 或者 –output-format grepable 和 –output-filename <filename>进行指定
json 使用 -oJ <filename> 或者 –output-format json 和 –output-filename <filename>进行指定
list 简单的列表,每行一个主机端口对。使用-oL <filename> 或者 –output-format list 和 –output-filename <filename>进行指定
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11