信息收集之主机发现:masscan

  • A+
所属分类:安全工具

信息收集之主机发现:masscan


信息收集之主机发现:nmap


Masscan号称是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。

https://github.com/robertdavidgraham/masscan

安装masscan

在 Debian/Ubuntu 上编译 masscan:

$ sudo apt-get install git gcc make libpcap-dev
$ git clone https://github.com/robertdavidgraham/masscan
$ cd masscan
$ make
$ cp bin/masscan /bin/

masscan

通过 masscan -h 可以看到 masscan的具体用法,其中 masscan与上文讲到的nmap是部分兼容的,通过masscan --nmap方式,列举出兼容的参数,可以与nmap无缝衔接。

usage:
masscan -p80,8000-8100 10.0.0.0/8 --rate=10000
 scan some web ports on 10.x.x.x at 10kpps
masscan --nmap
 list those options that are compatible with nmap
masscan -p80 10.0.0.0/8 --banners -oB <filename>
 save results of scan in binary format to <filename>
masscan --open --banners --readscan <filename> -oX <savefile>
 read binary scan results in <filename> and save them as xml in <savefile>

masscan相对于nmap没有这么大而全,但是依然是比较流行的端口扫描工具。它比nmap这些扫描器更快,而且masscan更加灵活,它允许自定义任意的地址范围和端口范围。

masscan的发包速度非常快,在windows中,它的发包速度可以达到每秒30万包;在Linux中,速度可以达到每秒160万。masscan在扫描时会随机选择目标IP,所以不会对远程的主机造成压力。默认情况下,masscan的发包速度为每秒100包,为了提高速度,可以设置为 --rate 100000

详细参数

与nmap兼容的参数不再赘述,接下来讲解一下masscan独有的使用方法。

  • 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秒。

示例

1.扫描指定网段范围的指定端口
使用方法类似于nmap,扫描指定网段范围的指定端口

masscan -p80,8080-8100 10.0.0.0/8

这条命令将完成如下工作:

  • 扫描10.x.x.x子网,大约有1600万个地址

  • 扫描端口80和8000-8100范围的端口段

  • 打印结果到标准输出,也可以重定向到一个文件

可以使用 --echo 将当前的配置输出到一个配置文件,利用 -c 来制定配置文件进行扫描:

masscan -p80,8000-8100 10.0.0.0/8 --echo > scan.conf

masscan -c scan.conf --rate 1000

2.获取Banner

masscan不仅仅只是测试端口是否开放,它还能在完成TCP连接的同时获取目标应用程序的Banner信息。

masscan 10.0.0.0/8 -p80 --banners --source-ip x.x.x.x

含义是扫描10.x.x.x网段80端口的开放信息,并且获取banner信息。--source-ip 是指定源IP,这个ip必须指定独立有效的IP地址。

3.全网扫描 (轻易不要玩,容易被请去喝茶)

可以对整个互联网发起扫描,使用的命令如下

masscan 0.0.0.0/0 -p0-65535

我们可以通过设置--excludefile做为黑名单,来让扫描器扫描时忽略一些网段,并将扫描的结果输出到指定文件中。语法如下:

masscan 0.0.0.0/0 -p0-65535 --excludefile exclude.txt -oX scan.xml

扫描器使用的是默认的速率100包/秒,如果是扫描全网的话,需要提高速度。这条命令将以每秒10万包的速率进行扫描:

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

如果不想输入命令,可以通过创建配置文件,然后用加载配置文件的方式运行。配置文件的内容如下所示:

rate = 100000
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会生成相当大的文本文件,但是很容易将它们转换为任何其他格式。支持五种输出格式:

  • xml:只需使用参数-oX。或者,使用参数--output-format xml和--output-filename <filename>

  • 二进制:这是masscan内置格式。它产生的文件要小得多,因此,当我扫描Internet时,磁盘不会填满。但是,它们需要解析。命令行选项--readscan将读取二进制扫描文件。--readscan与该-oX选项一起使用将生成结果文件的XML版本。

  • grepable:这是Nmap -oG输出的实现,可以通过命令行工具轻松地对其进行解析。只需使用参数-oG。或者,使用参数--output-format grepable和 --output-filename <filename>

  • json:这会将结果保存为JSON格式。只需使用参数-oJ。或者,使用参数--output-format json和 --output-filename <filename>

  • list:这是一个简单的列表,每行一个主机和端口对。只需使用参数-oL。或者,使用参数 --output-format list和--output-filename <filename>。格式为:

<port state> <protocol> <port number> <IP address> <POSIX timestamp>  
open tcp 80 XXX.XXX.XXX.XXX 1390380064



最后

最近有朋友说在后台和七夜交流技术不是很方便,下面是七夜的微信号,想进行技术交流的可以加他,备注公众号,卖货的,伸手党不要加,谢谢。

信息收集之主机发现:masscan

推荐阅读

从沙盒逃逸看Python黑科技(下篇)

从沙盒逃逸看Python黑科技(上篇)

不一样的 "反弹Shell" 系统剖析

HW : Cobalt Strike 应该这样学

WebShell通用免杀的思考

WebShell "干掉" RASP

无文件执行:一切皆是shellcode (中)

无文件执行:一切皆是shellcode (上)

linux无文件执行— fexecve 揭秘

沙盒syscall监控组件:strace and wtrace

无"命令"反弹shell-逃逸基于execve的命令监控(上)

APT组织武器:MuddyC3泄露代码分析

Python RASP 工程化:一次入侵的思考



如果大家喜欢这篇文章的话,请不要吝啬分享到朋友圈,并置顶公众号。

关注公众号:七夜安全博客

回复【11】:领取Sandboxie源码

信息收集之主机发现:masscan

  • 回复【1】:领取 Python数据分析 教程大礼包

  • 回复【2】:领取 Python Flask 全套教程

  • 回复【3】:领取 某学院 机器学习 教程

  • 回复【4】:领取 爬虫 教程

  • 回复【5】:领取编译原理 教程

  • 回复【6】:领取渗透测试教程

  • 回复【7】:领取人工智能数学基础

  • 回复【8】:领取 python神经网络 教程 

  • 回复【9】:领取 安卓逆向 教程  


喜欢
分享
or

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: