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

“聊天剽竊手”--ptrace程序注入型病毒

近日,百度安全實驗室發現了一款“聊天剽竊手”病毒,該病毒能夠通過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惡意程式碼:

圖片6

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傳送廣播

主惡意程式接收廣播

主惡意程式將聊天內容傳送至遠端伺服器