针对超强手机木马DenDroid的分析与测试

  • 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/,即可开始安装部署:

点击beginsetup即可进入服务器配置环节,

可以看到,该页面需要设定数据库的相关信息,在操作之前我们先部署好数据库,这里我们使用phpMyAdmin创建数据库dendroid:

打开包里的SQL.sql,复制并导入到dendroid:

 即可看到表创建成功:

然后再回到服务器配置页面Step1,输入好相关信息后,即可完成相关部署:

点击FinishSetup,即可进入服务端管理台登录界面,输入配置好的用户名和密码即可登陆控制台:

注:dendroid调用的是google地图API,如要正常显示需使用代理。

二、客户端APK编译

下载AndroidSDK开发包,导入压缩包中DendroidApk:

导入之后如果提示缺少API包可点window->AndroidSDKManager下载对应的包:

记得更新时同样要使用代理,在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‍‍‍‍

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: