1. 程式人生 > >“聊天剽竊手”--ptrace進程註入型病毒

“聊天剽竊手”--ptrace進程註入型病毒

hook 隱私 a20 line 聊天內容 inject dsm 執行文件 以及

近日,百度安全實驗室發現了一款“聊天剽竊手”病毒,該病毒可以通過ptrace方式註入惡意代碼至QQ、微信程序進程,惡意代碼可以實時監控手機QQ、微信的聊天內容及聯系人信息。

該病毒是眼下發現的首款通過ptrace進程註入方式進行惡意竊取私密資料的病毒。

技術分享

簡單介紹

該病毒主要是通過ptrace註入QQ和微信進程進行信息竊取的,主程序調用assets中的inject_appsolibcall.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進程註入型病毒