Masscan

AffettoIris 2023-11-15 2,340 11/15

 

Masscan 是什么

TCP端口扫描程序,nmap同行。Masscan扫描速度比nmap快很多,因为它采用了异步传输、无状态扫描方式(异步传输意味着扫描器在发送探测数据包之后不必等待回复)。但Nmap扫描出的信息更全更准,而Masscan如果--rate过快,扫描出的开放端口会少很多

nmap需要记录tcp/ip的状态,而OS能处理的tcp/ip的最大链接数只有1500左右;masscan采用的是不建立完整的tcp链接方式,在收到SYN/ACK之后,直接发送RST结束链接(RST表示复位,用来结束关闭异常的链接)。

常用命令

常用选项--rate、-p。Masscan有多达几十个选项,但是用不着掌握。

  • masscan的默认发包速率是100每秒,可以通过 ‘–-rate’ 命令设置发包速率,受限于个人电脑与带宽,特别高的发包速率的情况下,存在一定的准确率误差--rate值推荐CPU数 * 5.例如我是8核CPU所以推荐--rate=40

    要根据自己电脑和带宽合理配置速率,速率太快了不准确。我用自己电脑时,--rate=200,扫21-520端口,只扫出一个开放端口,如果改为--rate=50,扫出4个开放端口。

  • masscan -p 0-65535 --rate=40 23.248.163.21 # 扫描端口

    masscan -p 1-100,443,600-900 --rate=40 23.248.163.21 # 扫描指定端口

    masscan -p 80 --rate=40 62.234.14.0/24 # 扫描一个网段即256个IP的80端口

  • -oJ <文件名> # 将输出格式设置为JSON并将输出保存在设置JSON格式的文件名。

其他命令

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

  • --packet-trace 打印发送和接收的数据包摘要,在低速率下使用(每秒几个数据包,否则会淹没终端数据)

  • --offline 实际不传输数据包,和“--packet-trace”配合可查看传输了哪些数据包

  • -sL 不执行扫描,主要是生成一个随机地址列表

  • --interactive 在控制台终端显示实时效果

  • --output-format <fmt> 指示输出文件的格式,可以是xml,二进制,grepable,列表或JSON。选项“--output-filename”必须指定。

  • --output-filename <filename> 将结果保存到的文件。如果“--output-format”未指定,则默认为xml。

  • -oB <文件名> 将输出格式设置为二进制并将输出保存在设置的文件名。

  • -oX <文件名> 将输出格式设置为XML并将输出保存在设定的xml文件名。 -oG <文件名> 将输出格式设置为grepable并将输出保存在设定的grepable格式文件名。

  • -oJ <文件名> 将输出格式设置为JSON并将输出保存在设置JSON格式的文件名。

  • -oL <文件名> 将输出格式设置为简单列表格式并保存以list列表输出的文件名。

  • --readscan <binary-files> 读取从-oB生成的二进制文件,可以转化为XML或者JSON格式.

  • --connection-timeout <secs> 抓取banners时指定保持TCP连接的最大秒数,默认是30秒。

 

- THE END -

AffettoIris

11月15日16:38

最后修改:2023年11月15日
2

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论