當前位置:
首頁 > 最新 > 基於Metasploit編寫終端檢測程序

基於Metasploit編寫終端檢測程序

2017年初的項目中,我發現某客戶單位的員工辦公終端未進行內/外網物理隔離,內網通過設置瀏覽器代理伺服器訪問公網,遂向客戶提出風險。但口說無憑,需證明此風險,故編寫此程序。此次風險說明與程序編寫,是在「永恆之藍/WannaCry」勒索軟體爆發前一周,雖然提出風險,但無法整改,客戶單位還是淪陷了。

其實當時想的蠻簡單的,利用Metasploit中的meterpreter/reverse_tcp讓終端反向連接客戶端即可,事實證明,代理伺服器不處理tcp連接,只轉發HTTP請求,此路不通。那就使用meterpreter/reverse_http吧,但Metasploit又不支持自動設置代理,最後的思路是,找到meterpreter/reverse_http源碼並更改,使其自動抓取瀏覽器代理地址並反向連接客戶端。

思路有了,然後就是選擇語言,理論上用彙編/C/C++會更好,但我不會。再加上我只是想證明此問題,並不是真要編寫木馬程序,所以選擇了Python,Payload最終選擇python/meterpreter/reverse_http。

相對於常用的msfconsole,msfvenom顯得陌生了許多,幫助信息如下:

支持的生成格式:

其中raw為原始格式,使用命令,結果如下:

將結果使用base64解碼後,可見伺服器端地址:

到此可以了解Metasploit總這塊大致的原理:遠程載入python代碼並執行,這樣一是可以減少客戶端的體積,二是可以更改攻擊行為。


Windows中的配置一般存儲在註冊表中,瀏覽器代理地址也不例外,註冊表鍵值為HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings:

其中ProxyEnable代表是否使用代理,ProxyServer為代理地址,抓取並使用代理的代碼如下:

使用urllib2的proxyhandler將所有http請求綁定到代理伺服器:

這樣,檢測程序的基本框架就完成了。


為了復用,添加兩個參數-i為服務端地址,-p為服務端埠:


由於客戶端要運行服務端源碼,需要將所有包全部引入:

使用pyinstaller打包py文件為exe文件:

配置服務端,當時我使用了日本的VPS,這裡使用了虛擬機:

客戶端執行驗證程序:

客戶端結果如下

至此,驗證程序編寫完畢。


這個程序我第一次嘗試編寫,未增加任何免殺策略,但是,查殺結果如下:

這次還有11個,去年的時候我記得是只有3個殺軟可以檢測出來。客戶公司員工辦公終端裝有某付費S開頭殺毒軟體,部分員工自主裝有360。

1.程序上傳時均未檢測為惡意軟體;

2.執行ls,cat,download命令時,均未進行攔截;

3.嘗試使用敏感命令net user /add,只有360進行攔截。

結論:對於原創的惡意程序,殺毒軟體還是要延後許多,360的「主動防禦」進程可以起到一定作用。還是不要使用來歷不明的程序了。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 瘋貓網路 的精彩文章:

Socks Proxy如何讓你更安全的瀏覽互聯網
揭秘Scarab勒索軟體新變種、新手段

TAG:瘋貓網路 |