近日,百度安全實驗室發現了一款“聊天剽竊手”病毒,該病毒能夠通過ptrace方式注入惡意代碼至QQ、程式進程,惡意代碼能夠即時監控手機QQ、的聊天內容及連絡人資訊。該病毒是目前發現的首款通過ptrace進程注入方式進行惡意竊取私密資料的病毒。
簡介
該病毒主要是通過ptrace注入QQ和進程進行資訊竊取的,主程式調用assets中的inject_appso,libcall.so以及conn.jar聯合進行“作案”,在conn.jar中擷取聊天資訊/最近連絡人等,並發送廣播啟動主程式廣播接收器,將隱私資訊發送至遠端地址。該病毒行為圖如下:
程式碼分析:
主惡意程式碼結構圖如下:
1、入口啟動:
主惡意程式啟動後立刻嘗試擷取ROOT許可權,並將assets下的幾個將要執行的檔案拷貝至系統不同目錄下:
inject_appso –> /system/bin/
libcall.so –> /system/lib/
conn.jar –> /data/data/qy/
複製完檔案後,以管理員權限運行inject_appso程式進行程式注入:
運行inject_appso
2、注入惡意代碼至QQ/進程:
inject_appso可執行檔以Root使用者運行後,通過調用ptrace函數擷取QQ、進程的控制權。擷取控制權後,在目標進程載入並運行附帶的惡意代碼libcall.so:
ibcall.so代碼運行後,首先擷取Dalvik運行時環境,通過Dexclassloader動態載入附帶的conn.jar惡意代碼:
3、惡意代碼HookQQ、關鍵資料擷取使用者隱私
conn.jar代碼結構圖如下:
conn.jar通過javahook方式監控QQ或聊天介面。
QQ聊天介面:com.tencent.mobileqq.activity.ChatActivity
聊天介面:com.tencent.mm.ui.chatting.ChattingUI
當聊天內容發生變動時,惡意代碼便會獲得通知並擷取聊天內容:
HOOK聊天介面
監控聊天介面變化
擷取聊天內容
不僅能夠監控頁面內容,而且能夠通過擷取/data/data/com.tencent.mobileqq/目錄或者/data/data/com.tencent.mm/中的.db資料庫檔案,擷取聊天記錄,而且能夠擷取最近連絡人資訊:
擷取最近連絡人資訊
4、將聊天資訊上傳至伺服器:
conn.jar擷取到聊天訊息後,便將這些資訊通過廣播“learn.yincc.CHAT_UPDATE”發送出去。該廣播由主惡意程式接收,主惡意程式解析廣播內容後,將聊天內容發送至遠端伺服器:
conn.jar發送廣播
主惡意程式接收廣播
主惡意程式將聊天內容發送至遠端伺服器