黑客手中大杀器,号称最快扫描器

0x00 前言
Masscan号称最快的互联网端口扫描器,本文来探测一下Masscan在windows下的安装和使用 。
masscan的扫描结果类似于nmap,在内部,它更像scanrand, unicornscan, and ZMap,采用了异步传输的方式 。它和这些扫描器最主要的区别是,它比这些扫描器更快 。而且,masscan更加灵活,它允许自定义任意的地址范和端口范围 。
0x01 Windows下编译Masscan
Masscan需要经过编译才能生成exe文件在Windows下使用 。
Masscan下载地址:
https://github.com/robertdavidgraham/masscan/
编译工具:vs2012
编译选项中未添加vs2012的编译配置,所以直接编译会报错
解决方法:
在string_s.h中添加vs2012配置信息
位于misc-string_s.h,添加代码如下:
#if defined(_MSC_VER) && (_MSC_VER == 1700)
/*Visual Studio 2012*/
# include <stdio.h>
# include <string.h>
# define strcasecmp _stricmp
# define memcasecmp _memicmp
# ifndef PRIu64
# define PRIu64 "llu"
# define PRId64 "lld"
# define PRIx64 "llx"
# endif
编译成功,执行masscan.exe,提示Packet.dll: not found
如下图

黑客手中大杀器,号称最快扫描器

文章插图
 
Packet.dll获取方法:
安装WinPcap后在System32下获得
WinPcap下载地址:
https://www.winpcap.org/install/default.htm
在另一系统安装WinPcap,在System32下找到Packet.dll和Wpcap.dll,复制到测试系统下masscan.exe的同级目录,再次运行
程序正常启动,但是无法扫描,报错如下:
FAIL: Error opening adapter: 系统找不到指定的设备 。(20) adapter[DeviceNPF_{
71D19B82-0818-4685-A8E7-A6C7C812F2EA}].init: failed
0x02 安装WinPcap
官网下载安装即可 。
https://www.winpcap.org/install/default.htm
0x03 Masscan使用
扫描指定网段和端口:
masscan.exe -p80 192.168.81.1/24
找到一台开启80端口的服务器,回显如下:
Discovered open port 80/tcp on 192.168.81.143
扫描指定主机所有开放的端口:
masscan.exe -p0-65535 192.168.81.143
如下图
黑客手中大杀器,号称最快扫描器

文章插图
 
扫描指定主机的特定端口:
masscan.exe -p80,443 192.168.81.143
获取banner:
masscan.exe -p80,443,3306 192.168.81.143 --banners
通过配置文件启动扫描:
将配置信息保存在1.conf:
masscan.exe -p80,443,3306 192.168.81.143 --banners --echo>1.conf
读取配置信息1.conf,启动扫描:
masscan.exe -c 1.conf
修改扫描速度为100,000包/秒(Windos下最大为 300,000包/秒),默认100包/秒:
--rate 100000
扫描结果可以以不同的格式输出:(XML是默认格式)
-oX <filespec> (XML)
-oB <filespec> (Binary)
-oG <filespec> (Grep)
-oJ <filespec> (Json)
-oL <filespec> (List)
-oU <filespec> (Unicornscan format)
 
默认情况,masscan开启如下配置:
-sS: 半开放扫描,不完成完整的TCP/IP连接
-Pn: 跳过主机发现
-n: 跳过DNS解析
--randomize-hosts:随机化扫描
--send-eth:使用libpcap数据包传输详细参数
<ip/range> IP地址范围,有三种有效格式:1、单独的IPv4地址 2、类似"10.0.0.1-10.0.0.233"的范围地址 3、CIDR地址 类似于"0.0.0.0/0",多个目标可以用都好隔开
-p <ports,--ports <ports>> 指定端口进行扫描
 
--banners 获取banner信息,支持少量的协议
 
--rate <packets-per-second> 指定发包的速率
 
-c <filename>, --conf <filename> 读取配置文件进行扫描
 
--echo 将当前的配置重定向到一个配置文件中
 
-e <ifname> , --adapter <ifname> 指定用来发包的网卡接口名称
 
--adapter-ip <ip-address> 指定发包的IP地址
 
--adapter-port <port> 指定发包的源端口
 
--adapter-mac <mac-address> 指定发包的源MAC地址
 
--router-mac <mac address> 指定网关的MAC地址
 
--exclude <ip/range> IP地址范围黑名单,防止masscan扫描
 
--excludefile <filename> 指定IP地址范围黑名单文件
 
--includefile,-iL <filename> 读取一个范围列表进行扫描
 
--ping 扫描应该包含ICMP回应请求
 
--Append-output 以附加的形式输出到文件
 
--iflist 列出可用的网络接口,然后退出


推荐阅读