- A+
关于Dendroid这款手机木马FreeBuf上曾有介绍《赛门铁克发现名为Dendroid的超强手机木马》,那么今天我们就来研究下这款号称需要300美元的手机远控木马。本文最后会提供相关工具包,有兴趣的同学可以下载哦。
FreeBuf科普:手机木马Dendroid
赛门铁克的研究人员就在手机移动领域发现了一种新的名为Dendroid木马,可以轻松实现对手机远程恶意操控。而在此前赛门铁克发现了一个名为AndroidRAT的android远程管理软件被认为是第一个恶意绑定软件。然而这款最新发现的运行在http上的Dendroid具有更强功能。
Dendroid能够生成恶意apk,具有如下远程指令功能:
可以删除通话记录 可打开网页 拨打任意号码 通话记录、短信窃取 短信拦截 上传图片,视频 打开任意应用程序 做DDoS攻击的节点(会大量消耗上网流量或令手机卡机、死机) 可以改变命令和控制服务器
一、服务端web控制台安装
服务端为PHP+Mysql,服务器环境好办,phpnow、xampp等服务器套装可迅速搞定,服务端主要用来记录受控手机的相关信息,并对手机发送相关指令。服务端包解开如下:
搭建好服务器环境(这里省去步骤),记录下服务端的IP或域名,打开reg.php,修改如下地方:
改完后把以上服务端php代码放置到web根目录,然后直接访问http://服务器地址或域名/setup/,即可开始安装部署:
点击begin setup即可进入服务器配置环节,
可以看到,该页面需要设定数据库的相关信息,在操作之前我们先部署好数据库,这里我们使用phpMyAdmin创建数据库dendroid:
打开包里的SQL.sql,复制并导入到dendroid:
即可看到表创建成功:
然后再回到服务器配置页面Step1,输入好相关信息后,即可完成相关部署:
点击Finish Setup,即可进入服务端管理台登录界面,输入配置好的用户名和密码即可登陆控制台:
注:dendroid调用的是google地图API,如要正常显示需使用代理。
二、客户端APK编译
下载Android SDK开发包,导入压缩包中DendroidApk:
导入之后如果提示缺少API包可点window->AndroidSDK Manager下载对应的包:
记得更新时同样要使用代理,在Tools选项里设置(谁让咱天朝把google墙了)。
导入完毕后展开src,可以看到服务端的主要功能模块:
从命名上看能知道各功能模块的大致作用,这里我们只修改下连接服务器的参数部分,确保编好后的APK能连上我们刚才的服务端,打开MyService.java,修改如下:
上面三处均为Base64编码,注意encodePassword部分默认为‘password’的base64编码,如果修改,则需要到服务端修改get.php、get-functions.php、new-upload.php、upload-pictures.php文件中的$_GET'Password']部分,如图:
修改好后再导出:
生成成功:
三、上传手机,安装执行
安装过程中需要给予该APK一些必要的权限,例如摄像头、定位功能开启权限,方便测试。程序名称和图标在编译前可自行修改。Android版本为4.4.2。
测试环境下控制台机器和手机在同一局域网内(移动数据下建议3G或4G环境)。执行安装好后的APP,会看到定位被调用:
这时,控制台里手机也上线了:
四、主要控制功能介绍
通过控制台我们可以实现控制手机是否静音、亮屏、拦截短信、自动开启后台录音、拍照、视频记录,获取手机短信内容、联系人信息,打开指定app等等功能。
受控手机(安装了恶意APK的客户端)和服务端(WEB控制台)的执行示意图如下:
下面我们通过手机上线和短信截获功能(其它功能原理类似)来介绍上图的具体实现情况:
1.上线
1) 客户端中通过请求控制台的get.php 来实现受控主机的上线和状态刷新。
2) 获取物理标识码:
3)构造向服务端的请求URL
4)Get.php中处理GET方式发送过来的参数值,并通过updateSlave处理这些值(updateSlave在functions.php中定义):
5)functions.php中通过判断bot表中是否有记录过该手机来决定是更新还是插入手机属性信息:
6) 控制页显示结果:
2. 短信拦截
1) 点击如图按钮:
addCommand函数处理,第一个值为命令串’intercept’,第二个值为true:
请求addcommand.php:
2) 把请求命令插入commands表中:
3)客户端通过请求get-funtions.php来获取需要执行的命令:
4) 服务端在验证了Password之后通过UID(上面提到的Android手机物理标识码)查询之前控制台界面请求的动作(即插入到数据库中的’intercept’),最后以如下格式传递给客户端:
5) 判断返回的内容中是否含有“intercept(”,若有则把键‘intercept’的值设置为true:
6) 获取短信内容:
7) 向urlPost请求获取的数据:
urlPost即为message.php
8)message.php收到请求Data后调用addMessage,插入messages数据库,
9) 控制页刷新查询数据库即得到信息:
与手机端收到的信息一致:
3.拍照记录
同上面的执行流程一样,只不过没有自动上传服务端,而是通过手动上传,估计是考虑到该类文件传输占用带宽较多,未防止传输失败,可多次上传:
1) 选择前置或后置摄像头:
2) 拍摄完成
3) 上传类型里选图片:
同样处理函数也是addCommand
命令插入数据库后等待客户端获取命令类型来实施上传操作。
4) 上传命令执行显示:
5) 文件列表出现上传的照片:
6) 下载预览
若想修改图片尺寸可以修改CameraView.java中的如下部分(红框标记处):
五、附件
这里附上dendroid的源码,大家可以学习修改或优化功能。
链接:http://pan.baidu.com/s/1pJFQcOV
密码: rnq5
压缩包pass:123456
[本文作者Liuz5069,本文属FreeBuf黑客与极客(FreeBuf.COM)原创文章奖励计划,未经允许禁止转载]
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫