
Современный инструментарий атак на аутентификацию Joomla J3 / J4 / J5 - CVE-2023-23752 · CVE-2023-23755 · CVE-2025-25227

Современный набор инструментов для атаки на аутентификацию Joomla
J3 / J4 / J5 - CVE-2023-23752 · CVE-2023-23755 · CVE-2025-25227
Набор инструментов для атаки на учётные данные Joomla, охватывающий версии CMS 3, 4 и 5. Шесть подкоманд реализуют полную цепочку атак «от начала до конца»:
detect — определение версии по отпечатку (manifest XML → generator meta → разметка панели администратора)enum — CVE-2023-23752 неавторизованный сбор данных через API: имена пользователей, хост/пользователь/пароль БД, SMTP-учётные данные, секрет приложенияbrute — параллельный перебор паролей администратора с изоляцией сессии для каждого рабочего потока и классификацией по четырём исходам (успех / требуется MFA / неверный / заблокирован)mfa-brute — CVE-2023-23755 полный перебор 6-значного TOTP на экране, требующем MFAmfa-bypass — CVE-2025-25227 обход MFA через view=methods (и четыре других кандидата на представления/задачи) на полуавторизованной сессииchain — полный автопилот: detect → enum → brute → автоматическое переключение на обход MFA, если при переборе появляется экран с требованием MFAОдин статический бинарник, никаких зависимостей времени выполнения. Нативная горутинная конкурентность с изоляцией cookie-хранилищ для каждого рабочего потока. Вывод в формате JSONL для загрузки в SIEM. Поддержка прокси HTTP/HTTPS/SOCKS5. Проверено «от начала до конца» на Docker-лабораториях Joomla 3.10, 4.2.7 и 5.4.6.
# Вариант A — установка через Go (требуется Go 1.22+)
go install github.com/rvzsec/joombrute/cmd/joombrute@latest
# Вариант B — готовый бинарник из релизов
curl -L -o joombrute https://github.com/rvzsec/joombrute/releases/latest/download/joombrute-linux-amd64
chmod +x joombrute
# Вариант C — сборка из исходников
git clone https://github.com/rvzsec/joombrute
cd joombrute
make
joombrute detect -u <цель>
joombrute enum -u <цель>
joombrute brute -u <цель> --user admin -w rockyou.txt -c 20
joombrute mfa-brute -u <цель> --user admin --password <пароль> -c 50
joombrute mfa-bypass -u <цель> --user admin --password <пароль>
joombrute chain -u <цель> -w rockyou.txt -c 20
# Вывод в JSONL для передачи по конвейеру / загрузки в SIEM
joombrute --json brute -u <цель> --user admin -w rockyou.txt > hits.jsonl
CVE-2025-25227 эксплуатирует MultiFactorAuthenticationHandler::needsMultiFactorAuthenticationRedirection(), который вызывает isMultiFactorAuthenticationPage() без флага $onlyCaptive — список исключений из обхода MFA негласно включает представления управления MFA (view=methods, view=method, view=callback, task=method.add …), к которым полуавторизованная сессия может получить доступ, не решив каптивную проверку.
detect — определение версии по манифесту joomla.xml → <meta name="generator"> → разметка панели администратораenum — CVE-2023-23752 неавторизованный сбор данных через API (пользователи, хост/пользователь/пароль БД, SMTP, секрет приложения)brute — перебор паролей администратора через форму, изоляция сессии для каждого рабочего потока, классификация по четырём исходам (успех / требуется MFA / неверный / заблокирован)mfa-brute — CVE-2023-23755 перебор 6-значного TOTP на каптивном экранеmfa-bypass — CVE-2025-25227 зондирование на предмет обхода проверки состояния MFA (недеструктивное)chain — полный автопилот: detect → enum → brute → зондирование обхода MFAmake lab # docker compose up + инициализация J3.10 / J4.2.7 / J5.x с администратором
make smoke # сквозное тестирование всех трёх (без MFA)
make lab-mfa # инициализация известного TOTP-секрета на J4-администраторе (для тестов mfa-*)
make smoke-mfa # brute -> требуется MFA, mfa-bypass VULN, автоматическое переключение chain
make lab-mfa-off # удаление записи MFA (возврат к обычному администратору)
make lab-down # полное удаление лаборатории
Установщик лаборатории полностью обходит веб-установщик Joomla — загружает установочный SQL напрямую в MySQL, вставляет администратора (admin / admin1234), записывает минимальный configuration.php. seed_mfa.php использует собственное AES-128-CBC + шифрование секретным ключом Joomla, чтобы конечная точка, требующая MFA, расшифровала его корректно. Только для лаборатории — оба скрипта предполагают стандартные имена контейнеров joombrute-* из lab/docker-compose.yml.
make all
# создаёт dist/joombrute-{linux,darwin,windows}-{amd64,arm64} со статической сборкой
Только авторизованное тестирование безопасности. Запускайте только на системах, на которые имеете явное письменное разрешение. Генерирует трафик, который будет обнаружен любой IDS. Разработчики отказываются от любой ответственности за неправомерное использование.
Равинду Викрамасингхе | rvz (@rvzsec) · www.zyenra.com
Оригинальная концепция перебора Joomla 3: @ajnik Исследование цепочки CVE-2023-23752: VulnCheck
| CVE | Затронутые версии | Режим | Исправлено в | Проверено в лаборатории |
|---|
| CVE-2023-23752 | 4.0.0 - 4.2.7 | enum | 4.2.8 (2023-02) | ✅ J4.2.7 |
| CVE-2023-23755 | 4.2.0 - 4.3.1 | mfa-brute | 4.3.2 (2023-05) | ✅ J4.2.7 |
| CVE-2025-25227 | 4.0.0 - 4.4.12, 5.0.0 - 5.2.5 | mfa-bypass | 4.4.13 / 5.2.6 (2025-04) | ✅ J4.2.7 |