http://zone.secevery.com/article/1098

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,添加代码如下:

  1. #if defined(_MSC_VER) && (_MSC_VER == 1700)
  2. /*Visual Studio 2012*/
  3. # include <stdio.h>
  4. # include <string.h>
  5. # define strcasecmp _stricmp
  6. # define memcasecmp _memicmp
  7. # ifndef PRIu64
  8. # define PRIu64 "llu"
  9. # define PRId64 "lld"
  10. # define PRIx64 "llx"
  11. # 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[\Device\NPF_{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是默认格式)

  1. -oX <filespec> (XML)
  2. -oB <filespec> (Binary)
  3. -oG <filespec> (Grep)
  4. -oJ <filespec> (Json)
  5. -oL <filespec> (List)
  6. -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",多个目标可以用都好隔开

  1. -p <ports,--ports <ports>> 指定端口进行扫描
  2.  
  3. --banners 获取banner信息,支持少量的协议
  4.  
  5. --rate <packets-per-second> 指定发包的速率
  6.  
  7. -c <filename>, --conf <filename> 读取配置文件进行扫描
  8.  
  9. --echo 将当前的配置重定向到一个配置文件中
  10.  
  11. -e <ifname> , --adapter <ifname> 指定用来发包的网卡接口名称
  12.  
  13. --adapter-ip <ip-address> 指定发包的IP地址
  14.  
  15. --adapter-port <port> 指定发包的源端口
  16.  
  17. --adapter-mac <mac-address> 指定发包的源MAC地址
  18.  
  19. --router-mac <mac address> 指定网关的MAC地址
  20.  
  21. --exclude <ip/range> IP地址范围黑名单,防止masscan扫描
  22.  
  23. --excludefile <filename> 指定IP地址范围黑名单文件
  24.  
  25. --includefile,-iL <filename> 读取一个范围列表进行扫描
  26.  
  27. --ping 扫描应该包含ICMP回应请求
  28.  
  29. --append-output 以附加的形式输出到文件
  30.  
  31. --iflist 列出可用的网络接口,然后退出
  32.  
  33. --retries 发送重试的次数,以1秒为间隔
  34.  
  35. --nmap 打印与nmap兼容的相关信息
  36.  
  37. --http-user-agent <user-agent> 设置user-agent字段的值
  38.  
  39. --show [open,close] 告诉要显示的端口状态,默认是显示开放端口
  40.  
  41. --noshow [open,close] 禁用端口状态显示
  42.  
  43. --pcap <filename> 将接收到的数据包以libpcap格式存储
  44.  
  45. --regress 运行回归测试,测试扫描器是否正常运行
  46.  
  47. --ttl <num> 指定传出数据包的TTL值,默认为255
  48.  
  49. --wait <seconds> 指定发送完包之后的等待时间,默认为10
  50.  
  51. --offline 没有实际的发包,主要用来测试开销
  52.  
  53. -sL 不执行扫描,主要是生成一个随机地址列表
  54.  
  55. --readscan <binary-files> 读取从-oB生成的二进制文件,可以转化为XML或者JSON格式.
  56.  
  57. --connection-timeout <secs> 抓取banners时指定保持TCP连接的最大秒数,默认是30秒。

Nmap功能
Masscan可以像nmap许多安全人员一样工作。这里有一些其他类似nmap的选项:
通过传递–nmap开关可以看到类似nmap的功能。

  1. 1. -iL filename:从文件读取输入。
  2. 2. ‐‐exclude filename:在命令行中排除网络。
  3. 3. ‐‐excludefile:从文件中排除网络。
  4. 4. -S:欺骗源IP
  5. 5. -v interface:详细输出。
  6. 6. -vv interface:非常冗长的输出。
  7. 7. -e interface:使用指定的接口。
  8. 8. -e interface:使用指定的接口。

已经编译后的exe文件:

参考:
https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E5%B9%B3%E5%8F%B0%E8%BF%90%E8%A1%8CMasscan%E5%92%8CNmap/
https://www.freebuf.com/sectool/112583.html
https://danielmiessler.com/study/masscan/

Windows下安装和使用Masscan的更多相关文章

  1. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  2. Windows 下安装 MongoDB

    Windows 下安装 MongoDB 的步骤:1.官网www.mongodb.com下载安装包或zip包2.解压下载的文件到文件夹 D:\mongo .3.使用管理员权限打开CMD,导航到目录 D: ...

  3. Coreseek Windows下安装调试

    由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...

  4. 从零开始学 Java - Windows 下安装 Tomcat

    谁都想分一杯羹 没有一个人是真正的无私到伟大的,我们试着说着做自己,与人为善,世界和平!殊不知,他们的真实目的当你知道后,你会被恶心到直摇头并下意识地迅速跑开,下辈子都不想见到他.不过,他没错,你也没 ...

  5. 从零开始学 Java - Windows 下安装 JDK

    关于未来 "我要死在火星.在我死去的时候能够想着人类能有一个美好的未来--有可持续的能源,同时能够殖民其他的星球来避免人类灭绝的最坏可能." 官网下载 直接打开官网:http:// ...

  6. windows下安装nginx

    说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...

  7. Redhat/Ubuntu/Windows下安装Docker

    Redhat/Ubuntu/Windows下安装Docker 什么是Docker Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,基于Go语言并遵从 ...

  8. Windows下安装Redis

    1.首先,Redis官方是支持Linux系统的,我这里不多说,需要的可以参考:http://www.oschina.net/question/12_18065/ 2.Windows 64位下载地址:h ...

  9. 【转】linux和windows下安装python集成开发环境及其python包

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  10. windows下安装python模块

    如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...

随机推荐

  1. vue 解决循环引用组件/动态组件/组件未注册报错

    使用动态组件报错 Unknown custom element: - did you register the component correctly? For recursive component ...

  2. windows右键菜单扩展

    今天给大家分享一个我做的小工具,可以自定义扩展右键菜单的功能来提高工作效率,效果图如下: image 如上图,右键菜单多了几个我自定义的菜单 复制文件路径 复制文件夹路径 我的工具箱 <走配置文 ...

  3. 【Oculus Interaction SDK】(三)限制可操作物体的移动 / 旋转

    前言 这篇文章是[Oculus Interaction SDK]系列的一部分,如果发现有对不上的对方,可以回去翻看我之前发布的文章,或在评论区留言.如果文章的内容已经不适用于新版本了,也可以直接联系我 ...

  4. 亲测有效! Studio One 6 V6.0.1 音乐编曲工具 含win/mac版

    亲测有效! Studio One 6 V6.0.1 音乐编曲工具  含win/mac版 记录.生产.混合.掌握和执行所有操作.从工作室到舞台,Studio One6以易用为核心,是您的创意合作伙伴.当 ...

  5. 为什么sleeping的会话会造成阻塞

    背景 客户反映HIS数据库每天22点后都会发生阻塞,阻塞的源头是一个sleeping的会话,越阻塞越多,只能通过手动KILL掉才能解决,十分不解为什么状态为sleeping的会话会造成阻塞. 现象 在 ...

  6. day09-2-验证以及国际化

    验证以及国际化 1.概述 (1)概述 对于输入的数据(比如表单数据),进行必要的验证,并给出相应的提示信息 对于验证表单数据,SpringMVC 提供了很多使用的注解,这些注解由 JSR 303验证框 ...

  7. .net NPOI Excel导入:时间格式2022/5/26导入变成26-5月-2022

    1.问题由来 在做一个导入的需求时,测试导入模板,无论导入模板里的日期设置成何种日期格式到代码中都会提示有不正确的格式化数据,加断点调试发现,导入的日期如:Excel表格中是2022/5/26,断点看 ...

  8. StatisticalOutlierRemoval:离群点移除

    1.简介 StatisticalOutlierRemoval滤波器主要用于剔除离群点,或则测量误差导致的粗差点. 滤波思想为:对每一个点的邻域进行一个统计分析,计算它到所有临*点的*均距离.假设得到的 ...

  9. rt-thread模糊到清晰系列: timer.c

    #include <rtthread.h> #include <rthw.h> /* hard timer list */ static rt_list_t rt_timer_ ...

  10. Xlight安装与使用

    Xlight安装与使用 一.Xlight安装 下载Xlight安装包,点击安装,默认就可以,下一步 点击左上角增加虚拟服务器,IP地址为本机服务器IP地址 右键点击新添加的虚拟服务器,点击虚拟服务器操 ...