zoukankan      html  css  js  c++  java
  • Windows下安装和使用Masscan

    http://zone.secevery.com/article/1098

    0x00 前言
    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
    如下图
    2-1.png

    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[DeviceNPF_{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
    如下图
    3-1.png


    扫描指定主机的特定端口:
    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/
  • 相关阅读:
    Javascript闭包(Closure)
    在Javascript中闭包(Closure)
    使用getInstance()方法的原因及作用
    PHPSTORM 常用快捷键
    .htaccess 文件来进行用户组的目录权限访问控制
    a链接中 JS弹出确认对话框方法
    PHP连接mysql数据库报错:Call to undefined function mysql_connect()
    jQuery基础之二
    jQuery基础之一
    jQuery之基础核心(demo)
  • 原文地址:https://www.cnblogs.com/aw4ke/p/11213730.html
Copyright © 2011-2022 走看看