SharpViewStateKing e a Anatomia de um Framework de Implante Furtivo
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O Centro Canadense de Cibersegurança identificou o SharpViewStateKing como uma estrutura de implante modular construída para atingir discretamente os ambientes ASP.NET. Ao abusar dos parâmetros ViewState comprometidos, a estrutura executa plugins inteiramente na memória, permitindo operar de maneira efetivamente sem estado e evitar a detecção tradicional baseada em arquivos. Seu tráfego HTTP e HTTPS criptografado ainda ajuda a atividade a se misturar com comunicações web legítimas.
Investigação
A investigação começou após analistas encontrarem um web shell em um servidor Microsoft IIS voltado para o público. A análise da telemetria do endpoint e da memória do processo mostrou que o implante usou plugins C# gerados dinamicamente para realizar ações como upload de arquivos, execução remota de comandos e reconhecimento de host. Os pesquisadores utilizaram a plataforma Assemblyline para descompilar o bytecode C# e expor a lógica interna da estrutura.
Mitigação
Os defensores devem reconstruir quaisquer hosts potencialmente afetados e substituir as chaves de criptografia e validação associadas a aplicações ASP.NET. Reparar vulnerabilidades relevantes, incluindo aquelas que afetam o SharePoint conforme referenciado no relatório, também é crucial. Monitorar processos filhos iniciados pelo processo de trabalho w3wp.exe pode ajudar a descobrir atividades não autorizadas conectadas ao implante.
Resposta
Se a atividade SharpViewStateKing for identificada, as organizações devem revisar a telemetria EDR e NDR em busca de sinais de movimento lateral, incluindo criação de novas contas ou implantação de ferramentas como SoftEther VPN. Todas as senhas e credenciais vinculadas ao sistema comprometido devem ser consideradas expostas e rotacionadas imediatamente. As equipes de segurança também devem confirmar se as exclusões do Microsoft Defender foram alteradas sem autorização.
Fluxo de Ataque
Detecções
Possível Atividade Remota Impacket SecretDump (via zeek)
Visualizar
Possível Exploração de Servidor Web ou WebApp [Windows] (via linha de comando)
Visualizar
Modificação Suspeita de Exclusões do Defender via WMIC (via linha de comando)
Visualizar
Possível Atividade Impacket SecretDump (via auditoria)
Visualizar
Detecção de Execução Remota e Plugins de Apagamento de Traços [Windows Sysmon]
Visualizar
Detectar Anomalias em Solicitações HTTP do SharpViewStateKing [Servidor Web]
Visualizar
Detecção de Execução de Comandos Furtivos via Janelas Ocultas [Criação de Processos no Windows]
Visualizar
Execução de Simulação
Requisito Prévio: A verificação pré-voo de Telemetria & Padrões deve ter sido aprovada.
Racional: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e narrativa DEVEM refletir diretamente os TTPs identificados e visar a geração da telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnósticos incorretos.
-
Narrativa do Ataque & Comandos: Um adversário identificou uma aplicação ASP.NET vulnerável e pretende implantar a estrutura SharpViewStateKing para manter a persistência e interceptar dados de sessão. Para isso, o atacante envia uma série de solicitações HTTP que utilizam os
__VIEWSTATEand__SCROLLPATHparâmetros para entregar uma carga de exploração. Ao utilizar esses parâmetros específicos, o atacante tenta se misturar com o tráfego padrão do ASP.NET, na esperança de evadir a detecção baseada em assinaturas que apenas busca por caminhos tradicionais de web shell. -
Script de Teste de Regressão:
# Script de simulação para acionar a regra de detecção do SharpViewStateKing $targetUri = "http://localhost/Login.aspx" # Carga 1: Testando detecção de parâmetro __VIEWSTATE Write-Host "[*] Simulando tentativa de exploração com __VIEWSTATE..." $payload1 = "__VIEWSTATE=MZ................[Simulated_Malicious_Payload]" Invoke-WebRequest -Uri "$targetUri?$payload1" -Method Get # Carga 2: Testando detecção de parâmetro __SCROLLPATH Write-Host "[*] Simulando tentativa de exploração com __SCROLLPATH..." $payload2 = "__SCROLLPATH=/etc/passwd" Invoke-WebRequest -Uri "$targetUri?$payload2" -Method Get Write-Host "[+] Simulação completa. Verifique o SIEM para alertas." -
Comandos de Limpeza:
# Nenhuma limpeza específica é necessária, pois são solicitações HTTP GET sem estado. # No entanto, se quaisquer arquivos foram dropados durante um ataque real, eles devem ser removidos. Write-Host "[*] Limpeza da simulação: Nenhum artefato persistente criado."