<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/papers/8973

            360 Nirvan Team

            本文是 360 Nirvan Team 團隊針對 XcodeGhost 的第二篇分析文章。

            我們還原了惡意iOS應用與C2服務器的通信協議,從而可以實際測試受感染的iOS應用可以有哪些惡意行為,具體行為見下文。

            最后,我們分析了攻擊的發起點:Xcode,分析了其存在的弱點,及利用過程,并驗證了該攻擊方法。

            0x01 惡意行為與C2服務器


            通信密鑰分析

            惡意程序將其與服務器通信的數據做了加密,如下圖所示:

            密鑰的計算方法:

            通過分析,密鑰為:stringWi,生成密鑰的方式比較有迷惑性。

            惡意行為分析

            惡意行為一:做應用推廣

            方法是:首先檢測用戶手機上是否安裝了目標應用,如果目標應用沒有安裝,則安裝相應應用,其中目標應用由C2服務器控制。

            我們逆向了惡意代碼與C2服務器的通信協議,搭建了一個測試的C2服務器。然后通過C2服務器可以控制客戶端安裝第三方應用(演示應用為測試應用,不代表惡意軟件推廣該應用),見視頻,

            視頻鏈接:http://v.youku.com/v_show/id_XMTMzOTk0NDc2MA==.html

            這是第一個針對 XcodeGhost 能力的視頻演示。

            惡意行為二:偽造內購頁面

            相關代碼如下:

            惡意行為三:通過遠程控制,在用戶手機上彈提示

            0x02 Xcode 的弱點及利用


            Xcode 的利用過程描述

            Xcode 中存在一個配置文件,該配置文件可以用來控制編譯器的鏈接行為,在受感染的 Xcode 中,該文件被修改,從而在鏈接階段使程序鏈接含有惡意代碼的對象文件,實現向正常iOS應用中注入惡意代碼的目的。

            被修改的文件內容如下:

            從上圖可以看到,程序會鏈接惡意對象文件 CoreService。

            從鏈接過程的 Log 中可以看到其是如何影響鏈接過程的:

            注:實際上可以讓 CoreService 從文件系統中消失,且在鏈接Log中沒有任何額外信息。

            通過在配置文件中添加的鏈接選項,在工程的編譯設置中無法看到,這就增加隱蔽性:

            對惡意代碼 CoreService 的分析

            首先 CoreService 的文件類型為:Object,即對象文件。

            查看 CoreService 中的符號,可以看到:

            導入的符號有:

            驗證概念

            首先編寫一個 ObjC 的類,測試如下圖:

            制作出對象文件 ProteasInjector.o,然后用這個文件替換掉 CoreService 文件,編譯程序,然后反匯編,結果如下:

            可以看到代碼被注入到應用中。

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线