0×00 導(dǎo)言
在本文中,我們會(huì)簡單介紹反向shell和CVE-2015-2509漏洞,最后詳細(xì)介紹該漏洞的方法,
反向shell和CVE20152509漏洞利用
。0×01 反向shell
所謂shell,大家并不陌生,無非就是一個(gè)命令行接口罷了。如果把它按平臺(tái)分類的話,基本上大體可以分為兩大類:針對(duì)web級(jí)別的和針對(duì)系統(tǒng)級(jí)別的。此外,按照連接方式,分為主動(dòng)連接和被動(dòng)連接,主動(dòng)連接是Bind Shell,被動(dòng)連接是Reverse Shell,也就是本文所說的反向shell,具體如后文所示。
下面我們來說說主動(dòng)連接和被動(dòng)連接的區(qū)別。Bind Shell是用戶用BSAH,將shell綁定到一個(gè)本地端口上,這樣任何人都可以在本地網(wǎng)絡(luò)中發(fā)送命令。反向shell的工作方式是遠(yuǎn)程計(jì)算機(jī)將自己的shell發(fā)送給特定的用戶,而不是將shell綁定到一個(gè)端口上。當(dāng)遠(yuǎn)程機(jī)器處在防火墻等其它東西后面時(shí),反向shell這種技術(shù)會(huì)變得非常有用。
許多時(shí)候,攻擊者入侵了一臺(tái)服務(wù)器后,他們會(huì)設(shè)置一個(gè)反向shell,將來他們就能通過這個(gè)shell輕松的訪問這臺(tái)遠(yuǎn)程計(jì)算機(jī)了,通俗的說,就是留了一個(gè)后門。
0×02CVE-2015-2509漏洞 該漏洞是在 Windows Media Center 中發(fā)現(xiàn)的,下面是引自微軟公司對(duì)該漏洞的介紹:
· 如果 Windows Media Center 打開經(jīng)特殊設(shè)計(jì)的引用惡意代碼的Media Center link (.mcl)文件此漏洞可能允許遠(yuǎn)程執(zhí)行代碼。成功利用此漏洞的攻擊者可以獲得與當(dāng)前用戶相同的用戶權(quán)限。與擁有管理用戶權(quán)限的客戶相比,帳戶被配置為擁有較少系統(tǒng)用戶權(quán)限的客戶受到的影響更小。· 如果 Windows Media Center 打開引用了惡意代碼的經(jīng)特殊設(shè)計(jì)的Media Center 鏈接 (.mcl)文件則此漏洞可能允許遠(yuǎn)程執(zhí)行代碼。成功利用此漏洞的攻擊者可以獲得與當(dāng)前用戶相同的用戶權(quán)限那帳戶被配置為擁有較少用戶權(quán)限的用戶比具有管理用戶權(quán)限的用戶受到的影響要小。· 要利用此漏洞,攻擊者必須誘使用戶在本地計(jì)算機(jī)上安裝 .mcl 文件。然后,可能從受攻擊者控制的位置執(zhí)行 .mcl 文件引用的惡意代碼。此安全更新通過更正處理 Media Center 鏈接文件的方式來修復(fù)該漏洞。
好了,下面開始我們介紹該漏洞的具體利用方法。
0×03 搭建漏洞利用環(huán)境下面是本文所要用到的一些必要工具:
• Virtualbox• Kali Linux,運(yùn)行于Virtualbox之中• Windows 7系統(tǒng),運(yùn)行于Virtualbox之中
需要注意的是,在連接Kali 和Windows 7的時(shí)候,連接方式應(yīng)該選擇“Host Only Adapter”。
0×04 測試漏洞若想測試該漏洞的話,只需要在Windows系統(tǒng)上打開記事本程序,然后輸入下列內(nèi)容:
然后,保存文件,注意,擴(kuò)展名應(yīng)該選擇.mcl,也就是說類型為Media Center link (.mcl)文件。
圖1:新建名為calc.mcl的文件
對(duì)于像作者這樣的懶人來說,還有一個(gè)更省勁的方法,就是到exploit-db下載一個(gè)相應(yīng)的Python腳本,然后運(yùn)行它就能得到這個(gè)POC文件了,
電腦資料
《反向shell和CVE20152509漏洞利用》(http://m.szmdbiao.com)。好了,下面我們聊一聊具體步驟。這個(gè)Python腳本的下載地址為: https://www.exploit-db.com/exploits/38151/
如果運(yùn)行這個(gè)文件的話,就會(huì)生成一個(gè)名為Music.mcl的文件,不過其內(nèi)容跟我們前面用記事本創(chuàng)建的文件是一樣一樣的。
圖2:利用python腳本創(chuàng)建Music.mcl文件
好了,現(xiàn)在我們來運(yùn)行這個(gè)文件,馬上會(huì)彈出一個(gè)計(jì)算器,具體如下圖所示。
圖3:運(yùn)行calc.mcl
0×05 彈出shell下面,我們介紹如何利用這個(gè)漏洞。根據(jù)微軟的說法,要利用此漏洞,攻擊者必須誘使用戶在本地計(jì)算機(jī)上安裝 .mcl 文件。然后,可能從受攻擊者控制的位置執(zhí)行 .mcl 文件引用的惡意代碼。
這是成功利用這個(gè)漏洞所需的具體步驟:
1. 攻擊者必須創(chuàng)建一個(gè)惡意的可執(zhí)行文件;2. 這個(gè)文件必須能夠通過UNC路徑供惡意mcl文件下載;3. 創(chuàng)建一個(gè)惡意的.mcl文件,然后將其發(fā)送給受害者;4. 建立一個(gè)偵聽程序;5. 當(dāng)受害者打開這個(gè).mcl文件時(shí),我們就會(huì)得到一個(gè)shell。
因此,首先要做的就是在我們的機(jī)器上創(chuàng)建一個(gè)惡意文件,并且使其能夠通過UNC路徑訪問,這樣的話,我們的惡意mcl文件才能下載它,并且在它被執(zhí)行時(shí)返回一個(gè)反向shell。
需要注意的是,為了創(chuàng)建返回反向shell的惡意可執(zhí)行文件,我們可以使用msfvenom的“windows/shell_reverse_tcp”有效荷載,它會(huì)偵聽443端口。
此外,我還在自己的機(jī)器上(用來發(fā)動(dòng)攻擊的那臺(tái))創(chuàng)建了一個(gè)SMB共享文件。
下面展示的是將要傳遞給受害者的exploit.mcl文件的最終版本。
我們需要設(shè)法將這個(gè)exploit.mcl投送到被害者手里,并想辦法讓他打開這個(gè)文件。
配置Netcat使其偵聽443端口,因?yàn)槲覀兊挠行Ш奢d使用的就是這個(gè)端口。
圖4:令Netcat偵聽443端口
完成上述工作后,打開exploit.mcl文件,如下圖所示。
圖5:運(yùn)行exploit.mcl文件
這樣的話,就會(huì)在我們的Windows系統(tǒng)上得到一個(gè)反向shell,如下圖所示。
圖6:得到的反向shell
我們得到的shell所具備的權(quán)限,完全等同于該登錄用戶所具備的權(quán)限,就本例而言,為Administrator權(quán)限。
除了Netcat之外,我們還可以使用任何其他偵聽程序,這就要看你們自己的喜好了。如果你喜歡Metasploit的話,則需要按下列步驟進(jìn)行操作。
圖7:利用Metasploit偵聽程序收到的反向shell
如果你不喜歡Netcat的明文通信方式,那么可以選擇使用ncat。
圖8:使用ncat偵聽程序收到的反向shell