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