常見的端口掃描器有NMAP,ZMAP,superScan等,我們使用后各有千秋,ZMAP號稱44分鍾掃全球ip,那么有沒有比ZMAP更快的端口掃描器呢,今天我們來研究下masscan,這款掃描器號稱3分鍾掃完全球。
我在網上找不到編譯后的EXE,但是找到了源碼,源碼地址:https://github.com/robertdavidgraham/masscan,下載后看下目錄結構,如圖1
圖1
我們要在Windows上使用masscan,需要進入vs10目錄,vs10是vs2010編譯器,用vs2010打開vs10目錄下的masscan.sln,如圖2
編譯選項設置如圖3
生成的masscan.exe在.\bin目錄中。如圖4
將生成的masscan.exe發送到測試環境,提示如下錯誤,如圖5
這個錯誤是因為文件缺少,我在vs2010編譯環境查找這個文件並發送的到測試環境。這次成功運行masscan.exe ,如圖6
我們來掃一個網段試試183.136.230.12,命令如圖7
masscan -p80,7001183.136.230.12/16 --rage=10000
掃描器未能成功運行,提示Packet.dll:not found ,需要安裝winpcap插件,我們在nmap目錄下就能找到這個插件,或者在這個網址下載:https://www.winpcap.org/install/bin/WinPcap_4_1_3.exe。
安裝winpcap插件后,再次運行命令
masscan -p80,7001 183.136.230.12/16 --rage=10000
命令執行結果,如圖8
到這里masscan從源碼編譯到運行,就研究完了,最后試試把結果ip存為下面的格式,方便其它程序調用,
183.136.133.232
183.136.132.70
183.136.206.202
183.136.138.83
183.136.133.217
183.136.206.168
183.136.133.194
183.136.204.50
183.136.132.248
183.136.206.238
183.136.206.75
183.136.204.7
Masscan中-oX 選項可以保存掃描結果,保存的結果為一堆亂碼,如圖9
經過-oG,-oX測試,均未達到理想效果,我現在使用Delphi將xml格式的結果,整理為ip地址列表。Delphi的xml利用我不是太精通,試了半天,沒成功,改用正則表達式,測試成功了,Delphi的核心代碼為
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
strResult:string;
begin
Memo1.Lines.LoadFromFile('result.xml');
PerlRegEx1.Subject:=Memo1.Text;
PerlRegEx1.RegEx:='addr=\"(.*)?"\s+addrtype';
PerlRegEx1.Match;
while PerlRegEx1.MatchAgain do
begin
strResult:=PerlRegEx1.SubExpressions[1];
//showMessage(strResult);
Memo2.Lines.Add(strResult);
end;
Memo2.Lines.SaveToFile('result.txt');
end;
Delphi小工具的執行結果,如圖10
到這里就結束了,masscan的掃描速度真的是奇快。希望做滲透的同學們多研究下端口掃描器,達到事半功倍的效果。