近日,百度安全实验室发现了一款“聊天剽窃手”病毒。该病毒可以通过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进程注入型病毒的更多相关文章

  1. ptrace注入型病毒“聊天剽窃手”分析

    概述 “聊天剽窃手”Windseeker是一款间谍软件,它使用了ptrace进程注入技术,能够对微信和QQ的聊天记录进行监控. 软件安装后的桌面图标和启动界面如图所示:   行为分析 该应用首先获取手 ...

  2. Virut.ce-感染型病毒分析报告

    1.样本概况 病毒名称 Virus.Win32.Virut.ce MD5 6A500B42FC27CC5546079138370C492F 文件大小 131 KB (134,144 字节) 壳信息 无 ...

  3. Android进程注入

    全部代码在这里下载:http://download.csdn.net/detail/a345017062/8133239 里面有两个exe.inj是一个C层进程注入的样例.inj_dalvik是我写的 ...

  4. 进程注入后门工具Cymothoa

    进程注入后门工具Cymothoa   Cymothoa是一款隐秘的后门工具.它通过向目标主机活跃的进程注入恶意代码,从而获取和原进程相同的权限.该工具最大的优点就是不创建新的进程,不容易被发现.由于该 ...

  5. 利用“进程注入”实现无文件复活 WebShell

    引子 上周末,一个好兄弟找我说一个很重要的目标shell丢了,这个shell之前是通过一个S2代码执行的漏洞拿到的,现在漏洞还在,不过web目录全部不可写,问我有没有办法搞个webshell继续做内网 ...

  6. 【原创】利用“进程注入”实现无文件不死webshell

    引子 上周末,一个好兄弟找我说一个很重要的目标shell丢了,这个shell之前是通过一个S2代码执行的漏洞拿到的,现在漏洞还在,不过web目录全部不可写,问我有没有办法搞个webshell继续做内网 ...

  7. 使用VC++通过远程进程注入来实现HOOK指定进程的某个API

    前阵子读到一篇关于<HOOK API入门之Hook自己程序的MessageBoxW>的博客,博客地址:http://blog.csdn.net/friendan/article/detai ...

  8. Android中通过进程注入技术改动广播接收器的优先级

    前言 这个周末又没有吊事,在家研究了怎样通过进程的注入技术改动广播接收器的优先级.关于这个应用场景是非常多的.并且也非常重要.所以就非常急的去fixed了. Android中的四大组件中有一个广播:B ...

  9. 如何实现.net程序的进程注入

    原文:如何实现.net程序的进程注入   如何实现.net程序的进程注入                                   周银辉 进程注入比较常见,比如用IDE调试程序以及一些Sp ...

随机推荐

  1. PAD会取代PC吗

    公司上了新的内部管理系统,上线一片混乱,群里也很热闹,从系统是否应该支持pad谈起 ,有技术大佬说5年内就是pad时代了,pad将完全取代pc.我不知道大佬从何得出这个结论,有和数据支撑.我的观点是, ...

  2. 【转】CentOS上安装 jdk:rpm安装和源码安装

    1.安装 jdk-8u5-linux-x64.rpm 原文链接:http://www.cnblogs.com/xsi640/p/3756995.html 先下载最新的jdk版本 文件名:jdk-8u5 ...

  3. day8 - isinstance--issubclass-异常处理-自定义异常

    一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 __author__ = 'Administrator' class Foo(object): pass obj ...

  4. STLport在vc6中的集成

    STLport的下载 http://sourceforge.net/projects/stlport/ STLport的编译 * 试验环境 : win7x64sp1 + vc6sp6* 打开控制台窗口 ...

  5. Docker学习笔记(3) — docker仓库的镜像怎么删除

    docker越来越炙手可热,如果你的团队已经准备开始使用docker,那么私有仓库是必不可少的东西,首先是可以帮助你加快从服务器pull镜像的速度,其次也可以帮助你存放私有的镜像,本文主要为大家介绍如 ...

  6. em换算px

    一般浏览器默认的1em=16px,所以常用字体大小如下: 10px=0.625em 12px=0.75em 14px=0.875em 16px=1em 18px=1.125em 20px=1.25em ...

  7. C#获取千分位,给数字加逗号分隔符

    /// <summary> /// 对数字添加”,“号,可以处理负数以及带有小数的情况 /// </summary> /// <param name="vers ...

  8. HTTP 错误 500.19 – Internal Server Error web.config 文件的 system.webServer/httpErrors 节中不允许绝对物理路径“C:\inetpub\custerr”[转]

    给ASP或者ASP.NET等需要配置IIS服务器的过程中,很可能会遇到以下两种错误.尤其是用Win7系统的,配置IIS7.0版本比用XP系统配置IIS5.1版本而言要复杂复杂一些.当同时需要配置ASP ...

  9. 面试中关于Java中涉及到知识点(转)

    本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...

  10. W英语: 紧急, 非紧急

    take your time 慢慢来 It is not urgent. Take it easy please. 不急,慢慢来.