“聊天剽窃手”--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进程注入型病毒的更多相关文章
- ptrace注入型病毒“聊天剽窃手”分析
概述 “聊天剽窃手”Windseeker是一款间谍软件,它使用了ptrace进程注入技术,能够对微信和QQ的聊天记录进行监控. 软件安装后的桌面图标和启动界面如图所示: 行为分析 该应用首先获取手 ...
- Virut.ce-感染型病毒分析报告
1.样本概况 病毒名称 Virus.Win32.Virut.ce MD5 6A500B42FC27CC5546079138370C492F 文件大小 131 KB (134,144 字节) 壳信息 无 ...
- Android进程注入
全部代码在这里下载:http://download.csdn.net/detail/a345017062/8133239 里面有两个exe.inj是一个C层进程注入的样例.inj_dalvik是我写的 ...
- 进程注入后门工具Cymothoa
进程注入后门工具Cymothoa Cymothoa是一款隐秘的后门工具.它通过向目标主机活跃的进程注入恶意代码,从而获取和原进程相同的权限.该工具最大的优点就是不创建新的进程,不容易被发现.由于该 ...
- 利用“进程注入”实现无文件复活 WebShell
引子 上周末,一个好兄弟找我说一个很重要的目标shell丢了,这个shell之前是通过一个S2代码执行的漏洞拿到的,现在漏洞还在,不过web目录全部不可写,问我有没有办法搞个webshell继续做内网 ...
- 【原创】利用“进程注入”实现无文件不死webshell
引子 上周末,一个好兄弟找我说一个很重要的目标shell丢了,这个shell之前是通过一个S2代码执行的漏洞拿到的,现在漏洞还在,不过web目录全部不可写,问我有没有办法搞个webshell继续做内网 ...
- 使用VC++通过远程进程注入来实现HOOK指定进程的某个API
前阵子读到一篇关于<HOOK API入门之Hook自己程序的MessageBoxW>的博客,博客地址:http://blog.csdn.net/friendan/article/detai ...
- Android中通过进程注入技术改动广播接收器的优先级
前言 这个周末又没有吊事,在家研究了怎样通过进程的注入技术改动广播接收器的优先级.关于这个应用场景是非常多的.并且也非常重要.所以就非常急的去fixed了. Android中的四大组件中有一个广播:B ...
- 如何实现.net程序的进程注入
原文:如何实现.net程序的进程注入 如何实现.net程序的进程注入 周银辉 进程注入比较常见,比如用IDE调试程序以及一些Sp ...
随机推荐
- Hibernate 一对一关联映射
package com.entity; import javax.persistence.Entity; import javax.persistence.OneToOne; @Entity publ ...
- android:android:background="#00000000",透明效果
ImageButton中设置 android:background="#00000000",可以达到透明效果 具体的源码 管理-->文件中的 viewpager0829.ra ...
- the Meta-Object Compiler (moc)
the Meta-Object Compiler (moc) 元对象编译器是处理Qt的C++扩展的程序. moc工具读取C++头文件,如果它找到一个或者多个类声明包含Q_OBJECT宏.它生为那些类成 ...
- 开发板和centos服务器tftp传文件
CentOS下使用TFTP向目标板传送文件http://www.linuxidc.com/Linux/2010-10/29218.htm 1.安装相关软件包 为了使主机支持TFTP,必须确保TFTP后 ...
- BZOJ 2005: [Noi2010]能量采集( 数论 + 容斥原理 )
一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) * 2 - 1. 设g(i)为 gcd(x, y) = i ( 1 <= x <= ...
- Android 之 Fragment
一 左侧标题列表 1.1 布局 left_fragment.xml <ListView xmlns:android="http://schemas.android.com/apk/ ...
- ASM丢失disk header导致ORA-15032、ORA-15040、ORA-15042 Diskgroup无法mount
SQL> select * from v$version; BANNER --------------------------– Oracle Database 11g Enterprise E ...
- 前端javascript框架之AngularJS学习笔记
<!doctype html><html lang="en" ng-app><head><meta charset="utf-8 ...
- 【Java线程】volatile的适用场景
http://www.ibm.com/developerworks/cn/java/j-jtp06197.html 把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性 ...
- 获取字符宽度:并非自适应。coretext去计算
获取字符宽度:并非自适应.coretext去计算 UniChar ch = [ns_str characterAtIndex:0]; CGGlyph glyph = 0; CTFontGetGlyph ...