您当前的位置:首页 > 电脑百科 > 网络技术 > 网络安全

Masscan - 五分钟扫描整个互联网

时间:2020-08-11 10:01:45  来源:  作者:

端口扫描,是网络安全中非常常用的技术手段。通过对于特定的IP范围和端口范围进行穷举扫描,发现网络中开放的端口,从而为进一步的探查提供基本信息。端口扫描一般针对TCP端口进行,利用TCP的三次握手建立连接的原理,通过连接是否成功来判断端口是否开放。端口扫描对于时间性能要求较高,耗时过长的扫描将大大降低扫描结果的可靠性。Masscan,是一个互联网级别的高性能端口扫描工具,使用SYN包检测技术,号称能够在5分钟内完成对整个互联网所有的IP进行扫描。

Masscan - 五分钟扫描整个互联网

masscan - 互联网级别的端口扫描

简介

Masscan,是 robertdavidgraham 在 Github 上开源的端口扫描工具,项目代码位于 https://github.com/robertdavidgraham/masscan,目前版本为 1.0.5。

Masscan 性能优越,极限速度可以从单机每秒发送1000万个数据包。Masscan 使用了与另一个著名的扫描工具 —— nmap 类似的命令行参数,方便进行上手使用。

Masscan 针对 TCP 端口进行扫描,使用 SYN 扫描的方式,不建立一个完全的 TCP 连接,而是首先发送一个 SYN 数据包到目标端口,然后等待接收。如果接收到 SYN-ACK 包,则说明该端口是开放的,此时发送一个 RST 结束建立过程即可;否则,若目标返回 RST,则端口不开放。

Masscan - 五分钟扫描整个互联网

TCP三次握手

Masscan 在其内部使用异步传输,更为灵活,允许任意的IP和端口范围,并使用了随机化的目标扫描,使得对于非连续段IP的扫描更加高效,解决了范围切分带来的性能损失问题,且降低了对于目标网络的负载压力,提高了自由度和性能。

Masscan - 五分钟扫描整个互联网

Github项目

安装

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

在其他操作系统上,也可以进行相应的安装:

  • windows,Visual Studio:使用提供的 VS10 项目;
  • Windows,MingGW:使用 make 编译;
  • mac OS X,XCode,使用提供的 XCode4 项目;
  • Mac OS X,cmd:使用 make 编译;
  • FreeBSD:使用 gmake 编译

想要获得超过200万数据包/秒的超高扫描速度,需要使用 Intel 10-gbps 以太网适配器,以及 PF_RING ZC 驱动,编译时需要 libpfring.so,pf_ring.ko 和 ixgbe.ko。

示例

Masscan 的主体是一个命令行工具 masscan,可以指定IP网段和端口进行扫描:

masscan -p80,8000-8100 10.0.0.0/8

在这个命令中,指定对网段 10.0.0.0/8,也即是 10.x.x.x 共约1600万IP进行扫描,扫描它们的80端口,以及从8000到8100的端口,每个IP扫描102个端口。

Masscan 提供了echo选项,可以把当前命令的配置保存下来,然后在其他masscan命令直接引用:

# masscan -p80,8000-8100 10.0.0.0/8 --echo > xxx.conf
# masscan -c xxx.conf --rate 1000

在这里,把指定的网段和端口等的配置参数使用echo进行保存,随后使用-c命令导入,方便了对于复杂参数配置的重复使用。

Masscan 提供了进一步的应用信息识别,也称banner信息,可以识别在各端口上运行的服务的类型。可以使用--banners参数,并指定一个内网IP,来实现banner扫描:

masscan 10.0.0.0/8 -p80 --banners --source-ip 192.168.1.200

如果你哪一天心血来潮,想要对整个互联网,也即是所有IPv4的IP地址,以及所有65536个TCP端口进行扫描,masscan也是可以实现的:

masscan 0.0.0.0/0 -p0-65535

当然,这并没有太大的意义,可能会产生性能问题,对你本地的网络产生难以承受的负荷,也可能会使你的IP被加入到某些网络的黑名单中。我们可以使用参数--excludefile对某些我们不需要的网络进行排除:

masscan 0.0.0.0/0 -p0-65535 --excludefile exclude.txt

当然,对于如此大量的数据输出,你不会想让程序输出到命令行的。可以指定输出文件:

masscan 0.0.0.0/0 -p0-65535 -oX scan.xml

这里我们使用-oX参数把结果输出到XML文件,也可以使用其他的文件格式,支持的文件格式包括:xml、grepable、json、简单列表和二进制等。

默认情况下,masscan会把扫描速度限制在100数据包/秒,我们需要使用--max-rate指定一个更高的扫描速度:

masscan 0.0.0.0/0 -p0-65535 --max-rate 100000

如果你觉得命令行参数太麻烦了,也可以编写配置文件:

# My Scan
rate =  100000.00
output-format = xml
output-status = all
output-filename = scan.xml
ports = 0-65535
range = 0.0.0.0-255.255.255.255
excludefile = exclude.txt

使用-c参数引用执行:

masscan -c myscan.conf
Masscan - 五分钟扫描整个互联网

互联网扫描

总结

Masscan 作为一个端口扫描工具,具备优秀的性能,能够在短时间内对大量的IP和端口进行是否开放的扫描,使用简单,相比于NMAP等工具来说更容易上手,是网络安全领域的优秀工具。Masscan使用C语言编写,核心部分使用C90编写,包含了大量TCP协议相关,以及操作系统相关的底层代码,代码注释完善,十分详尽,结构清晰,是十分值得学习的C语言网络项目。



Tags:Masscan   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
端口扫描,是网络安全中非常常用的技术手段。通过对于特定的IP范围和端口范围进行穷举扫描,发现网络中开放的端口,从而为进一步的探查提供基本信息。端口扫描一般针对TCP端口进...【详细内容】
2020-08-11  Tags: Masscan  点击:(3717)  评论:(0)  加入收藏
▌简易百科推荐
一、背景介绍永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获...【详细内容】
2021-12-27  Kali与编程    Tags:勒索病毒   点击:(3)  评论:(0)  加入收藏
一、SQL注入漏洞SQL 注入攻击( SQL Injection ),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串...【详细内容】
2021-12-10  华清信安    Tags:Web漏洞   点击:(23)  评论:(0)  加入收藏
AD域是目前大型企业常用的内网管理方案,但随着近年来实网演习的常态化和不断深入,AD域安全越来越得到企业的重视。不论是在演练还是在真实的高级攻击场景中,在复盘中可以看出,大...【详细内容】
2021-10-27    中国信息安全  Tags:AD域   点击:(38)  评论:(0)  加入收藏
网友们,过去一年,您的网络安全段位提升了吗?需要更多的专属利器加持吗?今年我们又为您准备了丰富的网络安全知识大餐,助您驰骋网络,为网络安全护航!2021年10月11日至17日为“国家网...【详细内容】
2021-10-13    九派教育  Tags:网络安全   点击:(49)  评论:(0)  加入收藏
拓扑环境 Kali Linux(攻击机) Centos6.4(web服务器) win7(域成员主机无法上网) win2008R2(域控无法上网) 目的通过Kali Linux拿到域控权限2021最新整理网络安全\渗透测试/安全学习(全...【详细内容】
2021-09-17  KaliMa    Tags:内网渗透   点击:(84)  评论:(0)  加入收藏
前言这又是一个关于域内基础概念与原理的系列Active Directory 的查询基础语法BaseDNBaseDN 即基础可分辨名称,其指定了这棵树的根。比如指定 BaseDN 为DC=whoamianony,DC=or...【详细内容】
2021-09-06  KaliMa    Tags:内网渗透   点击:(46)  评论:(0)  加入收藏
堡垒机,听起来就是一个够酷的名字,有用户笑言,听着名儿就觉着安全,就像大块头施瓦辛格一出现在电影镜头里就像终结者一样。 那么,作为内网安全的"终结者",堡垒机究竟是个什么模样...【详细内容】
2021-08-26  IT技术管理那些事儿    Tags:堡垒机   点击:(76)  评论:(0)  加入收藏
1、VMware Workstation Pro 16: https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.1.0-17198959.exe VMware Workstation Pro 15【建议】 ht...【详细内容】
2021-08-25  Kali与编程    Tags:虚拟机软件   点击:(71)  评论:(0)  加入收藏
很多小伙伴都想入行网络安全,因为网络安全高薪,未来发展前景好,但是不知道网络安全学习路线是什么样的?网络安全学多久能找工作?我们就来梳理一下。 网络安全虽然好上手,入门难度...【详细内容】
2021-08-23  知了堂    Tags:网络安全   点击:(72)  评论:(0)  加入收藏
入侵一些网站,电脑,制作一些病毒,学会多项编程,这是一个普通黑客都会的技能,那么真正黑客能厉害到什么程度呢?除了勒索病毒,熊猫烧香等自动感染的病毒被大家熟知外,还有更厉害的骚操...【详细内容】
2021-08-19  IT技术管理那些事儿    Tags:漏洞   点击:(66)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条