Empire无法控制PHP主机,因其仅支持PowerShell/.NET载荷,无PHP监听器和生成能力,且PHP环境缺乏执行所需运行时;应改用weevely等PHP原生工具。

不能用 Empire 框架直接控制 PHP 主机——它压根不支持 PHP 载荷,强行“扩洞”只会卡在第一步。
Empire 为什么根本没法生成 PHP 木马
Empire 是 PowerShell 体系的 C2 框架,所有载荷(stager/stage)都基于 .NET/PowerShell 编译和执行。它没有 php 类型的监听器(listener),也没有 generate 命令支持输出 .php 文件。你搜到的所谓“Empire + PHP”教程,基本是混淆了 Empire 和 msfvenom 或 weevely 的能力。
常见错误现象:[!] Error: Invalid listener type 'http_php' 或执行 usestager multi/launcher 后找不到 PHP 相关选项。
- Empire 的
listeners只有http、https、dns等,全部依赖 Windows PowerShell 运行时 - PHP 主机通常无 PowerShell,也无 .NET 环境,无法解密、加载或执行 Empire 的 stage
- 即使硬改源码加 PHP 支持,也会因缺少反射调用、内存加载等底层机制而失败
真正在 PHP 主机上“控主机”的可行路径
想从 PHP 漏洞(如文件上传、命令注入、反序列化)落地并维持访问,得换工具链:用 PHP 原生载荷建立立足点,再横向或提权。
立即学习“PHP免费学习笔记(深入)”;
- 初始打点优先用
weevely:它专为 PHP 设计,weevely generate password /var/www/shell.php生成的 shell 兼容性极强,支持php -r、system()、proc_open()多种执行方式 - 若已有 webshell 但权限低,用
php -r 'echo system("id");'测试执行能力;再尝试python3 -c 'import pty; pty.spawn("/bin/bash")'伪终端化 - 后续横向可导出数据库凭据、读取
/etc/passwd、利用sudo -l查本地提权向量,而不是硬套 Empire 的 Windows 工作流
Kali 中误装 Empire 导致的典型兼容问题
Kali 默认仓库的 empire 包已停止维护(2021 年后无更新),Python 3.9+ 下运行 ./empire 常报错:ModuleNotFoundError: No module named 'Crypto' 或 ImportError: cannot import name 'urllib' from 'six.moves'。
- 别用
apt install empire—— 它装的是过期的 3.x 分支,且依赖混乱 - 官方推荐方式是克隆
BC-Security/empire的stable分支,并用./install.sh装指定 Python 虚拟环境 - 但即便修好,它仍只适用于 Windows/macOS 目标,对 PHP 场景完全无意义
真正要“挖 PHP 漏洞 + 控主机”,得接受一个事实:PHP 环境的持久化逻辑和 Windows PowerShell 生态是两套语言。硬套 Empire 不仅浪费时间,还会掩盖真实利用链里最关键的细节——比如 unserialize() 触发点是否可控、allow_url_include 是否开启、open_basedir 是否限制了路径遍历。这些才是决定能不能落库、能不能读配置、能不能逃逸的关键。











