From daf0d814a78f5170a55eb11a4b545ff0225897e9 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 10 Aug 2025 18:32:19 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/microsoft-sh --- .../pentesting-web/microsoft-sharepoint.md | 75 ++++++++++++++++--- 1 file changed, 63 insertions(+), 12 deletions(-) diff --git a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md index 90ce9058c..33739026a 100644 --- a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md +++ b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md @@ -29,7 +29,7 @@ python3 Office365-ADFSBrute/SharePointURLBrute.py -u https:// ### 2.2 CVE-2025-49706 – 부적절한 인증 우회 -같은 페이지는 사이트 컨텍스트를 결정하기 위해 **X-Forms_BaseUrl** 헤더를 신뢰합니다. 이를 `/_layouts/15/`로 지정하면, 루트 사이트에서 강제된 MFA/SSO를 **인증되지 않은 상태**로 우회할 수 있습니다. +같은 페이지는 사이트 컨텍스트를 결정하기 위해 **X-Forms_BaseUrl** 헤더를 신뢰합니다. 이를 `/_layouts/15/`로 지정함으로써, 루트 사이트에서 강제되는 MFA/SSO를 **인증되지 않은 상태**로 우회할 수 있습니다. ### 2.3 CVE-2025-53770 – 인증되지 않은 ViewState 역직렬화 → RCE @@ -75,29 +75,79 @@ Response.Write(MachineKey.ValidationKey); } ``` -작성 대상: +작성자: ``` C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx ``` -쉘은 **머신 키를 읽고 회전하는** 엔드포인트를 노출하여 ViewState 및 ASPXAUTH 쿠키를 농장 전역에서 위조할 수 있게 합니다. +The shell exposes endpoints to **read / rotate machine keys** which allows forging ViewState and ASPXAUTH cookies across the farm. -### 3.3 난독화된 변형 (variation-3) +### 3.3 Obfuscated variant (variation-3) -같은 쉘이지만: -* `...\15\TEMPLATE\LAYOUTS\` 아래에 배치됨 +Same shell but: +* `...\15\TEMPLATE\LAYOUTS\`에 배치됨 * 변수 이름이 단일 문자로 축소됨 * 샌드박스 회피 및 타이밍 기반 AV 우회를 위해 `Thread.Sleep()` 추가됨. -## 4. 탐지 아이디어 +### 3.4 AK47C2 multi-protocol backdoor & X2ANYLOCK ransomware (observed 2025-2026) -| 텔레메트리 | 의심스러운 이유 | +최근 사건 대응 조사(Unit42 “Project AK47”)는 공격자들이 초기 RCE **후에** ToolShell 체인을 활용하여 SharePoint 환경에 이중 채널 C2 임플란트와 랜섬웨어를 배포하는 방법을 보여줍니다: + +#### AK47C2 – `dnsclient` variant + +* 하드코딩된 DNS 서버: `10.7.66.10`이 권한 있는 도메인 `update.updatemicfosoft.com`과 통신. +* 메시지는 정적 키 `VHBD@H`로 XOR 암호화된 JSON 객체이며, 16진수로 인코딩되어 **서브 도메인 레이블**로 포함됨. + +```json +{"cmd":"","cmd_id":""} +``` + +* 긴 쿼리는 청크로 나뉘고 `s`로 접두사가 붙은 후 서버 측에서 재조립됨. +* 서버는 동일한 XOR/hex 방식으로 TXT 레코드에서 응답: + +```json +{"cmd":"","cmd_id":"","type":"result","fqdn":"","result":""} +``` +* 버전 202504는 `::`와 청크 마커 `1`, `2`, `a`의 단순화된 형식을 도입함. + +#### AK47C2 – `httpclient` variant + +* 동일한 JSON 및 XOR 루틴을 재사용하지만 **HTTP POST 본문**에 16진수 블롭을 `libcurl`을 통해 전송함 (`CURLOPT_POSTFIELDS` 등). +* 임의의 셸 명령 실행을 허용하는 동일한 작업/결과 워크플로우. +* 동적 대기 간격 및 킬 스위치 지침. + +#### X2ANYLOCK ransomware + +* DLL 사이드 로딩을 통해 로드된 64비트 C++ 페이로드 (아래 참조). +* 파일 데이터에 AES-CBC를 사용하고 AES 키를 래핑하기 위해 RSA-2048을 사용한 후 확장자 `.x2anylock`을 추가. +* 로컬 드라이브와 발견된 SMB 공유를 재귀적으로 암호화하며, 시스템 경로는 건너뜀. +* 협상을 위한 정적 **Tox ID**를 포함한 평문 노트 `How to decrypt my data.txt`를 드롭. +* 내부 **킬 스위치** 포함: + +```c +if (file_mod_time >= "2026-06-06") exit(0); +``` + +#### DLL side-loading chain + +1. 공격자가 합법적인 `7z.exe` 옆에 `dllhijacked.dll`/`My7zdllhijacked.dll`를 작성함. +2. SharePoint에서 생성된 `w3wp.exe`가 `7z.exe`를 실행하고, Windows 검색 순서 때문에 악성 DLL을 로드하여 메모리에서 랜섬웨어 진입점을 호출함. +3. 별도의 LockBit 로더가 관찰됨 (`bbb.msi` ➜ `clink_x86.exe` ➜ `clink_dll_x86.dll`)이 셸 코드를 복호화하고 `d3dl1.dll`에 **DLL 할로잉**을 수행하여 LockBit 3.0을 실행함. + +> [!INFO] +> X2ANYLOCK에서 발견된 동일한 정적 Tox ID가 유출된 LockBit 데이터베이스에 나타나며, 제휴 중복을 시사함. + +--- + +## 4. Detection ideas + +| Telemetry | Why it is suspicious | |-----------|----------------------| -| `w3wp.exe → cmd.exe` | 워커 프로세스는 드물게 쉘을 생성해야 함 | +| `w3wp.exe → cmd.exe` | 작업 프로세스가 셸을 생성하는 경우는 드뭄 | | `cmd.exe → powershell.exe -EncodedCommand` | 고전적인 lolbin 패턴 | | `debug_dev.js` 또는 `spinstall0.aspx` 파일 이벤트 생성 | ToolShell에서 직접 가져온 IOC | -| `ProcessCmdLine CONTAINS ToolPane.aspx` (ETW/모듈 로그) | 공개 PoC가 이 페이지를 호출함 | +| `ProcessCmdLine CONTAINS ToolPane.aspx` (ETW/Module logs) | 공개 PoC가 이 페이지를 호출함 | -예시 XDR / Sysmon 규칙 (의사-XQL): +Example XDR / Sysmon rule (pseudo-XQL): ``` proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe") ``` @@ -111,7 +161,7 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers ## 관련 트릭 -* IIS 사후 활용 및 web.config 남용: +* IIS 포스트 익스플로잇 및 web.config 남용: {{#ref}} ../../network-services-pentesting/pentesting-web/iis-internet-information-services.md {{#endref}} @@ -121,6 +171,7 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers - [Unit42 – Microsoft SharePoint 취약점의 능동적 악용](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/) - [GitHub PoC – ToolShell 익스플로잇 체인](https://github.com/real-or-not/ToolShell) - [Microsoft 보안 권고 – CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704) +- [Unit42 – Project AK47 / SharePoint 악용 및 랜섬웨어 활동](https://unit42.paloaltonetworks.com/ak47-activity-linked-to-sharepoint-vulnerabilities/) - [Microsoft 보안 권고 – CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770) {{#include ../../banners/hacktricks-training.md}}