你以為伺服器關了這事就結束了? - XcodeGhost截胡攻擊和服務端的復現,以及UnityGhost預警

wyzsk發表於2020-08-19
作者: 蒸米 · 2015/09/22 3:01

作者:沒羽,蒸米,阿刻,迅迪 @ 阿里移動安全

0x00 序


截胡,麻將術語,指的是某一位玩家打出一張牌後,此時如果多人要胡這張牌,那麼按照逆時針順序只有最近的人算胡,其他的不能算胡。現也引申意為斷別人財路,在別人快成功的時候搶走了別人的勝利果實。

雖然XcodeGhost作者的伺服器關閉了,但是受感染的app的行為還在,這些app依然孜孜不倦的向伺服器(比如init.icloud-analysis.com,init.icloud-diagnostics.com等)傳送著請求。這時候駭客只要使用DNS劫持或者汙染技術,聲稱自己的伺服器就是”init.icloud-analysis.com”,就可以成功的控制這些受感染的app。具體能幹什麼能,請看我們的詳細分析。

另外,有證據表明unity 4.6.4 – unity 5.1.1的開發工具也受到了汙染,並且行為與XcodeGhost一致,更恐怖的是,還有證據證明XcodeGhost作者依然逍遙法外,具體內容請檢視第三節。

PS:雖然涅槃團隊已經發出過攻擊的demo了2,但很多細節並沒有公佈。所以我們打算在這篇文章中給出更加詳細的分析過程供大家參考。

0x01通訊協議分析


在受感染的客戶端App程式碼中,有個Response方法用於接收和處理遠端伺服器指令。

enter image description here

Response方法中根據伺服器下發的不同資料,解析成不同的命令執行,根據我們分析,此樣本大致支援4種遠端命令,分別是:設定sleep時長、視窗訊息、url scheme、appStore視窗。

透過4種遠端命令的單獨或組合使用可以產生多種攻擊方式:比如下載安裝企業證照的App;彈AppStore的應用進行應用推廣;彈釣魚頁面進一步竊取使用者資訊;如果使用者手機中存在某url scheme漏洞,還可以進行url scheme攻擊等。

enter image description here

其通訊協議是基於http協議的,在傳輸前用DES演算法加密http body。Response方法拿到伺服器下傳送的資料後,呼叫Decrypt方法進行解密:

enter image description here

如果解密成功,將解密後的資料轉換成JSON格式資料:

enter image description here

然後判斷伺服器端下發的資料,執行不同的操作。如下面截圖是設定客戶端請求服務端器sleep時長的操作:

enter image description here

0x2惡意行為分析及還原


在逆向了該樣本的遠端控制程式碼後,我們還原了其服務端程式碼,進一步分析其潛在的危害。

首先我們在服務端可以列印出Request的資料,如下圖:

enter image description here

紅色框標記的協議的頭部部分,前4位元組為報文長度,第二個2位元組為命令長度,最後一個2位元組為版本資訊,緊跟著頭部的為DES的加密資料。我們在服務端將資料解密後顯示為:

enter image description here

這裡有收集客戶端資訊上傳到控制伺服器。

同樣我們返回加密資料給客戶端:

enter image description here

明文資訊為:

enter image description here

客戶端根據App的執行狀態向服務端提供使用者資訊,然後控制伺服器根據不同的狀態返回控制資料:

enter image description here

惡意行為一 定向在客戶端彈(詐騙)訊息

該樣本先判斷服務端下發的資料,如果同時在在“alertHeader”、“alertBody”、“appID”、“cancelTitle”、“confirmTitle”、“scheme”欄位,則呼叫UIAlertView在客戶端彈框顯示訊息視窗:

enter image description here

訊息的標題、內容由服務端控制

enter image description here

客戶端啟動受感染的App後,彈出如下頁面:

你以為伺服器關了這事就結束了? -  XcodeGhost截胡攻擊和服務端的復現,以及UnityGhost預警

惡意行為二 下載企業證照籤名的App

當服務端下發的資料同時包含“configUrl”、“scheme”欄位時,客戶端呼叫Show()方法,Show()方法中呼叫UIApplication.openURL()方法訪問configUrl:

enter image description here

透過在服務端配置configUrl,達到下載安裝企業證照App的目的:

enter image description here

客戶端啟動受感染的App後,目標App將被安裝(注意:演示應用為測試應用,不代表惡意軟體推廣該應用):

你以為伺服器關了這事就結束了? -  XcodeGhost截胡攻擊和服務端的復現,以及UnityGhost預警

你以為伺服器關了這事就結束了? -  XcodeGhost截胡攻擊和服務端的復現,以及UnityGhost預警

demo地址:http://v.youku.com/v_show/id_XMTM0Mjg0MDc4OA==.html

<embed>

惡意行為三 推送釣魚頁面

透過在服務端配置configUrl,達到推送釣魚頁面的目的:

enter image description here

客戶端啟動受感染的App後,釣魚頁面被顯示:

你以為伺服器關了這事就結束了? -  XcodeGhost截胡攻擊和服務端的復現,以及UnityGhost預警

demo地址:http://v.youku.com/v_show/id_XMTM0Mjg0NTM2NA==.html

<embed>

惡意行為四 推廣AppStore中的應用

透過在服務端配置configUrl,達到推廣AppStore中的某些應用的目的:

enter image description here

phishing1.html頁面內容:

enter image description here

客戶端啟動受感染的App後,自動啟動AppStore,並顯示目標App的下載頁面:

你以為伺服器關了這事就結束了? -  XcodeGhost截胡攻擊和服務端的復現,以及UnityGhost預警

demo地址:http://v.youku.com/v_show/id_XMTM0Mjg0NDA4MA==.html

<embed>

0x03 UnityGhost?


在大家以為一切都完結的時候,百度安全實驗室稱已經確認”Unity-4.X的感染樣本”。並且邏輯行為和XcodeGhost一致,只是上線域名變成了init.icloud-diagnostics.com。這意味,凡是用過被感染的Unity的app都有竊取隱私和推送廣告等惡意行為。

enter image description here

Unity是由Unity Technologies開發的一個讓玩家建立諸如三維影片遊戲、實時三維動畫等型別互動內容的多平臺的綜合型遊戲開發工具,是一個全面整合的專業遊戲引擎。很多有名的手機遊戲比如神廟逃亡,紀念碑谷,爐石傳說都是用unity進行開發的。

更令人恐怖的是,在百度安全實驗室確認後沒多久,大家就開始在網上尋找被感染的Unity工具,結果在我搜到一個Unity3D下載帖子的時候發現”codeFun與2015-09-22 01:18編輯了帖子”!?要知道codeFun就是那個自稱XcodeGhost作者的人啊。他竟然也一直沒睡,大半夜裡一直在看大家發微博觀察動靜?隨後發現大家知道了Unity也中毒的事情,趕緊去把自己曾經投毒的帖子刪了?

enter image description here

現在再去看那個帖子已經被作者刪的沒有任何內容了。。。 http://game.ceeger.com/forum/read.php?tid=21630&fid=8

enter image description here

但根據XcodeGhost作者沒刪之前的截圖表明,從unity 4.6.4 – unity 5.1.1的開發工具都有可能被投毒了!

0x04 總結


雖然病毒作者聲稱並沒有進行任何廣告或者欺詐行為,但不代表別人不會代替病毒作者進行這些惡意行為。並且作者依然還在逍遙法外!所以立刻!馬上!刪掉那些中毒的app吧!

0x05 參考資料


  1. 涅槃團隊:Xcode幽靈病毒存在惡意下發木馬行為 /papers/?id=8973
  2. XcodeGhost 原始碼 https://github.com/XcodeGhostSource/XcodeGhost

0x06 更新


1 在百度安全實驗室的幫助下,我們已經拿到了UnityGhost的樣本。基本資訊如下:

$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非常相似,基本函式如下:

enter image description here

UnityGhost在啟動時會檢測是否是在虛擬機器和偵錯程式中執行,如果是則不產生惡意行為:

enter image description here

UnityGhost同樣也會收集使用者手機的各種資訊(時間,bundle id(包名),應用名稱,系統版本,語言,國家等)並上傳到一個新的伺服器”http://init.icloud-diagnostics.com”:

你以為伺服器關了這事就結束了? -  XcodeGhost截胡攻擊和服務端的復現,以及UnityGhost預警

enter image description here

在接收到伺服器返回的指令後,UnityGhost同樣也可以進行多種惡意行為:下載安裝企業證照的App;彈AppStore的應用進行應用推廣;彈釣魚頁面進一步竊取使用者資訊;如果使用者手機中存在某url scheme漏洞,還可以進行url scheme攻擊等。 彈出詐騙對話方塊用到的函式:

enter image description here

彈出網頁或者推廣應用用到的函式:

enter image description here

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章