涅槃團隊:Xcode幽靈病毒存在惡意下發木馬行為

wyzsk發表於2020-08-19
作者: 360安全衛士 · 2015/09/20 21:13

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 檔案,編譯程式,然後反彙編,結果如下:

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

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

相關文章