# T1505.005 - DLL do Terminal Services ## Técnica Pai Esta é uma sub-técnica de [[t1505-server-software-component|T1505 - Componente de Software Servidor]]. ## Descrição Adversários abusam de componentes do Terminal Services do Windows para estabelecer acesso persistente e remoto a sistemas comprometidos. O Terminal Services - renomeado para Remote Desktop Services (RDS) em versões mais recentes do Windows Server - permite conexões remotas com interface gráfica interativa completa via protocolo RDP, sendo um dos serviços mais críticos em ambientes corporativos Windows. O serviço Terminal Services é executado como processo genérico `svchost.exe` e carrega sua lógica principal a partir de uma DLL registrada na chave de registro `HKLM\System\CurrentControlSet\services\TermService\Parameters\ServiceDll`, cujo valor padrão aponta para `%SystemRoot%\System32\termsrv.dll`. Adversários podem substituir ou modificar esta DLL para executar payloads arbitrários toda vez que o serviço for iniciado - inclusive na inicialização do sistema - sem criar novos serviços ou chaves de registro suspeitas. Além da persistência, esta técnica permite habilitar recursos normalmente bloqueados do RDP, como sessões simultâneas em sistemas Windows não-servidor. Ao modificar ou redirecionar o `ServiceDll`, o adversário pode contornar avisos de sobreposição de sessão, evitar que usuários legítimos sejam desconectados e manter acesso remoto stealth via [[t1021-001-remote-desktop-protocol|RDP]] sem acionar alertas convencionais de segurança. **Contexto Brasil/LATAM:** Ambientes corporativos brasileiros fazem uso intenso de RDP para administração remota, especialmente em empresas de médio porte com infraestrutura Windows legada. Grupos de ransomware e operadores de acesso inicial (IABs) ativos na América Latina frequentemente exploram o RDP como vetor de entrada e subsequentemente manipulam componentes do Terminal Services para garantir persistência silenciosa antes de monetizar o acesso. A combinação desta técnica com [[t1021-001-remote-desktop-protocol|RDP]] e credenciais válidas é um padrão recorrente em incidentes de ransomware no Brasil. ## Attack Flow ```mermaid graph TB A["Acesso inicial com privilégios<br/>(RDP brute force / credencial válida)"] --> B["Modificação do ServiceDll<br/>no registro do TermService"] B --> C["DLL maliciosa carregada<br/>pelo svchost.exe - ESTA TÉCNICA"] C --> D["Payload executado a cada<br/>reinício do serviço / sistema"] D --> E["Sessões RDP simultâneas<br/>sem aviso ao usuário legítimo"] E --> F["Persistência stealth<br/>e movimentação lateral"] ``` ## Como Funciona 1. **Preparação** - O adversário obtém privilégios administrativos (ou SYSTEM) no alvo e prepara uma DLL maliciosa que pode preservar parcialmente a funcionalidade original do `termsrv.dll` para evitar detecção por falhas no serviço. 2. **Execução** - A chave de registro `ServiceDll` do TermService é alterada para apontar para a DLL maliciosa, ou o arquivo `termsrv.dll` é diretamente substituído/patcheado em disco. 3. **Persistência** - A cada inicialização do sistema ou reinício do serviço TermService, o `svchost.exe` carrega a DLL modificada, executando o payload do adversário com privilégios SYSTEM. 4. **Pós-execução** - O adversário pode habilitar múltiplas sessões RDP simultâneas, instalar um backdoor adicional via a DLL, ou usar o acesso persistente para movimentação lateral na rede. **Exemplo - Alteração da chave de registro ServiceDll:** ```powershell # Verificar o valor atual (para backup) reg query "HKLM\SYSTEM\CurrentControlSet\services\TermService\Parameters" /v ServiceDll # Valor padrão legítimo: # ServiceDll = %SystemRoot%\System32\termsrv.dll # Após comprometimento, adversário altera para DLL maliciosa: # ServiceDll = C:\Windows\System32\malicious.dll ``` ## Detecção **Fontes de dados:** Monitoramento de alterações em chaves de registro do TermService, auditoria de integridade de arquivos em `%SystemRoot%\System32\` (especialmente `termsrv.dll`), logs de carregamento de imagens de DLL pelo `svchost.exe`, eventos de modificação do registro (Event ID 4657), alertas de EDR sobre DLLs não assinadas carregadas por processos de sistema. ```yaml title: Modificação da ServiceDll do Terminal Services id: b3c8f2a1-5e9d-4b7f-a3e2-4d7c8f9b0c1d status: experimental logsource: category: registry_set product: windows detection: selection: TargetObject|contains: '\services\TermService\Parameters\ServiceDll' filter_legitimate: Details|contains: 'termsrv.dll' condition: selection and not filter_legitimate falsepositives: - Ferramentas legítimas de patch de RDP para múltiplas sessões (RDPWrap) - Administração remota corporativa com DLLs customizadas aprovadas level: high tags: - attack.persistence - attack.t1505.005 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1047-audit\|M1047 - Audit]] | Monitorar continuamente o valor da chave `HKLM\SYSTEM\CurrentControlSet\services\TermService\Parameters\ServiceDll`; alertar qualquer desvio do valor padrão `termsrv.dll` | | [[m1024-restrict-registry-permissions\|M1024 - Restrict Registry Permissions]] | Restringir permissões de escrita na chave de registro do TermService a contas SYSTEM e administradores específicos; remover permissões desnecessárias de usuários privilegiados | ## Relações com Outras Técnicas - [[t1021-001-remote-desktop-protocol|T1021.001 - Remote Desktop Protocol]] - vetor de acesso frequentemente combinado com esta técnica - [[t1543-003-windows-service|T1543.003 - Windows Service]] - técnica relacionada de persistência via serviços Windows - [[t1505-server-software-component|T1505 - Server Software Component]] - técnica pai desta sub-técnica - [[ta0003-persistence|TA0003 - Persistence]] - tática MITRE ATT&CK à qual esta técnica pertence --- *Fonte: [MITRE ATT&CK - T1505.005](https://attack.mitre.org/techniques/T1505/005)*