
📦 Pluck CMS 4.7.18 - Эксплойт аутентифицированного RCE (CVE-2023-50564). Обход ограничений загрузки и удаленное выполнение. 🎯
exploit.py 🐍💥
⚠️ Правовое / этическое предупреждение: этот скрипт предназначен только для авторизованных сред ✅ (CTF, лаборатории, пентест с разрешением). Не используйте его против систем без авторизации ❌.
🧾 Что делает этот скрипт?
exploit_greenhorn.py автоматизирует цепочку эксплуатации типичной веб-панели:
✅ Выполняет вход в панель (требуется действительный пароль) ✅ Создает ZIP в памяти (без записи локальных файлов) 📦 ✅ Помещает внутрь rev.php с reverse shell 🔁🐚 ✅ Загружает ZIP как «модуль» в панель 🧩⬆️ ✅ «Детонирует» полезную нагрузку, открывая URL загруженного PHP 🚀
📌 Имя модуля генерируется случайным образом для избежания конфликтов (например: abcdefg, xqpmzui и т.д.) 🎲
🧰 Требования
Python 3.8+ 🐍
Зависимость: requests 📌
Установка: установите библиотеку requests с помощью pip (pip install requests) ✅
⚙️ Конфигурация (ВАЖНО 🔧)
Внутри скрипта есть раздел «ТВОИ ДАННЫЕ», который нужно настроить:
RHOST_DOMAIN 🌐 → URL цели (включая http:// или https://)
LHOST_IP 🧭 → ваш IP, где вы хотите получить шелл (обычно это VPN/tun0)
LHOST_PORT 🔌 → порт, на котором вы будете слушать
PASSWORD 🔑 → пароль от панели (скрипт не делает брутфорс)
✅ Совет: чаще всего ошибка в LHOST_IP (укажите правильный IP вашего VPN-интерфейса) 😅
🎧 Listener (перед запуском)
Перед запуском эксплойта откройте listener для приема reverse shell 👂🐚
Пример: netcat слушает на том же порту, который вы указали в LHOST_PORT (например 4444). Если вы не слушаете, ничего не придет 📭.
▶️ Использование
Настройте RHOST_DOMAIN, LHOST_IP, LHOST_PORT и PASSWORD ✅
Откройте listener 🎧
Запустите скрипт с помощью Python 🐍
Типичный вывод, который вы можете увидеть:
[] Цель: http://greenhorn.htb
[] Создание чистого модуля: xqpmzui [] Вход в систему... [+] Вход выполнен. [] Загрузка полезной нагрузки... [*] Детонация по адресу: http://greenhorn.htb/data/modules/xqpmzui/rev.php
[+] Таймаут! (Хороший знак, проверьте ваш netcat)
😎 Внимание: «Таймаут! (Хороший знак)» обычно НОРМАЛЬНО ✅ Потому что когда PHP открывает reverse shell, веб-запрос может «зависнуть», пока активна интерактивная сессия 🔁
🧠 Как это работает внутри? (объяснение простыми словами)
Генерирует случайное имя модуля 🎲
Создает ZIP в памяти 📦 (плоская структура, без внутренних папок)
Внутрь помещает rev.php с reverse shell, который подключается к вашему LHOST_IP:LHOST_PORT 📡
Выполняет вход в /login.php 🔑 (включает Referer для совместимости)
Загружает ZIP в /admin.php?action=installmodule ⬆️🧩
Запускает полезную нагрузку, обращаясь к /data/modules/<module_name>/rev.php 🚀🐚
🧪 Устранение неполадок (если что-то не работает)
❌ Ошибка входа
Проверьте PASSWORD 🔑
Убедитесь, что конечная точка — /login.php
В лабораториях иногда нужно перезапустить машину/сервис 🔄
❌ Шелл не приходит
Проверьте LHOST_IP 🧭 (правильный IP, обычно tun0)
Убедитесь, что вы слушаете на правильном порту 🔌🎧
Попробуйте другой порт, если есть фильтрация (например, 443 или 9001) 🚧
❌ 404 при детонации
Возможно, модуль не установился 🧩
Некоторые установки меняют пути; проверьте структуру /data/modules/ 📁
🛡️ Примечания
Не оставляет ZIP на локальном диске (всё в памяти) ✅
Импортирует sys, но не использует (если хотите, можете удалить) 🧹
Используйте с умом 🧠😄
✅ Финальное предупреждение
Без гарантий. Только для образовательных и авторизованных целей. Если вы используете его без разрешения, это ваша ответственность 🚫⚖️