diff --git a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md index 0113ba020..8c7b01f32 100644 --- a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md +++ b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md @@ -21,7 +21,7 @@ curl -s https:///_layouts/15/init.js | grep -i "spPageContextInfo" # enumerate sites & site-collections (requires at least Anonymous) python3 Office365-ADFSBrute/SharePointURLBrute.py -u https:// ``` -## 2. Cadeia de exploração 2025 (a.k.a. “ToolShell”) +## 2. 2025 cadeia de exploração (a.k.a. “ToolShell”) ### 2.1 CVE-2025-49704 – Injeção de Código em ToolPane.aspx @@ -88,10 +88,61 @@ Mesma shell, mas: * nomes de variáveis reduzidos a letras únicas * `Thread.Sleep()` adicionado para evasão de sandbox e bypass de AV baseado em tempo. +### 3.4 Backdoor multi-protocolo AK47C2 & ransomware X2ANYLOCK (observado 2025-2026) + +Investigações recentes de resposta a incidentes (Unit42 “Projeto AK47”) mostram como os atacantes aproveitam a cadeia ToolShell **após RCE inicial** para implantar um implante C2 de canal duplo e ransomware em ambientes SharePoint: + +#### AK47C2 – variante `dnsclient` + +* Servidor DNS hard-coded: `10.7.66.10` comunicando com o domínio autoritativo `update.updatemicfosoft.com`. +* Mensagens são objetos JSON criptografados com XOR usando a chave estática `VHBD@H`, codificados em hex e incorporados como **rótulos de subdomínio**. + +```json +{"cmd":"","cmd_id":""} +``` + +* Consultas longas são divididas em partes e prefixadas com `s`, depois reagrupadas no lado do servidor. +* O servidor responde em registros TXT carregando o mesmo esquema XOR/hex: + +```json +{"cmd":"","cmd_id":"","type":"result","fqdn":"","result":""} +``` +* A versão 202504 introduziu um formato simplificado `::` e marcadores de partes `1`, `2`, `a`. + +#### AK47C2 – variante `httpclient` + +* Reutiliza o mesmo JSON & rotina XOR, mas envia o blob hex no **corpo HTTP POST** via `libcurl` (`CURLOPT_POSTFIELDS`, etc.). +* Mesmo fluxo de tarefa/resultado permitindo: +* Execução arbitrária de comandos de shell. +* Intervalo de sono dinâmico e instruções de kill-switch. + +#### Ransomware X2ANYLOCK + +* Payload C++ de 64 bits carregado através de side-loading de DLL (veja abaixo). +* Emprega AES-CBC para dados de arquivo + RSA-2048 para embrulhar a chave AES, depois anexa a extensão `.x2anylock`. +* Criptografa recursivamente unidades locais e compartilhamentos SMB descobertos; ignora caminhos do sistema. +* Lança nota em texto claro `How to decrypt my data.txt` incorporando um **Tox ID** estático para negociações. +* Contém um **kill-switch** interno: + +```c +if (file_mod_time >= "2026-06-06") exit(0); +``` + +#### Cadeia de side-loading de DLL + +1. O atacante escreve `dllhijacked.dll`/`My7zdllhijacked.dll` ao lado de um legítimo `7z.exe`. +2. O `w3wp.exe` gerado pelo SharePoint inicia `7z.exe`, que carrega a DLL maliciosa devido à ordem de busca do Windows, invocando o ponto de entrada do ransomware na memória. +3. Um loader LockBit separado observado (`bbb.msi` ➜ `clink_x86.exe` ➜ `clink_dll_x86.dll`) descriptografa o shell-code e realiza **DLL hollowing** em `d3dl1.dll` para executar LockBit 3.0. + +> [!INFO] +> O mesmo Tox ID estático encontrado no X2ANYLOCK aparece em bancos de dados vazados do LockBit, sugerindo sobreposição de afiliados. + +--- + ## 4. Ideias de detecção | Telemetria | Por que é suspeito | -|------------|---------------------| +|-----------|----------------------| | `w3wp.exe → cmd.exe` | O processo de trabalho raramente deve gerar shell | | `cmd.exe → powershell.exe -EncodedCommand` | Padrão clássico de lolbin | | Eventos de arquivo criando `debug_dev.js` ou `spinstall0.aspx` | IOCs diretamente do ToolShell | @@ -104,7 +155,7 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers ## 5. Dureza & Mitigação 1. **Patch** – Atualizações de segurança de julho de 2025 corrigem *todos* os quatro CVEs. -2. **Rotacione** todos os segredos `` e `ViewState` após a violação. +2. **Rotacione** todos os segredos de `` e `ViewState` após a violação. 3. Remova a permissão de escrita *LAYOUTS* dos grupos `WSS_WPG` & `WSS_ADMIN_WPG`. 4. Bloqueie o acesso externo a `/_layouts/15/ToolPane.aspx` no nível de proxy/WAF. 5. Ative **ViewStateUserKey**, **MAC habilitado** e *EventValidation* personalizado. @@ -121,6 +172,7 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers - [Unit42 – Exploração Ativa de Vulnerabilidades do Microsoft SharePoint](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/) - [GitHub PoC – Cadeia de exploração 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 – Projeto AK47 / Atividade de Exploração do SharePoint & 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}}