關(guān)了服務(wù)器就結(jié)束? XcodeGhost截胡攻擊和服務(wù)端的復(fù)現(xiàn)
0x00 序
截胡,麻將術(shù)語,指的是某一位玩家打出一張牌后,此時(shí)如果多人要胡這張牌,那么按照逆時(shí)針順序只有最近的人算胡,其他的不能算胡?,F(xiàn)也引申意為斷別人財(cái)路,在別人快成功的時(shí)候搶走了別人的勝利果實(shí)。
雖然XcodeGhost作者的服務(wù)器關(guān)閉了,但是受感染的app的行為還在,這些app依然孜孜不倦的向服務(wù)器(比如init.icloud-analysis.com,init.icloud-diagnostics.com等)發(fā)送著請(qǐng)求。這時(shí)候黑客只要使用DNS劫持或者污染技術(shù),聲稱自己的服務(wù)器就是”init.icloud-analysis.com”,就可以成功的控制這些受感染的app。具體能干什么能,請(qǐng)看我們的詳細(xì)分析。
另外,有證據(jù)表明unity 4.6.4 – unity 5.1.1的開發(fā)工具也受到了污染,并且行為與XcodeGhost一致,更恐怖的是,還有證據(jù)證明XcodeGhost作者依然逍遙法外,具體內(nèi)容請(qǐng)查看第三節(jié)。
PS:雖然涅槃團(tuán)隊(duì)已經(jīng)發(fā)出過攻擊的demo了2,但很多細(xì)節(jié)并沒有公布。所以我們打算在這篇文章中給出更加詳細(xì)的分析過程供大家參考。
0x01通信協(xié)議分析
在受感染的客戶端App代碼中,有個(gè)Response方法用于接收和處理遠(yuǎn)程服務(wù)器指令。

Response方法中根據(jù)服務(wù)器下發(fā)的不同數(shù)據(jù),解析成不同的命令執(zhí)行,根據(jù)我們分析,此樣本大致支持4種遠(yuǎn)程命令,分別是:設(shè)置sleep時(shí)長、窗口消息、url scheme、appStore窗口。
通過4種遠(yuǎn)程命令的單獨(dú)或組合使用可以產(chǎn)生多種攻擊方式:比如下載安裝企業(yè)證書的App;彈AppStore的應(yīng)用進(jìn)行應(yīng)用推廣;彈釣魚頁面進(jìn)一步竊取用戶信息;如果用戶手機(jī)中存在某url scheme漏洞,還可以進(jìn)行url scheme攻擊等。

其通信協(xié)議是基于http協(xié)議的,在傳輸前用DES算法加密http body。Response方法拿到服務(wù)器下發(fā)送的數(shù)據(jù)后,調(diào)用Decrypt方法進(jìn)行解密:

如果解密成功,將解密后的數(shù)據(jù)轉(zhuǎn)換成JSON格式數(shù)據(jù):

然后判斷服務(wù)器端下發(fā)的數(shù)據(jù),執(zhí)行不同的操作。如下面截圖是設(shè)置客戶端請(qǐng)求服務(wù)端器sleep時(shí)長的操作:

0x2惡意行為分析及還原
在逆向了該樣本的遠(yuǎn)程控制代碼后,我們還原了其服務(wù)端代碼,進(jìn)一步分析其潛在的危害。
首先我們?cè)诜?wù)端可以打印出Request的數(shù)據(jù),如下圖:

紅色框標(biāo)記的協(xié)議的頭部部分,前4字節(jié)為報(bào)文長度,第二個(gè)2字節(jié)為命令長度,最后一個(gè)2字節(jié)為版本信息,緊跟著頭部的為DES的加密數(shù)據(jù)。我們?cè)诜?wù)端將數(shù)據(jù)解密后顯示為:

這里有收集客戶端信息上傳到控制服務(wù)器。
同樣我們返回加密數(shù)據(jù)給客戶端:

明文信息為:

客戶端根據(jù)App的運(yùn)行狀態(tài)向服務(wù)端提供用戶信息,然后控制服務(wù)器根據(jù)不同的狀態(tài)返回控制數(shù)據(jù):

惡意行為一 定向在客戶端彈(詐騙)消息
該樣本先判斷服務(wù)端下發(fā)的數(shù)據(jù),如果同時(shí)在在“alertHeader”、“alertBody”、“appID”、“cancelTitle”、“confirmTitle”、“scheme”字段,則調(diào)用UIAlertView在客戶端彈框顯示消息窗口:

消息的標(biāo)題、內(nèi)容由服務(wù)端控制

客戶端啟動(dòng)受感染的App后,彈出如下頁面:

惡意行為二 下載企業(yè)證書簽名的App
當(dāng)服務(wù)端下發(fā)的數(shù)據(jù)同時(shí)包含“configUrl”、“scheme”字段時(shí),客戶端調(diào)用Show()方法,Show()方法中調(diào)用UIApplication.openURL()方法訪問configUrl:

通過在服務(wù)端配置configUrl,達(dá)到下載安裝企業(yè)證書App的目的:

客戶端啟動(dòng)受感染的App后,目標(biāo)App將被安裝:


demo地址:http://v.youku.com/v_show/id_XMTM0MTQyMzM1Ng==.html
惡意行為三 推送釣魚頁面
通過在服務(wù)端配置configUrl,達(dá)到推送釣魚頁面的目的:

客戶端啟動(dòng)受感染的App后,釣魚頁面被顯示:

demo地址:http://v.youku.com/v_show/id_XMTM0MTQyMjkyOA==.html
惡意行為四 推廣AppStore中的應(yīng)用
通過在服務(wù)端配置configUrl,達(dá)到推廣AppStore中的某些應(yīng)用的目的:

phishing1.html頁面內(nèi)容:

客戶端啟動(dòng)受感染的App后,自動(dòng)啟動(dòng)AppStore,并顯示目標(biāo)App的下載頁面:

demo地址:http://v.youku.com/v_show/id_XMTM0MTQyNTk0MA==.html
0x03 UnityGhost?
在大家以為一切都完結(jié)的時(shí)候,百度安全實(shí)驗(yàn)室稱已經(jīng)確認(rèn)”Unity-4.X的感染樣本”。并且邏輯行為和XcodeGhost一致,只是上線域名變成了init.icloud-diagnostics.com。這意味,凡是用過被感染的Unity的app都有竊取隱私和推送廣告等惡意行為。

Unity是由Unity Technologies開發(fā)的一個(gè)讓玩家創(chuàng)建諸如三維視頻游戲、實(shí)時(shí)三維動(dòng)畫等類型互動(dòng)內(nèi)容的多平臺(tái)的綜合型游戲開發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎。很多有名的手機(jī)游戲比如神廟逃亡,紀(jì)念碑谷,爐石傳說都是用unity進(jìn)行開發(fā)的。
更令人恐怖的是,在百度安全實(shí)驗(yàn)室確認(rèn)后沒多久,大家就開始在網(wǎng)上尋找被感染的Unity工具,結(jié)果在我搜到一個(gè)Unity3D下載帖子的時(shí)候發(fā)現(xiàn)”codeFun與2015-09-22 01:18編輯了帖子”!?要知道codeFun就是那個(gè)自稱XcodeGhost作者的人啊。他竟然也一直沒睡,大半夜里一直在看大家發(fā)微博觀察動(dòng)靜?隨后發(fā)現(xiàn)大家知道了Unity也中毒的事情,趕緊去把自己曾經(jīng)投毒的帖子刪了?

現(xiàn)在再去看那個(gè)帖子已經(jīng)被作者刪的沒有任何內(nèi)容了。。。 http://game.ceeger.com/forum/read.php?tid=21630&fid=8

但根據(jù)XcodeGhost作者沒刪之前的截圖表明,從unity 4.6.4 – unity 5.1.1的開發(fā)工具都有可能被投毒了!
0x04 總結(jié)
雖然病毒作者聲稱并沒有進(jìn)行任何廣告或者欺詐行為,但不代表別人不會(huì)代替病毒作者進(jìn)行這些惡意行為。并且作者依然還在逍遙法外!所以立刻!馬上!刪掉那些中毒的app吧!
0x05 參考資料
涅槃團(tuán)隊(duì):Xcode幽靈病毒存在惡意下發(fā)木馬行為 http://drops.wooyun.org/papers/8973
XcodeGhost 源碼 https://github.com/XcodeGhostSource/XcodeGhost
0x06 更新
1 在百度安全實(shí)驗(yàn)室的幫助下,我們已經(jīng)拿到了UnityGhost的樣本?;拘畔⑷缦拢?/p>
$shasum libiPhone-lib-il2cpp.a-armv7-master.o
625ad3824ea59db2f3a8cd124fb671e47740d3bd libiPhone-lib-il2cpp.a-armv7-master.o
$ file libiPhone-lib-il2cpp.a-armv7-master.o
libiPhone-lib-il2cpp.a-armv7-master.o: Mach-O object arm
UnityGhost樣本的行為和XcodeGhost非常相似,基本函數(shù)如下:

UnityGhost在啟動(dòng)時(shí)會(huì)檢測(cè)是否是在虛擬機(jī)和調(diào)試器中運(yùn)行,如果是則不產(chǎn)生惡意行為:

UnityGhost同樣也會(huì)收集用戶手機(jī)的各種信息(時(shí)間,bundle id(包名),應(yīng)用名稱,系統(tǒng)版本,語言,國家等)并上傳到一個(gè)新的服務(wù)器”http://init.icloud-diagnostics.com”:


在接收到服務(wù)器返回的指令后,UnityGhost同樣也可以進(jìn)行多種惡意行為:下載安裝企業(yè)證書的App;彈AppStore的應(yīng)用進(jìn)行應(yīng)用推廣;彈釣魚頁面進(jìn)一步竊取用戶信息;如果用戶手機(jī)中存在某url scheme漏洞,還可以進(jìn)行url scheme攻擊等。 彈出詐騙對(duì)話框用到的函數(shù):

彈出網(wǎng)頁或者推廣應(yīng)用用到的函數(shù):
