“聊天剽竊手”--ptrace進程註入型病毒
近日,百度安全實驗室發現了一款“聊天剽竊手”病毒,該病毒可以通過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、將聊天信息上傳至server:
conn.jar獲取到聊天消息後。便將這些信息通過廣播“learn.yincc.CHAT_UPDATE”發送出去。
該廣播由主惡意程序接收。主惡意程序解析廣播內容後。將聊天內容發送至遠端server:
conn.jar發送廣播
主惡意程序接收廣播
主惡意程序將聊天內容發送至遠端server
“聊天剽竊手”--ptrace進程註入型病毒