字體:小 中 大 | |
|
|
2015/09/09 11:46:11瀏覽123|回應0|推薦0 | |
PoisonCake:內置於手機ROM的惡意代碼模塊 2015-08-30 16:37 AVLTeam FreeBuf AVL移動安全團隊近日聯合LBE發現一款內置於手機ROM的惡意代碼模塊。由於該惡意代碼作者將此惡意模塊運行釋放的模塊稱為“Cake”,所以我們將其命名為“PoisonCake(毒蛋糕)”。
在分析過程中,我們還發現該惡意代碼中存在明顯的惡意代碼作者身份標識tjj,ruanxiaozhen,並且其最後編譯時間為2015年8月26日10點20分。
該惡意模塊惡意行為特點如下:
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/Main的main方法。
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端口,獲取手機號碼、imsi、imei、apn、聯網等信息,並實現短信發送與攔截、聯網方式的控制。
其首先釋放可執行模塊whitebean和待注入的libblackbean.so、redbean.dex.jar,然後依次執行以下命令完成注入:
a. whitebean –check libblackbean.so
檢測運行環境,這裡主要檢查android::AndroidRuntime::mJavaVM和android::AndroidRuntime::getRuntime的獲取。
b. whitebean com.android.phonelibblackbean.so readbean.dex.jar cache Release /data/usr/server.log
其將libblackbean.so和readbean.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連接,其連接url為http://ubaj.tndmnsha.com/throne。
五、總結
PoisonCake是一個非常完善的後門程序,其實現具備良好的架構特點,並且易於擴展,其在運行過程中會迅速刪除自身釋放的模塊,所有在手機上存放的文件均為加密形態。其執行較為隱蔽,並且難以被發現和查殺。
AVL移動安全團隊分析師指出,用戶可以執行"ps dm"命令查看是否存在惡意代碼進程,或者檢查是否存在/data/.3q/dm、/data/usr目錄來判斷是否感染PoisonCake木馬。同時用戶還可以通過下載PoisonCake專殺工具進行檢測和查殺該木馬。
由AVL移動安全團隊推出PoisonCake專殺工具新鮮出爐啦 原文出處工具下載地址:https://update.avlyun.com/AvlPro/PoisonCakeK |
|
( 興趣嗜好|電腦3C ) |