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
如下圖
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[\\Device\\NPF_{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
如下圖
掃描指定主機的特定端口:
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)/<filespec>
-oB <filespec> (Binary)/<filespec>
-oG <filespec> (Grep)/<filespec>
-oJ <filespec> (Json)/<filespec>
-oL <filespec> (List)/<filespec>
-oU <filespec> (Unicornscan format)/<filespec>
默認情況,masscan開啟如下配置:
-sS: 半開放掃描,不完成完整的TCP/IP連接
-Pn: 跳過主機發現
-n: 跳過DNS解析
--randomize-hosts:隨機化掃描
--send-eth:使用libpcap數據包傳輸詳細參數
-p <ports>> 指定端口進行掃描/<ports>
--banners 獲取banner信息,支持少量的協議
--rate <packets-per-second> 指定發包的速率/<packets-per-second>
-c <filename>, --conf <filename> 讀取配置文件進行掃描/<filename>/<filename>
--echo 將當前的配置重定向到一個配置文件中
-e <ifname> , --adapter <ifname> 指定用來發包的網卡接口名稱/<ifname>/<ifname>
--adapter-ip <ip-address> 指定發包的IP地址/<ip-address>
--adapter-port <port> 指定發包的源端口/<port>
--adapter-mac <mac-address> 指定發包的源MAC地址/<mac-address>
--router-mac
--exclude
--excludefile <filename> 指定IP地址範圍黑名單文件/<filename>
--includefile,-iL <filename> 讀取一個範圍列表進行掃描/<filename>
--ping 掃描應該包含ICMP回應請求
--append-output 以附加的形式輸出到文件
--iflist 列出可用的網絡接口,然後退出
--retries 發送重試的次數,以1秒為間隔
--nmap 打印與nmap兼容的相關信息
--http-user-agent <user-agent> 設置user-agent字段的值/<user-agent>
--show [open,close] 告訴要顯示的端口狀態,默認是顯示開放端口
--noshow [open,close] 禁用端口狀態顯示
--pcap <filename> 將接收到的數據包以libpcap格式存儲/<filename>
--regress 運行迴歸測試,測試掃描器是否正常運行
--ttl
--wait <seconds> 指定發送完包之後的等待時間,默認為10秒/<seconds>
--offline 沒有實際的發包,主要用來測試開銷
-sL 不執行掃描,主要是生成一個隨機地址列表
--readscan <binary-files> 讀取從-oB生成的二進制文件,可以轉化為XML或者JSON格式./<binary-files>
--connection-timeout <secs> 抓取banners時指定保持TCP連接的最大秒數,默認是30秒。/<secs>
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文件:
- masscan.zip
上述內容不知道大家學習到了嗎?網絡世界的安全漏洞每天都會出現,安全知識和安全意識每個公民都應該瞭解和學習,有想學習網絡安全技能的小夥伴可以隨時私信我哦!
閱讀更多 安界 的文章