網路城邦
上一篇 回創作列表 下一篇   字體:
【趣味分享】毒蛋糕PoisonCake:內置於手機ROM的惡意代碼模塊
2015/09/09 11:46:11瀏覽123|回應0|推薦0

PoisonCake:內置於手機ROM的惡意代碼模塊

2015-08-30 16:37 AVLTeam FreeBuf

AVL移動安全團隊近日聯合LBE發現一款內置於手機ROM的惡意代碼模塊。由於該惡意代碼作者將此惡意模塊運行釋放的模塊稱為“Cake”,所以我們將其命名為“PoisonCake(毒蛋糕)”。

在分析過程中,我們還發現該惡意代碼中存在明顯的惡意代碼作者身份標識tjjruanxiaozhen,並且其最後編譯時間為20158261020分。

 

該惡意模塊惡意行為特點如下:

 

PoisonCake可以單獨運行,解密釋放相關主體功能模塊,在後台監控自身進程並執行以下惡意行為:

 

1. 注入Phone進程,攔截短信和發送短信。

 

2. 實現短信和WAP扣費。

 

3. 竊取手機信息,並上傳至遠程服務器。

 

4. 後台聯網下載文件。

 

5. 能夠進行自我更新。

 

經分析,我們發現該惡意模塊的惡意行為與“長老木馬三代”較為相似,但是在實現方式上有較大差異。下面將對惡意模塊PoisonCake進行詳細的分析。

 

一、PoisonCake運行機制

 

PoisonCake運行時,會將自身移植到一個隱藏目錄/data/.3q下,並在後台監控自身進程運行狀態,防止自身進程被終止。

 

同時它在執行過程中會創建多個目錄和文件,主要有:

 

/data/.3q/dm

 

/data/usr(目錄)

 

/data/usr/dalvik-cache(目錄)

 

/data/usr/plugins(目錄)

 

/data/.l1

 

/data/.l6

 

/data/.l9

 

/mnt/sdcard/sysv/lv

 

/mnt/sdcard/sysv/lg

 

PoisonCake的主體模塊分為reactore.dex.jar核心框架和8個插件模塊,其中插件模塊主要提供了惡意扣費、聯網上傳下載、獲取手機信息等功能,並且能夠注入系統Phone進程,執行短信的監聽和發送,以及聯網控制。

 

其整體運行框架如下所示:

二、dm模塊

 

dm模塊是PoisonCake的運行核心,主要完成惡意代碼的初始化,惡意模塊reactor.dex.jar的釋放和運行,並後台監控自身進程是否存在,同時還將關鍵的字符串信息進行加密。

 

1. 惡意代碼初始化

 

dm模塊接受“–setup”參數完成初始化行為:

 

1)解密關鍵的字符串信息為字符串數組。

 

2)判斷/data/.dmtjjexit是否存在,若存在,則進程退出。

 

3)設置進程環境變量,並將進程名稱改為jworker/0I:2H:1J

 

4)將自身拷貝到/data/.3q/dm,並創建/data/usr目錄,然後刪除自身。

 

5)fork自身並退出,子進程執行/data/.3q/dm,由其完成余下工作。

 

2. 後台監控

 

dm模塊采用了文件鎖和線程的方式,能持續監控自身進程保持後台運行。dm運行時後台有兩個進程,如下圖所示。

創建子線程,不斷循環創建自身子進程的行為,並且利用文件鎖,保證建立的子進程在父進程存在的時候阻塞:

kill掉父進程或子進程中任意一個時,其會再創建一個新的進程。

 

3. reactor.dex.jar解密釋放和運行

 

最後dm進程會從自身文件中解密釋放reactor.dex.jar/data/usr

dm隨後將釋放的reactore.dex.jar加載運行,其利用libdvm.so中的JNI_CreateJavaVM運行jar,其參數列表為

 

Djava.class.path=/data/usr/reactore.dex.jar-Djava.compiler=NONE -verbose:jni

 

然後注冊native函數getGirls,最後執行com/tj/Mainmain方法。

 

4. getGirls方法

 

dm還同時為reactore.dex.jar提供native方法實現,其接受兩個參數,作用為解密指定jar文件到指定路徑。

 

三、reactore.dex.jar模塊

 

reactore.dex.jar是由一個負責初始化環境、循環遍歷執行事件和命令的框架模塊和數個插件模塊組成,其將功能模塊實現分成四個主要類別:

 

1)基礎設施Infrastructor

 

2)業務倉庫Repository

 

3)服務Service,負責後台執行相關功能。

 

4)組件Component

 

其整體執行邏輯流程如下圖:

 

四、插件模塊

 

reactore.dex.jar內置默認了8個插件模塊,每個插件分別執行不同的行為:

 

1 插件名稱及其作用

 


 

以下對重點的插件模塊分別進行分析。

 

1)bean模塊

 

bean模塊主要完成對phone進程的注入,監聽本地10023端口,獲取手機號碼、imsiimeiapn、聯網等信息,並實現短信發送與攔截、聯網方式的控制。

 

其首先釋放可執行模塊whitebean和待注入的libblackbean.soredbean.dex.jar,然後依次執行以下命令完成注入:

 

a. whitebean –check libblackbean.so

 

檢測運行環境,這裡主要檢查android::AndroidRuntime::mJavaVMandroid::AndroidRuntime::getRuntime的獲取。

 

b. whitebean com.android.phonelibblackbean.so readbean.dex.jar cache Release /data/usr/server.log

 

其將libblackbean.soreadbean.dex.jar注入到phone進程中,並執行com.android.phone.os.Program類。

 

完成後刪除自身。

 

在注入完成後,會監聽10023端口接受請求,此時由於具備Phone進程權限,所以可以進行短信攔截發送,APN網絡管理及獲取手機號碼、數據連接等相關信息。

 

PoisonCake:內置於手機ROM的惡意代碼模塊

 

PoisonCake:內置於手機ROM的惡意代碼模塊

 

2)honeybee模塊

 

honeybee模塊主要會記錄運行日志信息,以AES加密形式存放至/data/usr/honey文件,並且上傳至遠程服務器http://slasty.hada1billi.info/honeycomb/ums/postEvent

 


 

honey文件的解密結果如下所示:

 


 

3)sun模塊

 

sun模塊主要提供網絡連接功能,並與遠程服務器建立Heartbeat連接,其連接urlhttp://ubaj.tndmnsha.com/throne

 

五、總結

 

PoisonCake是一個非常完善的後門程序,其實現具備良好的架構特點,並且易於擴展,其在運行過程中會迅速刪除自身釋放的模塊,所有在手機上存放的文件均為加密形態。其執行較為隱蔽,並且難以被發現和查殺。

 

AVL移動安全團隊分析師指出,用戶可以執行"ps dm"命令查看是否存在惡意代碼進程,或者檢查是否存在/data/.3q/dm/data/usr目錄來判斷是否感染PoisonCake木馬。同時用戶還可以通過下載PoisonCake專殺工具進行檢測和查殺該木馬。

 

AVL移動安全團隊推出PoisonCake專殺工具新鮮出爐啦

 

原文出處工具下載地址:https://update.avlyun.com/AvlPro/PoisonCakeK
( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=ZeitgeistKuo&aid=29822270