# T1547.010 - Port Monitors
## Técnica Pai
Esta é uma sub-técnica de [[t1547-boot-logon-autostart-execution|T1547 - Boot or Logon Autostart Execution]].
## Descrição
Adversários podem explorar o mecanismo de **port monitors** do Windows para carregar uma DLL maliciosa durante a inicialização do sistema, obtendo persistência com privilégios de SYSTEM. Port monitors são componentes do subsistema de impressão do Windows responsáveis por gerenciar a comunicação entre o spooler de impressão e dispositivos físicos ou portas de rede - por exemplo, "Local Port", "Standard TCP/IP Port" e "USB Monitor" são monitores legítimos registrados por padrão.
O mecanismo de abuso envolve o registro de um novo monitor na chave de registro `HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors`, onde a entrada `Driver` aponta para uma DLL localizada em `C:\Windows\System32`. Quando o sistema inicializa, o serviço de spooler (`spoolsv.exe`) carrega automaticamente todas as DLLs registradas nessa chave sob o contexto de SYSTEM - sem autenticação adicional e antes que ferramentas de segurança convencionais estejam totalmente ativas. Alternativamente, a API `AddMonitor` pode ser chamada programaticamente para registrar o monitor sem edição direta do registro.
A técnica é particularmente eficaz porque o serviço de spooler raramente é monitorado como vetor de persistência, o carregamento de DLLs via spooler é um comportamento esperado do sistema, e a chave de registro `Print\Monitors` não é auditada por padrão na maioria das configurações corporativas. A DLL maliciosa pode implementar quaisquer funcionalidades - shellcode loader, reverse shell, coletor de credenciais - executando continuamente em segundo plano com os maiores privilégios do sistema.
**Contexto Brasil/LATAM:** Embora não hajá grupos específicos da região documentados usando T1547.010 de forma primária, a técnica é um componente documentado em kits de pós-exploração utilizados por grupos de ransomware que operam na América Latina, como variantes do [[lockbit|LockBit]] e [[blackbasta|Black Basta]]. Ambientes corporativos brasileiros com infraestrutura de impressão legada tendem a ter permissões permissivas na chave `Print\Monitors`, ampliando a superfície de ataque. O [[t1569-002-service-execution|serviço de spooler]] já foi alvo de exploits críticos como o [[cve-2021-34527|PrintNightmare (CVE-2021-34527)]], o que demonstra o risco sistêmico desta área.
## Attack Flow
```mermaid
graph TB
A[Acesso Inicial / Elevação de Privilégios<br/>T1078 ou T1068] --> B[Escrita de DLL Maliciosa<br/>em C:\\Windows\\System32]
B --> C[ESTA TÉCNICA<br/>T1547.010 - Port Monitors<br/>Registro em Print\\Monitors]
C --> D[Reinicialização do Sistema<br/>ou Restart do Spooler]
D --> E[spoolsv.exe carrega DLL<br/>em contexto SYSTEM]
E --> F1[Execução de Payload<br/>C2 / Backdoor]
E --> F2[Coleta de Credenciais<br/>T1003 - OS Credential Dumping]
F1 --> G[Persistência Estabelecida<br/>Sobrevive a reboots]
F2 --> G
```
## Como Funciona
1. **Preparação** - O adversário obtém privilégios de administrador local ou SYSTEM (via T1068 ou técnicas de escalação). Compila ou ajusta uma DLL maliciosa que implementa a interface de port monitor (`InitializePrintMonitor2` ou `InitializePrintMonitor`) e coloca o arquivo em `C:\Windows\System32` com um nome que imita componentes legítimos (ex: `winspool2.dll`, `printmon.dll`).
2. **Execução** - Registra o monitor via edição direta do registro ou chamada à API `AddMonitor`. O registro cria uma subchave em `HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\` com o valor `Driver` apontando para a DLL. Não é necessário interação do usuário - a DLL será carregada automaticamente pelo spooler no próximo boot ou reinicialização do serviço.
3. **Pós-execução** - A DLL é carregada em `spoolsv.exe` como SYSTEM. O adversário tem execução contínua, privilegiada e silenciosa a cada reinicialização. Para remoção encoberta, pode usar `DeleteMonitor` via API, apagando o rastro do registro antes de análise forense.
**Exemplo - Registro via PowerShell:**
```powershell
# Registrar monitor malicioso (requer privilégios de administrador)
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Print\Monitors\WindowsPrintHelper"
New-Item -Path $regPath -Force
New-ItemProperty -Path $regPath -Name "Driver" -Value "malicious_monitor.dll" -PropertyType String
# DLL deve estar em C:\Windows\System32\malicious_monitor.dll
```
## Detecção
**Fontes de dados:** Sysmon (Event ID 13 - Registry Value Set, Event ID 7 - Image Loaded), Windows Security Event Log, EDR com monitoramento de API calls
```yaml
title: Registro de Novo Port Monitor em Print\\Monitors
id: b7d4e230-19a3-4c8e-9b12-f3a5d8c6e901
status: experimental
logsource:
category: registry_set
product: windows
detection:
selection:
TargetObject|contains: "\\Control\\Print\\Monitors\\"
TargetObject|endswith: "\\Driver"
filter_legitimate:
Details|contains:
- "localspl.dll"
- "tcpmon.dll"
- "usbmon.dll"
- "win32spl.dll"
condition: selection and not filter_legitimate
falsepositives:
- Instalação de impressoras de rede legítimas
- Drivers de impressora de fabricantes homologados
level: high
tags:
- attack.persistence
- attack.t1547.010
```
## Mitigação
| Mitigação | Recomendação Prática |
|-----------|---------------------|
| [[m1024-restrict-registry-permissions\|M1024 - Restrict Registry Permissions]] | Aplicar ACLs restritivas na chave `HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors` para impedir escrita por contas que não sejam SYSTEM e administradores explicitamente aprovados; auditar modificações com Sysmon Event ID 13 |
| [[Antimalware]] | Garantir que a solução EDR monitore carregamento de módulos pelo `spoolsv.exe` (Sysmon Event ID 7) e alerte para DLLs não assinadas ou com editores desconhecidos carregadas pelo spooler de impressão |
## Referências
*Fonte: [MITRE ATT&CK - T1547.010](https://attack.mitre.org/techniques/T1547/010)*