# T1547.003 - Time Providers
## Técnica Pai
[[t1547-boot-logon-autostart-execution|T1547 - Boot or Logon Autostart Execution]]
## Descrição
Adversários podem abusar do mecanismo de provedores de tempo do Windows para executar DLLs maliciosas na inicialização do sistema com alto grau de furtividade. O serviço Windows Time (`W32Time`) é responsável pela sincronização de horário entre máquinas em um domínio - um componente indispensável em ambientes [[active-directory|Active Directory]], onde a diferença de horário entre cliente e controlador de domínio afeta diretamente a autenticação [[t1558-steal-or-forge-kerberos-tickets|Kerberos]].
Os provedores de tempo são implementados como bibliotecas DLL registradas em subchaves do Registro Windows em `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\TimeProviders\`. O Service Control Manager carrega e inicia as DLLs listadas nessa chave durante a inicialização do sistema. Adversários abusam dessa arquitetura criando uma nova subchave com o valor `DllName` apontando para uma DLL maliciosa - que será carregada junto com o serviço W32Time a cada boot, sem exigir agendamento de tarefa ou modificação de binários do sistema.
O mecanismo é especialmente valioso porque o serviço `W32Time` é nativo, onipresente em ambientes Windows corporativos e raramente monitorado em profundidade. A DLL maliciosa é carregada dentro de um processo de sistema confiável, dificultando detecção por soluções que analisam apenas processos iniciados pelo usuário.
## Como Funciona
A criação de uma nova subchave em `W32Time\TimeProviders\` exige **privilégios de administrador**. Uma vez registrada, a DLL maliciosa é executada no contexto da conta `Local Service` - com privilégios limitados, mas suficientes para executar código persistentemente e interagir com recursos de rede locais.
O fluxo de abuso segue dois caminhos possíveis:
**Via reinicialização (boot):** O Service Control Manager inicializa o serviço W32Time durante o boot, que por sua vez carrega todas as DLLs registradas em suas subchaves, incluindo a maliciosa.
**Via API sem reinicialização:** A DLL pode ser carregada dinâmicamente através da função `AddSecurityPackage` da Windows API, permitindo que o adversário ative a persistência imediatamente após o comprometimento, sem aguardar o próximo boot.
Esse duplo mecanismo de ativação torna a técnica flexível: o adversário pode escolher entre ativação imediata (para estabelecer presença rapidamente) ou ativação no boot (para persistência de longo prazo).
## Attack Flow
```mermaid
graph TB
A[Adversário obtém<br/>privilégios administrativos] --> B[Cria subchave maliciosa em<br/>W32Time\\TimeProviders\\]
B --> C[Define DllName apontando<br/>para DLL maliciosa]
C --> D{Modo de ativação}
D --> E[Reinicialização do sistema<br/>next boot]
D --> F[Chamada imediata à API<br/>AddSecurityPackage]
E --> G[Service Control Manager<br/>inicializa W32Time]
F --> G
G --> H[W32Time carrega DLL<br/>maliciosa registrada]
H --> I[Execução no contexto<br/>de Local Service]
I --> J[Persistência ativa<br/>a cada boot]
J --> K[C2, coleta de dados<br/>ou movimento lateral]
```
## Exemplos de Uso
### Grupos APT com Foco em Active Directory
Embora casos públicos atribuídos a grupos específicos para esta sub-técnica sejam menos documentados que variantes como [[t1547-005-security-support-provider|T1547.005 - Security Support Provider]], a mecânica é funcionalmente semelhante. Grupos que operam em ambientes Windows AD de longa duração - como o [[g0016-apt29|APT29]] (Cozy Bear) - utilizam técnicas de persistência via DLL registrada em serviços de sistema como parte de seu arsenal de acesso de longo prazo. A escolha por W32Time é consistente com o padrão operacional de grupos que priorizam furtividade sobre velocidade.
### Uso com Ferramentas de Pós-Exploração
O [[s0154-cobalt-strike|Cobalt Strike]] e o [[mimikatz|Mimikatz]] incluem funcionalidades para explorar mecanismos relacionados ao LSA e a serviços de sistema para persistência similar. Em operações documentadas de ransomware-as-a-service, operadores utilizam W32Time e mecanismos adjacentes como parte do processo de estabelecer persistência antes da fase de exfiltração e criptografia - garantindo que mesmo que o vetor inicial sejá detectado e bloqueado, o acesso ao ambiente sejá mantido.
### Cenário de Ataque a Infraestrutura Crítica
Em ataques a infraestrutura crítica - segmento particularmente visado no [[_sectors|setor de energia]] e [[telecommunications|telecomúnicações]] no Brasil - a técnica permite que adversários mantenham acesso persistente em servidores Windows que raramente são reiniciados, beneficiando-se do fato de que `W32Time` é um serviço cujá modificação de registro passa despercebida em auditorias superficiais. A combinação com [[t1036-masquerading|T1036 - Masquerading]] para nomear a DLL maliciosa de forma similar a componentes legítimos aumenta a evasão.
## Detecção
```yaml
title: Detecção de Time Provider DLL Maliciosa
status: experimental
logsource:
category: registry_event
product: windows
detection:
selection_key:
TargetObject|contains: '\Services\W32Time\TimeProviders\'
EventType:
- CreateKey
- SetValue
filter_known_providers:
TargetObject|endswith:
- '\NtpClient'
- '\NtpServer'
- '\VMICTimeProvider'
condition: selection_key and not filter_known_providers
level: high
tags:
- attack.persistence
- attack.t1547.003
```
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| [[m1024-restrict-registry-permissions\|M1024]] | Restrict Registry Permissions | Restringir permissões de escrita na chave `W32Time\TimeProviders` apenas a contas SYSTEM e administradores com monitoramento ativo de mudanças via SACL |
| [[m1022-restrict-file-and-directory-permissions\|M1022]] | Restrict File and Directory Permissions | Limitar gravação em diretórios do sistema (`System32`, `SysWOW64`) onde DLLs de provedores de tempo costumam residir; bloquear gravação em caminhos não padrão por contas de serviço |
## Contexto Brasil/LATAM
No Brasil, ambientes Windows Active Directory são predominantes em organizações de médio e grande porte - incluindo órgãos governamentais, instituições financeiras e operadoras de infraestrutura crítica. A dependência do W32Time para sincronização Kerberos nestes ambientes garante que o serviço estejá sempre ativo e raramente sejá objeto de monitoramento específico por equipes de SOC.
A técnica é especialmente relevante em operações de espionagem de longo prazo direcionadas a órgãos do [[government|governo]] federal brasileiro e a empresas do [[_sectors|setor de energia]] - alvos tradicionais de grupos de APT com nexo estatal. A ausência de logs de carregamento de módulos DLL na maioria das configurações padrão de SIEM brasileiros cria uma lacuna de visibilidade que grupos sofisticados exploram sistematicamente. Recomenda-se a implementação de Sysmon com regras específicas para monitoramento de carregamento de DLLs por `svchost.exe`.
## Referências
- [[t1547-boot-logon-autostart-execution|T1547 - Boot or Logon Autostart Execution]] - técnica pai
- [[t1547-005-security-support-provider|T1547.005 - Security Support Provider]] - variante similar via LSA
- [[t1547-008-lsass-driver|T1547.008 - LSASS Driver]] - driver registrado no processo LSASS
- [[t1547-002-authentication-package|T1547.002 - Authentication Package]] - DLL de pacote de autenticação no boot
- [[m1024-restrict-registry-permissions|M1024 - Restrict Registry Permissions]] - mitigação principal
- [[m1022-restrict-file-and-directory-permissions|M1022 - Restrict File and Directory Permissions]] - proteção de diretórios DLL
- [[s0154-cobalt-strike|Cobalt Strike]] - framework com técnicas adjacentes de persistência via serviços
- [[mimikatz|Mimikatz]] - ferramenta com funcionalidades de persistência via LSA e serviços de sistema
- [[t1558-steal-or-forge-kerberos-tickets|T1558 - Steal or Forge Kerberos Tickets]] - técnica relacionada ao contexto Kerberos/AD
*Fonte: MITRE ATT&CK - T1547.003 Time Providers, v16.2*