新聞中心
0x0 前言

目前成都創(chuàng)新互聯(lián)已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、梅河口網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Hacking Team 415G泄露資料的vector-exploit-master\src\ht-webkit-Android4-src目錄中,包含一份Android Browser exploit代碼。用戶在瀏覽器中點(diǎn)擊攻擊者的鏈接,便會執(zhí)行惡意代碼。惡意代碼利用漏洞獲取root權(quán)限,并靜默安裝木馬apk。影響Android4.0-4.3版本。
0x1 漏洞利用的藝術(shù)
Exploit代碼利用了三個已知的libxslt漏洞,獲得對內(nèi)存地址的完整控制能力。
1. information leak (CVE-2011-1202)。
2. Arbitrary memory read (CVE-2012-2825)
3. Heap-buffer-overflow (CVE-2012-2871)
關(guān)鍵流程:
0x2 利用分析
1. 申請330塊1M大小的內(nèi)存,并給每一塊內(nèi)存區(qū)域打上標(biāo)記(0x70747468,‘HTTP’)。
2. 進(jìn)行內(nèi)存搜索,利用CVE-2012-2825可以檢查任意內(nèi)存地址是否為0x70747468(’HTTP’)的能力,找出第一步的標(biāo)記內(nèi)存,得到標(biāo)記內(nèi)存所在的地址。這里查找內(nèi)存的時候涉及一個技術(shù)細(xì)節(jié)。
When parsing a XSLT stylesheet containing a DTD, a structure of type xmlEntity is accessed as another type. The value of cur->ns->href is then compared with a string (“http://www.w3.org/1999/XSL/Transform"). If not equal, return null.
將ns->href和ns->prefix的值改為addr,然后利用二分法在[0x7a703030, 0x79303030]這塊內(nèi)存空間遍歷addr,如果找到"http://www.w3.org/1999/XSL/Transform",會返回一個正確的documentElement。
由于這塊地址在第一步中已經(jīng)申請。這塊內(nèi)存我們知道地址并可以隨意使用,這一步很關(guān)鍵??煽刂频膬?nèi)存約4MB,稱為ZoneX。
3.精心修改ZoneX,利用CVE-2011-1202泄漏堆對象的地址和CVE-2012-2871寫特定內(nèi)存地址為特定值的能力,把ZoneX標(biāo)記為已釋放,但JS仍然有讀寫的能力。
這一過程相當(dāng)復(fù)雜,暫且跳過。
4. 立即申請大量新的ArrayBuffer覆蓋ZoneX,由于JS仍然有讀寫ZoneX的能力,可以馬上修改一塊符合條件的ArrayBuffer的起始地址為0x00000000,結(jié)束地址為0xFFFFFFFF,即整個內(nèi)存區(qū)域。
5. 利用BufferMemoryObject對象,封裝對內(nèi)存地址的操作,至此JS已經(jīng)得到整個RING3內(nèi)存的完整讀寫能力。
6. 下載小馬module.so
7. 結(jié)合CVE-2011-1202信息泄漏漏洞,獲得libwebcore.so的基址進(jìn)而獲得libc.so的基址。
然后在libc和libwebcore中搜索可用的gadget。
8. 操作內(nèi)存,覆蓋JS對象的虛表,構(gòu)造假的vtable完成兩個gadget的拼接。并使用ROP攻擊手法,通過mprotect給堆上的shellcode代碼執(zhí)行的權(quán)限,并將執(zhí)行流程跳轉(zhuǎn)到真正的shellcode。
9. shellcode中激活已經(jīng)下載好的小馬module.so;
10. 接下來小馬下載ROOT提權(quán)程序(exploit,ELF)獲取ROOT權(quán)限;并留下一個shell /system/bin/rilcap,過程和rcs完全一致。
用IDA打開小馬,發(fā)現(xiàn)其使用了Obfuscator-clang對代碼進(jìn)行了混淆。
所涉及的兩種root方法,第一種是put_user,另一種是towel。
11. 隨后,小馬在ROOT權(quán)限下靜默安裝黑客指定的木馬程序。ALL DONE。
0x4 總結(jié)
從三個POC到一套完整的遠(yuǎn)程代碼執(zhí)行exploit,是一個復(fù)雜而艱難的過程。Hacking Team 的exploit演繹相當(dāng)之精彩,不得不說是漏洞利用的藝術(shù)。從遠(yuǎn)程代碼執(zhí)行,到下載rcs遠(yuǎn)程控制客戶端,Hacking Team構(gòu)建了一條完整的黑色鏈條??赐曛?,各位看官會不會和小編一樣,背后嚇出了一身冷汗。Android Browser Exploit僅僅是Hacking Team泄漏資料中的一個項目,其中的技術(shù)點(diǎn)便相當(dāng)復(fù)雜。其所泄漏的項目,不僅包括源代碼,還包括大量工程化的工具以及技術(shù)文檔。僅需簡單地配置和修改即可自動化生成黑客工具,很容易被不法分子利用??上攵@將大大降低黑產(chǎn)的技術(shù)門檻。黑產(chǎn)水平將在短時間內(nèi)顯著提升。守護(hù)用戶安全之路將任重而道遠(yuǎn)。
(行文如有疏漏,敬請斧正)
本文題目:HackingTeamAndroidBrowserExploit代碼分析
標(biāo)題鏈接:http://m.fisionsoft.com.cn/article/djooied.html


咨詢
建站咨詢
