RDP Exposto: A Configuração Incorreta Que Ainda Compensa para Atacantes
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O artigo explica que serviços expostos do Remote Desktop Protocol continuam a servir como um vetor comum de acesso inicial para atacantes. Muitas organizações ainda deixam portas RDP acessíveis pela internet pública, tornando-as alvos fáceis para varreduras automatizadas e tentativas oportunistas de intrusão. O post destaca incidentes do mundo real em que atacantes abusaram do acesso RDP aberto ou portais RDWeb expostos para entrar em ambientes e depois expandir seu acesso por meio de movimento lateral.
Investigação
Os casos descritos incluem uma organização de saúde com uma porta RDP exposta na internet, um incidente envolvendo comprometimento por meio de um portal RDWeb, e uma intrusão em que os atacantes alteraram as configurações de firewall e do registro para ativar o RDP após explorar um dispositivo SonicWall VPN vulnerável. Nesses cenários, os atacantes confiaram em comandos simples do Windows, utilitários de tunelamento reverso e scripts de coleta de credenciais para manter o acesso e se mover mais profundamente na rede.
Mitigação
As defesas recomendadas se concentram na eliminação da exposição desnecessária de RDP, colocando o acesso RDP necessário por trás de firewalls devidamente configurados, rotacionando credenciais após qualquer suspeita de exposição, e alimentando logs de firewall e VPN em um SIEM para uma detecção mais rápida. O artigo também recomenda implantar cobertura EDR e monitorar mudanças no registro que habilitem ou reabilitem serviços RDP.
Resposta
Se atividade suspeita relacionada ao RDP for detectada, os respondedores devem bloquear o endereço IP ofensivo, desativar o serviço RDP, reverter quaisquer alterações maliciosas do registro, confirmar que as regras do firewall não foram alteradas, e redefinir as credenciais afetadas. O monitoramento contínuo para tentativas de acesso repetidas e a validação de todas as mudanças de configuração são também essenciais.
Fluxo de Ataque
Detecções
Possível Sombreamento de Serviços de Área de Trabalho Remota (via registro_event)
Visualizar
Possível Sombreamento de Serviços de Área de Trabalho Remota (via criação de processo)
Visualizar
Modificações Suspeitas no Firewall via CLI (via linha de comando)
Visualizar
Detectar Modificação de Registro para Habilitar Conexões RDP [Evento de Registro do Windows]
Visualizar
Detecção de RDP Exposto e Modificação de Regras de Firewall [Firewall]
Visualizar
Execução de Simulação
Pré-requisito: O Check de Pré-vôo de Telemetria & Baseline deve ter passado.
Justificativa: 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 a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa de Ataque & Comandos:
-
Reconhecimento (T1016.001): O adversário realiza uma varredura rápida do sub-rede alvo para identificar hosts com a porta 3389 aberta, usando
Test-NetConnectionem um loop. -
Escalação de Privilégio / Manipulação de Firewall (T1021.001): Tendo obtido direitos de administrador local, o atacante usa
netsh.exepara adicionar uma regra de firewall de entrada permissiva para RDP, expondo assim o serviço à internet. - Verificação Pós-criação: O atacante lista as regras do firewall para confirmar que a nova entrada existe, então inicia uma sessão RDP (fora do escopo deste teste).
-
Reconhecimento (T1016.001): O adversário realiza uma varredura rápida do sub-rede alvo para identificar hosts com a porta 3389 aberta, usando
-
Script de Teste de Regressão:
#--------------------------------------------------------- # Atividade Simulada do Adversário – Exposição RDP via netsh #--------------------------------------------------------- # 1. Escaneie a sub-rede local /24 para portas RDP abertas (recon benigno) $subnet = "10.0.0." 1..254 | ForEach-Object { $ip = "$subnet$_" $result = Test-NetConnection -ComputerName $ip -Port 3389 -WarningAction SilentlyContinue if ($result.TcpTestSucceeded) { Write-Host "[+] RDP aberto em $ip" } } # 2. Adicione uma regra de firewall que permita RDP de entrada de qualquer endereço $ruleName = "TempAllowRDP_$(Get-Random -Maximum 10000)" $netshCmd = "advfirewall firewall add rule name=`"$ruleName`" dir=in action=allow protocol=TCP localport=3389" Write-Host "`n[+] Criando regra de firewall via netsh..." Start-Process -FilePath "$env:SystemRootSystem32netsh.exe" -ArgumentList $netshCmd -Wait -NoNewWindow # 3. Verifique se a regra existe (opcional, ajuda a confirmar telemetria) netsh advfirewall firewall show rule name=$ruleName # Fim do ataque simulado -
Comandos de Limpeza:
#--------------------------------------------------------- # Remova a regra de firewall temporária criada durante o teste #--------------------------------------------------------- $rulePrefix = "TempAllowRDP_" $rules = netsh advfirewall firewall show rule name=all | Select-String -Pattern $rulePrefix | ForEach-Object { ($_ -split 's+')[0] } foreach ($r in $rules) { Write-Host "[*] Excluindo regra $r" netsh advfirewall firewall delete rule name=$r }