<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    原文地址: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 文件,編譯程序,然后反匯編,結果如下:

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

    97av