mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-web/microsoft-sh
This commit is contained in:
parent
3d686e750b
commit
c7ae22ce4c
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
> Microsoft SharePoint (on-premises) basiert auf ASP.NET/IIS. Die meisten klassischen Web-Angriffsflächen (ViewState, Web.Config, Web-Shells usw.) sind daher vorhanden, aber SharePoint wird auch mit Hunderten von proprietären ASPX-Seiten und Webdiensten geliefert, die die exponierte Angriffsfläche erheblich vergrößern. Diese Seite sammelt praktische Tricks zur Enumeration, Ausnutzung und Persistenz in SharePoint-Umgebungen mit Schwerpunkt auf der 2025 veröffentlichten Exploit-Kette, die von Unit42 offengelegt wurde (CVE-2025-49704/49706/53770/53771).
|
> Microsoft SharePoint (on-premises) basiert auf ASP.NET/IIS. Die meisten klassischen Web-Angriffsflächen (ViewState, Web.Config, Web-Shells usw.) sind daher vorhanden, aber SharePoint wird auch mit Hunderten von proprietären ASPX-Seiten und Webdiensten geliefert, die die exponierte Angriffsfläche erheblich vergrößern. Diese Seite sammelt praktische Tricks zur Enumeration, Ausnutzung und Persistenz in SharePoint-Umgebungen mit Schwerpunkt auf der 2025 veröffentlichten Exploit-Kette von Unit42 (CVE-2025-49704/49706/53770/53771).
|
||||||
|
|
||||||
## 1. Quick enumeration
|
## 1. Quick enumeration
|
||||||
```
|
```
|
||||||
@ -27,13 +27,13 @@ python3 Office365-ADFSBrute/SharePointURLBrute.py -u https://<host>
|
|||||||
|
|
||||||
`/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload>` ermöglicht das Injizieren von beliebigem *Server-Side Include* Code in die Seite, der später von ASP.NET kompiliert wird. Ein Angreifer kann C# einbetten, das `Process.Start()` ausführt und einen bösartigen ViewState ablegt.
|
`/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload>` ermöglicht das Injizieren von beliebigem *Server-Side Include* Code in die Seite, der später von ASP.NET kompiliert wird. Ein Angreifer kann C# einbetten, das `Process.Start()` ausführt und einen bösartigen ViewState ablegt.
|
||||||
|
|
||||||
### 2.2 CVE-2025-49706 – Unzureichende Authentifizierung Umgehung
|
### 2.2 CVE-2025-49706 – Unzureichende Umgehung der Authentifizierung
|
||||||
|
|
||||||
Die gleiche Seite vertraut dem **X-Forms_BaseUrl** Header, um den Kontext der Seite zu bestimmen. Indem man ihn auf `/_layouts/15/` zeigt, kann die MFA/SSO, die an der Root-Seite durchgesetzt wird, **unauthentifiziert** umgangen werden.
|
Die gleiche Seite vertraut dem **X-Forms_BaseUrl** Header, um den Kontext der Seite zu bestimmen. Indem man ihn auf `/_layouts/15/` zeigt, kann die MFA/SSO, die an der Root-Seite durchgesetzt wird, **unauthentifiziert** umgangen werden.
|
||||||
|
|
||||||
### 2.3 CVE-2025-53770 – Unauthentifizierte ViewState Deserialisierung → RCE
|
### 2.3 CVE-2025-53770 – Unauthentifizierte ViewState-Deserialisierung → RCE
|
||||||
|
|
||||||
Sobald der Angreifer ein Gadget in `ToolPane.aspx` kontrolliert, kann er einen **nicht signierten** (oder nur MAC) `__VIEWSTATE` Wert posten, der die .NET Deserialisierung innerhalb von *w3wp.exe* auslöst, was zu einer Codeausführung führt.
|
Sobald der Angreifer ein Gadget in `ToolPane.aspx` kontrolliert, kann er einen **nicht signierten** (oder nur MAC) `__VIEWSTATE` Wert posten, der die .NET-Deserialisierung innerhalb von *w3wp.exe* auslöst, was zu einer Codeausführung führt.
|
||||||
|
|
||||||
Wenn die Signierung aktiviert ist, stehlen Sie den **ValidationKey/DecryptionKey** aus einer beliebigen `web.config` (siehe 2.4) und fälschen Sie die Payload mit *ysoserial.net* oder *ysodom*:
|
Wenn die Signierung aktiviert ist, stehlen Sie den **ValidationKey/DecryptionKey** aus einer beliebigen `web.config` (siehe 2.4) und fälschen Sie die Payload mit *ysoserial.net* oder *ysodom*:
|
||||||
```
|
```
|
||||||
@ -47,7 +47,7 @@ Für eine ausführliche Erklärung zum Missbrauch des ASP.NET ViewState lesen Si
|
|||||||
|
|
||||||
### 2.4 CVE-2025-53771 – Pfad Traversierung / web.config Offenlegung
|
### 2.4 CVE-2025-53771 – Pfad Traversierung / web.config Offenlegung
|
||||||
|
|
||||||
Das Senden eines manipulierten `Source`-Parameters an `ToolPane.aspx` (z. B. `../../../../web.config`) gibt die angezielte Datei zurück, was die Offenlegung von ermöglicht:
|
Das Senden eines manipulierten `Source`-Parameters an `ToolPane.aspx` (z.B. `../../../../web.config`) gibt die angeforderte Datei zurück, was die Offenlegung von ermöglicht:
|
||||||
|
|
||||||
* `<machineKey validationKey="…" decryptionKey="…">` ➜ ViewState / ASPXAUTH-Cookies fälschen
|
* `<machineKey validationKey="…" decryptionKey="…">` ➜ ViewState / ASPXAUTH-Cookies fälschen
|
||||||
* Verbindungszeichenfolgen & Geheimnisse.
|
* Verbindungszeichenfolgen & Geheimnisse.
|
||||||
@ -79,19 +79,70 @@ Geschrieben an:
|
|||||||
```
|
```
|
||||||
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
|
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
|
||||||
```
|
```
|
||||||
Die Shell exponiert Endpunkte, um **Maschinen-Schlüssel zu lesen / zu rotieren**, was das Fälschen von ViewState- und ASPXAUTH-Cookies über die Farm ermöglicht.
|
Die Shell exponiert Endpunkte zum **Lesen / Rotieren von Maschinen-Schlüsseln**, was das Fälschen von ViewState- und ASPXAUTH-Cookies über die Farm ermöglicht.
|
||||||
|
|
||||||
### 3.3 Obfuskierte Variante (Variation-3)
|
### 3.3 Obfuskierte Variante (Variation-3)
|
||||||
|
|
||||||
Gleiche Shell, aber:
|
Gleiche Shell, aber:
|
||||||
* unter `...\15\TEMPLATE\LAYOUTS\` abgelegt
|
* abgelegt unter `...\15\TEMPLATE\LAYOUTS\`
|
||||||
* Variablennamen auf einzelne Buchstaben reduziert
|
* Variablennamen auf einzelne Buchstaben reduziert
|
||||||
* `Thread.Sleep(<ms>)` hinzugefügt für Sandbox-Umgehung & zeitbasierte AV-Umgehung.
|
* `Thread.Sleep(<ms>)` hinzugefügt für Sandbox-Umgehung & zeitbasierte AV-Umgehung.
|
||||||
|
|
||||||
|
### 3.4 AK47C2 Multi-Protokoll-Hintertür & X2ANYLOCK Ransomware (beobachtet 2025-2026)
|
||||||
|
|
||||||
|
Aktuelle Vorfallreaktionsuntersuchungen (Unit42 „Projekt AK47“) zeigen, wie Angreifer die ToolShell-Kette **nach anfänglichem RCE** nutzen, um ein Dual-Channel-C2-Implantat und Ransomware in SharePoint-Umgebungen bereitzustellen:
|
||||||
|
|
||||||
|
#### AK47C2 – `dnsclient` Variante
|
||||||
|
|
||||||
|
* Hardcodierter DNS-Server: `10.7.66.10`, der mit der autoritativen Domain `update.updatemicfosoft.com` kommuniziert.
|
||||||
|
* Nachrichten sind JSON-Objekte, die mit dem statischen Schlüssel `VHBD@H` XOR-verschlüsselt, hex-kodiert und als **Subdomain-Labels** eingebettet sind.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
|
||||||
|
```
|
||||||
|
|
||||||
|
* Lange Abfragen werden in Teile zerlegt und mit `s` vorangestellt, dann serverseitig wieder zusammengesetzt.
|
||||||
|
* Der Server antwortet in TXT-Datensätzen, die dasselbe XOR/Hex-Schema tragen:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
|
||||||
|
```
|
||||||
|
* Version 202504 führte ein vereinfachtes Format `<COMMAND>::<SESSION_KEY>` und Chunk-Markierungen `1`, `2`, `a` ein.
|
||||||
|
|
||||||
|
#### AK47C2 – `httpclient` Variante
|
||||||
|
|
||||||
|
* Verwendet die genaue JSON- & XOR-Routine, sendet jedoch den Hex-B Blob im **HTTP POST-Körper** über `libcurl` (`CURLOPT_POSTFIELDS` usw.).
|
||||||
|
* Gleicher Task/Ergebnis-Workflow ermöglicht:
|
||||||
|
* Arbiträre Shell-Befehlsausführung.
|
||||||
|
* Dynamische Schlafintervalle und Kill-Switch-Anweisungen.
|
||||||
|
|
||||||
|
#### X2ANYLOCK Ransomware
|
||||||
|
|
||||||
|
* 64-Bit C++ Payload, geladen durch DLL-Seitenladung (siehe unten).
|
||||||
|
* Verwendet AES-CBC für Dateidaten + RSA-2048, um den AES-Schlüssel zu umschließen, und fügt dann die Erweiterung `.x2anylock` hinzu.
|
||||||
|
* Verschlüsselt rekursiv lokale Laufwerke und entdeckte SMB-Freigaben; überspringt Systempfade.
|
||||||
|
* Legt eine Klartextnotiz `How to decrypt my data.txt` ab, die eine statische **Tox ID** für Verhandlungen einbettet.
|
||||||
|
* Enthält einen internen **Kill-Switch**:
|
||||||
|
|
||||||
|
```c
|
||||||
|
if (file_mod_time >= "2026-06-06") exit(0);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### DLL-Seitenladekette
|
||||||
|
|
||||||
|
1. Angreifer schreibt `dllhijacked.dll`/`My7zdllhijacked.dll` neben eine legitime `7z.exe`.
|
||||||
|
2. Von SharePoint gestartetes `w3wp.exe` startet `7z.exe`, das die bösartige DLL aufgrund der Windows-Suchreihenfolge lädt und den Ransomware-Einstiegspunkt im Speicher aufruft.
|
||||||
|
3. Ein separater LockBit-Lader wurde beobachtet (`bbb.msi` ➜ `clink_x86.exe` ➜ `clink_dll_x86.dll`), der Shell-Code entschlüsselt und **DLL-Hollowing** in `d3dl1.dll` durchführt, um LockBit 3.0 auszuführen.
|
||||||
|
|
||||||
|
> [!INFO]
|
||||||
|
> Die gleiche statische Tox ID, die in X2ANYLOCK gefunden wurde, erscheint in geleakten LockBit-Datenbanken, was auf eine Überlappung der Partner hinweist.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 4. Erkennungsideen
|
## 4. Erkennungsideen
|
||||||
|
|
||||||
| Telemetrie | Warum es verdächtig ist |
|
| Telemetrie | Warum es verdächtig ist |
|
||||||
|------------|-------------------------|
|
|-----------|----------------------|
|
||||||
| `w3wp.exe → cmd.exe` | Arbeitsprozess sollte selten eine Shell starten |
|
| `w3wp.exe → cmd.exe` | Arbeitsprozess sollte selten eine Shell starten |
|
||||||
| `cmd.exe → powershell.exe -EncodedCommand` | Klassisches lolbin-Muster |
|
| `cmd.exe → powershell.exe -EncodedCommand` | Klassisches lolbin-Muster |
|
||||||
| Dateiereignisse, die `debug_dev.js` oder `spinstall0.aspx` erstellen | IOCs direkt von ToolShell |
|
| Dateiereignisse, die `debug_dev.js` oder `spinstall0.aspx` erstellen | IOCs direkt von ToolShell |
|
||||||
@ -105,9 +156,9 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers
|
|||||||
|
|
||||||
1. **Patch** – Die Sicherheitsupdates von Juli 2025 beheben *alle* vier CVEs.
|
1. **Patch** – Die Sicherheitsupdates von Juli 2025 beheben *alle* vier CVEs.
|
||||||
2. **Rotieren** Sie jeden `<machineKey>` und `ViewState` Geheimnisse nach einem Kompromiss.
|
2. **Rotieren** Sie jeden `<machineKey>` und `ViewState` Geheimnisse nach einem Kompromiss.
|
||||||
3. Entfernen Sie die *LAYOUTS* Schreibberechtigung von den Gruppen `WSS_WPG` & `WSS_ADMIN_WPG`.
|
3. Entfernen Sie *LAYOUTS* Schreibberechtigungen von den Gruppen `WSS_WPG` & `WSS_ADMIN_WPG`.
|
||||||
4. Blockieren Sie den externen Zugriff auf `/_layouts/15/ToolPane.aspx` auf Proxy/WAF-Ebene.
|
4. Blockieren Sie den externen Zugriff auf `/_layouts/15/ToolPane.aspx` auf Proxy/WAF-Ebene.
|
||||||
5. Aktivieren Sie **ViewStateUserKey**, **MAC aktiviert** und benutzerdefinierte *EventValidation*.
|
5. Aktivieren Sie **ViewStateUserKey**, **MAC aktiviert** und benutzerdefiniertes *EventValidation*.
|
||||||
|
|
||||||
## Verwandte Tricks
|
## Verwandte Tricks
|
||||||
|
|
||||||
@ -121,6 +172,7 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers
|
|||||||
- [Unit42 – Aktive Ausnutzung von Microsoft SharePoint Schwachstellen](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/)
|
- [Unit42 – Aktive Ausnutzung von Microsoft SharePoint Schwachstellen](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/)
|
||||||
- [GitHub PoC – ToolShell Exploit-Kette](https://github.com/real-or-not/ToolShell)
|
- [GitHub PoC – ToolShell Exploit-Kette](https://github.com/real-or-not/ToolShell)
|
||||||
- [Microsoft Sicherheitsberatung – CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704)
|
- [Microsoft Sicherheitsberatung – CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704)
|
||||||
|
- [Unit42 – Projekt AK47 / SharePoint Ausnutzung & Ransomware-Aktivität](https://unit42.paloaltonetworks.com/ak47-activity-linked-to-sharepoint-vulnerabilities/)
|
||||||
- [Microsoft Sicherheitsberatung – CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770)
|
- [Microsoft Sicherheitsberatung – CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770)
|
||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user