手动编译高速扫描器MasScan
常见的端口扫描器有NMAP,ZMAP,superScan等,我们使用后各有千秋,ZMAP号称44分钟扫全球ip,那么有没有比ZMAP更快的端口扫描器呢,今天我们来研究下masscan,这款扫描器号称3分钟扫完全球。
我在网上找不到编译后的EXE,但是找到了源码,源码地址:https://github.com/robertdavidgraham/masscan,下载后看下目录结构,如图1
图1
我们要在Windows上使用masscan,需要进入vs10目录,vs10是vs2010编译器,用vs2010打开vs10目录下的masscan.sln,如图2
图2
编译选项设置如图3
图3
生成的masscan.exe在.\bin目录中。如图4
图4
将生成的masscan.exe发送到测试环境,提示如下错误,如图5
图5
这个错误是因为文件缺少,我在vs2010编译环境查找这个文件并发送的到测试环境。这次成功运行masscan.exe ,如图6
图6
我们来扫一个网段试试183.136.230.12,命令如图7
masscan -p80,7001183.136.230.12/16 --rage=10000
图7
扫描器未能成功运行,提示Packet.dll:not found ,需要安装winpcap插件,我们在nmap目录下就能找到这个插件,或者在这个网址下载:https://www.winpcap.org/install/bin/WinPcap_4_1_3.exe。
安装winpcap插件后,再次运行命令
masscan -p80,7001 183.136.230.12/16 --rage=10000
命令执行结果,如图8
图8
到这里masscan从源码编译到运行,就研究完了,最后试试把结果ip存为下面的格式,方便其它程序调用,
183.136.133.232
183.136.132.70
183.136.206.202
183.136.138.83
183.136.133.217
183.136.206.168
183.136.133.194
183.136.204.50
183.136.132.248
183.136.206.238
183.136.206.75
183.136.204.7
Masscan中-oX 选项可以保存扫描结果,保存的结果为一堆乱码,如图9
图9
经过-oG,-oX测试,均未达到理想效果,我现在使用Delphi将xml格式的结果,整理为ip地址列表。Delphi的xml利用我不是太精通,试了半天,没成功,改用正则表达式,测试成功了,Delphi的核心代码为
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
strResult:string;
begin
Memo1.Lines.LoadFromFile('result.xml');
PerlRegEx1.Subject:=Memo1.Text;
PerlRegEx1.RegEx:='addr=\"(.*)?"\s+addrtype';
PerlRegEx1.Match;
while PerlRegEx1.MatchAgain do
begin
strResult:=PerlRegEx1.SubExpressions[1];
//showMessage(strResult);
Memo2.Lines.Add(strResult);
end;
Memo2.Lines.SaveToFile('result.txt');
end;
Delphi小工具的执行结果,如图10
图10
到这里就结束了,masscan的扫描速度真的是奇快。希望做渗透的同学们多研究下端口扫描器,达到事半功倍的效果。
手动编译高速扫描器MasScan的更多相关文章
- ffmpeg为视频添加时间戳 - 手动编译ffmpeg
FFMPEG给视频加时间戳水印 项目中需要给视频添加时间戳,理所当然最好用的办法是ffmpeg.在找到正确的做法前,还被网上的答案timecode给水了一下(水的不轻,在这里转了2天),大概是这样写的 ...
- SNMP高速扫描器braa
SNMP高速扫描器braa SNMP(Simple Network Monitoring Protocol,简单网络管理协议)是网络设备管理标准协议.为了便于设备管理,现在联入网络的智能设备都支持 ...
- Lua手动编译姿势
LUA-5.3.3.tar.gz Lua源码+链接2016年5月30日更新 手动编译姿势: 已经装有VS2010 使用VS自带的 cl.exe以及 VS命令簿 打开文件地址 运行自己的bat文件 my ...
- Sass中文乱码问题(手动编译和watch编译)
一.sass手动编译出错 .scss文件中含有中文的时候编译报错(比如注释,比如字体栈),比如: foo.scss: 编译: 解决办法: 找到类似这个的路径的文件(仅供参考,不同环境可能不同): C: ...
- CentOS手动编译安装gcc
最近尝试了fedora.ubuntu.mint.debian.opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯.现在CentOS的最新版本为 ...
- LNAMP服务器环境搭建(手动编译安装)
LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144. ...
- Javac 手动编译时,出现乱码或编码格式问题
使用Javac进行手动编译时,出现乱码或编码格式问题,原因如下:现象:编译时出现乱码或编译错误 即使改成UTF-8仍然会出错 原因如下:某些编辑器会往utf8文件中添加utf8标记(editplus称 ...
- linux 内核手动编译
手动编译内核 编译时后应安装的支持yum install perlyum install bcyum insatll gcc-c++ .uname -r 先查看内核版本 .yum groupinsta ...
- 手动编译Jsp文件
手动模拟Tomcat编译jsp文件 Tomcat编译jsp文件的配置路径是在%tomcat_home%/conf/web.xml中,有这样一段代码 <servlet> <servle ...
随机推荐
- C# 中的 #region 和 #endregion 的作用
C#中的 #region 和 #endregion 表示一块区域,这样在 Visual Studio 中可以将这块区域的代码折叠起来,便于查看. 虽然Visual Studio 也响应大括号的折叠,但 ...
- [python][django学习篇][14]markdown 代码高亮
1 修改detail视图函数,渲染文件的时候,增加codehight拓展 post.body = markdown.markdown(post.body, extensions=[ 'markdown ...
- Python之实现不同版本线程池
1.利用queue和threading模块可以实现多个版本的线程池,这里先贴上一个简单的 import queue import time import threading class ThreadP ...
- var和function定义方法的区别
在JS中有两种定义函数的方式,1是var aaa=function(){...}2是function aaa(){...}var 方式定义的函数,不能先调用函数,后声明,只能先声明函数,然后调用.fu ...
- Win右键管理员权限的获取
Windows Registry Editor Version 5.00 ;取得文件修改权限 [HKEY_CLASSES_ROOT\*\shell\runas] @="管理员权限" ...
- WMS请求GetCapabilities,变成下载mapserv.exe解决办法
WMS1.1.1和WMS1.3.0两个版本中的几个区别: 1.WMS1.1.1中提供的DescribeLayers.GetStyles等接口在WMS1.3.0中不再提供支持,只提供GetCapabil ...
- 0/1 knapsack problem
Problem statement Given n items with size Ai and value Vi, and a backpack with size m. What's the ma ...
- 【CF1073C】Vasya and Robot(二分,构造)
题意:给定长为n的机器人行走路线,每个字符代表上下左右走,可以更改将一些字符改成另外三个字符,定义花费为更改的下标max-min+1, 问从(0,0)走到(X,Y)的最小花费,无解输出-1 n< ...
- Java中的内存机制及管理
1. Java根据虚拟机以及平台的版本不同而在内存中开辟不同大小的内存,通常不会关注这个大小. 2. 程序中的对象存储在内存的堆(heap)中 3. 程序中的方法和局部变量存储在内存的栈(Stack) ...
- linux下的用户管理(一)
linux下有三类用户: 1.超级用户:root具有操作系统的一切权限,UID值为0的是超级用户 2.普通用户:只具有操作系统有限的权限,UID是从500到6000范围 3.伪用户:是为了方便系统管理 ...