Windows下安装和使用Masscan
http://zone.secevery.com/article/1098
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[\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是默认格式)
-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 列出可用的网络接口,然后退出 --retries 发送重试的次数,以1秒为间隔 --nmap 打印与nmap兼容的相关信息 --http-user-agent <user-agent> 设置user-agent字段的值 --show [open,close] 告诉要显示的端口状态,默认是显示开放端口 --noshow [open,close] 禁用端口状态显示 --pcap <filename> 将接收到的数据包以libpcap格式存储 --regress 运行回归测试,测试扫描器是否正常运行 --ttl <num> 指定传出数据包的TTL值,默认为255 --wait <seconds> 指定发送完包之后的等待时间,默认为10秒 --offline 没有实际的发包,主要用来测试开销 -sL 不执行扫描,主要是生成一个随机地址列表 --readscan <binary-files> 读取从-oB生成的二进制文件,可以转化为XML或者JSON格式. --connection-timeout <secs> 抓取banners时指定保持TCP连接的最大秒数,默认是30秒。
Nmap功能
Masscan可以像nmap许多安全人员一样工作。这里有一些其他类似nmap的选项:
通过传递–nmap开关可以看到类似nmap的功能。
1. -iL filename:从文件读取输入。
2. ‐‐exclude filename:在命令行中排除网络。
3. ‐‐excludefile:从文件中排除网络。
4. -S:欺骗源IP。
5. -v interface:详细输出。
6. -vv interface:非常冗长的输出。
7. -e interface:使用指定的接口。
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的更多相关文章
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- Windows 下安装 MongoDB
Windows 下安装 MongoDB 的步骤:1.官网www.mongodb.com下载安装包或zip包2.解压下载的文件到文件夹 D:\mongo .3.使用管理员权限打开CMD,导航到目录 D: ...
- Coreseek Windows下安装调试
由于项目需要全文检索,后面就去网上查了下资料,找到了Sphinx[中文是狮身人面像]这个全文检索引擎,听说挺好用的,不过没有中文分词.后面又去找了一下,找到了Coreseek,一款中文全文检索/搜索软 ...
- 从零开始学 Java - Windows 下安装 Tomcat
谁都想分一杯羹 没有一个人是真正的无私到伟大的,我们试着说着做自己,与人为善,世界和平!殊不知,他们的真实目的当你知道后,你会被恶心到直摇头并下意识地迅速跑开,下辈子都不想见到他.不过,他没错,你也没 ...
- 从零开始学 Java - Windows 下安装 JDK
关于未来 "我要死在火星.在我死去的时候能够想着人类能有一个美好的未来--有可持续的能源,同时能够殖民其他的星球来避免人类灭绝的最坏可能." 官网下载 直接打开官网:http:// ...
- windows下安装nginx
说起开发,自己感到非常惭愧,由于公司让我给<绿电侠>项目写整体架构解决方案,才开始接触nginx这个东东,突然觉得它是一把非常好的利器. 本文主要记录在windows下安装nginx,另参 ...
- Redhat/Ubuntu/Windows下安装Docker
Redhat/Ubuntu/Windows下安装Docker 什么是Docker Docker是Docker.inc公司开源的一个基于LXC技术之上构建的Container容器引擎,基于Go语言并遵从 ...
- Windows下安装Redis
1.首先,Redis官方是支持Linux系统的,我这里不多说,需要的可以参考:http://www.oschina.net/question/12_18065/ 2.Windows 64位下载地址:h ...
- 【转】linux和windows下安装python集成开发环境及其python包
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
随机推荐
- 超级容易理解的函数节流(throttle)
今天搞了一个简单的写法 话不多说,直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- drf-day7——认证组件、权限组件、频率组件、过滤排序、分页
目录 一.认证组件 1.1 登录接口 1.2 认证组件使用步骤 1.3 整体代码 1.4认证时cookie的获取方式 二.权限组件 2.1需求分析: 2.2 权限的使用 2.3代码 三.频率组件 3. ...
- chatGPT vscode 体验
体验秘钥 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 多人用可能有点卡,重在体验. 自己(中国)想注册账号如下 步骤一:找到入口 搜索Ope ...
- python基本数据类型与内置方法
1.数据类型内置方法理论 1.每一种数据类型本身都含有一系列的操作方法,内置方法是其本身自带的功能,是其中最多的. 2.python中数据类型调用的内置方法的统一句式为>>>:句点符 ...
- 一个关于DOM的小小思考
在学习过程中碰见这样一个方法(原生JavaScript可使用的方法): document.querySelector('div').innerHTML=` <h2>编号:${resp.id ...
- Vue06 数据绑定
1 Vue模板语法 Vue模板语法分为两大类,插值语法和指令语法 1.1 插值语法 1)功能:用于解析标签体内容 2)写法:{{xxx}} xxx是js表达式,且可以直接读取到vue实例里面的属性 3 ...
- Mybatis的逆向工程与延迟加载
Mybatis 的逆向工程 Mybatis是一个半自动化的ORM框架,SQL语句需要要开发者自己定义,SQL定义在Mapper.xml中,与对应的Mapper接口对应 实体类 接口 Mapper.xm ...
- selenium结合tenacity的retry实现验证码失败重试
说在前面 验证码登录的demo后续可以单独讲解,VIP学员对这部分应该都是掌握的,此处不再赘述 本文假设了一个场景 你通过OCR识别的验证码是有一定的错误几率的 本文是通过识别后的验证码去加一个随机字 ...
- 详解神经网络基础部件BN层
摘要:在深度神经网络训练的过程中,由于网络中参数变化而引起网络中间层数据分布发生变化的这一过程被称为内部协变量偏移(Internal Covariate Shift),而 BN 可以解决这个问题. 本 ...
- 利用canvas+js完成滑块验证码中canvas部分思路
1. 最终效果 2.滑块验证码思路 大概思路:设置两个画布,一个为显示图像的canvas画布,一个为拼图的block画布,block画布拼图内容从图像画布中的一部分裁剪得到(使用clip()),通过绑 ...