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