# 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)*