# T1556.008 - Network Provider DLL > [!info] Técnica MITRE ATT&CK > **Tática:** [[_credential-access|Credential Access]] | **ID:** T1556.008 | **Plataforma:** Windows > **Técnica pai:** [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]] ## Descrição Adversários podem registrar **DLLs (Dynamic Link Libraries) maliciosas de Network Provider** para capturar credenciais de usuários em texto claro durante o processo de autenticação do Windows. Esse mecanismo explora uma funcionalidade legítima do sistema operacional que permite que provedores de rede personalizados se integrem ao processo de logon do Windows. O Windows utiliza o subsistema de autenticação gerenciado pelo processo `Winlogon`, que coordena o logon interativo e notifica outros componentes do sistema quando um usuário autentica com sucesso. Parte desse fluxo envolve o processo `mpnotify.exe` (Multiple Provider Router Notification), que é responsável por distribuir as credenciais em texto claro para todos os gerenciadores de credenciais registrados via RPC (Remote Procedure Call). Quando uma DLL maliciosa é registrada como Network Provider - adicionando sua entrada na chave de registro `HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order` - ela passa a fazer parte do processo de notificação de logon. A cada novo logon no sistema, o `mpnotify.exe` chama a função `NPLogonNotify()` exportada por cada DLL registrada, passando as credenciais em formato legível. O adversário, portanto, tem acesso ao nome de usuário, domínio e senha em texto claro sem precisar realizar qualquer técnica de interceptação ou quebra de hash. Esse ataque é particularmente eficaz em ambientes corporativos Windows, especialmente quando aplicado a **servidores** e **controladores de domínio** - máquinas que experimentam alto volume de autenticações de administradores e usuários privilegiados. A persistência da DLL é garantida pelo registro no sistema, e a coleta de credenciais é silenciosa e difícil de detectar sem monitoramento específico de integridade de DLLs e alterações no registro. A técnica é uma sub-variante de [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]], que abrange diferentes formas pelas quais adversários modificam componentes de autenticação para capturar credenciais ou criar backdoors persistentes no processo de login. > [!warning] Impacto > Credenciais capturadas via Network Provider DLL são obtidas em texto claro, o que as torna imediatamente utilizáveis - sem necessidade de quebra de hash (pass-the-hash) ou técnicas adicionais de cracking. Um único logon de administrador de domínio em uma máquina comprometida pode resultar em comprometimento total do Active Directory. ## Como Funciona O ataque explora a arquitetura de **Multiple Provider Router (MPR)** do Windows, que foi projetada para permitir que múltiplos provedores de rede (ex: SMB, WebDAV, NetWare) coexistam e sejam notificados de eventos de autenticação. O mecanismo funciona da seguinte forma: **1. Registro da DLL maliciosa** O adversário, com privilégios administrativos, registra sua DLL como provedor de rede modificando as chaves de registro: - `HKLM\SYSTEM\CurrentControlSet\Services\{ProviderName}` - define o serviço - `HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order` - adiciona o provedor à lista de ordem - `HKLM\SYSTEM\CurrentControlSet\Services\{ProviderName}\NetworkProvider` - específica o caminho da DLL e a classe de provedor **2. Notificação de logon pelo `mpnotify.exe`** Quando o usuário faz logon, `Winlogon` inicia `mpnotify.exe`, que enumera todos os provedores registrados e chama sequencialmente a função `NPLogonNotify()` em cada DLL registrada, passando uma estrutura `MSV1_0_INTERACTIVE_LOGON` contendo: - `LogonDomainName` (nome do domínio) - `UserName` (nome do usuário) - `Password` (senha em texto claro) **3. Coleta e exfiltração** A DLL maliciosa recebe a estrutura de credenciais, extrai os campos de interesse e pode: - Gravar em arquivo local (ex: `C:\Windows\Temp\creds.log`) - Transmitir via C2 (HTTP/S, DNS tunneling) - Armazenar em registro criptografado para posterior recuperação **4. Persistência garantida pelo registro** Como a DLL é carregada via registro do sistema na inicialização, a persistência é mantida através de reinicializações. Remoção requer exclusão manual das chaves de registro e deleção do arquivo DLL. O fluxo completo de autenticação e captura é demonstrado no diagrama abaixo. ## Attack Flow ```mermaid graph TB A["🎯 Acesso Inicial<br/>Phishing / Exploit"] --> B["⚡ Escalada de Privilégio<br/>Privilégios de Admin Local"] B --> C["📝 Criação da DLL Maliciosa<br/>Exporta NPLogonNotify()"] C --> D["🔑 Registro no Windows<br/>HKLM\\...\\NetworkProvider\\Order"] D --> E["💾 Cópia da DLL<br/>Diretório do Sistema"] E --> F["🔄 Aguarda Próximo Logon<br/>ou Força Reinicialização"] F --> G["👤 Usuário/Admin faz Logon<br/>Winlogon iniciado"] G --> H["📨 mpnotify.exe notifica<br/>todos os provedores"] H --> I["🪝 NPLogonNotify() invocada<br/>Credenciais em texto claro"] I --> J["📂 Credenciais Gravadas<br/>Arquivo local / Memória"] J --> K["📡 Exfiltração<br/>C2 / DNS / HTTP"] K --> L["💀 Comprometimento Total<br/>Movimento Lateral / Escalada AD"] style A fill:#ff6b6b,color:#fff style D fill:#ff9f43,color:#fff style I fill:#ee5a24,color:#fff style L fill:#c0392b,color:#fff ``` ## Exemplos de Uso Embora esta sub-técnica sejá relativamente nova no catálogo oficial do MITRE ATT&CK (adicionada em versões recentes), o mecanismo subjacente foi documentado em diversas pesquisas de segurança ofensiva: **Ferramenta de Pesquisa: NPPSpy** O projeto open-source `NPPSpy` (disponível públicamente no GitHub) é frequentemente referênciado como prova de conceito para essa técnica. Ele demonstra a criação de uma DLL de Network Provider funcional que registra credenciais em `C:\NPPSpy.txt` a cada logon. Esta ferramenta foi amplamente utilizada por red teams para válidar detecções e compreender o mecanismo. **Uso em Testes de Penetração** Frameworks como **Cobalt Strike** e operadores de red team documentaram o uso dessa técnica para coleta de credenciais em ambiente corporativo, especialmente após o comprometimento inicial de uma estação de trabalho para escalar para credenciais de administradores de domínio que fazem logon remotamente via RDP. **Relevância em Ataques a Controladores de Domínio** Em operações APT documentadas que envolvem comprometimento de [[active-directory|Active Directory]], a abordagem de plantar DLLs maliciosas em servidores de alta atividade de logon é consistente com o padrão de coleta de credenciais observado em grupos como [[g0016-apt29|APT29]] e outros atores de ameaça sofisticados, embora atribuição específica a T1556.008 ainda sejá limitada em relatórios públicos. > [!example] Cenário Típico de Ataque > 1. Adversário compromete estação de trabalho de helpdesk via [[t1566-phishing|phishing]] > 2. Escalada de privilégio via vulnerabilidade local > 3. Movimento lateral para servidor de arquivos com alta atividade de logon > 4. Instalação da DLL de Network Provider no servidor > 5. Em 24-48h, credenciais de múltiplos administradores de domínio capturadas > 6. Comprometimento total do [[active-directory|Active Directory]] e [[t1078-valid-accounts|uso de contas válidas]] ## Detecção A detecção eficaz requer monitoramento em múltiplas camadas: registro do Windows, integridade de arquivos DLL, e comportamento de processos. **Indicadores de Compromisso (IoCs) Comportamentais:** - Novas entradas em `HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order` não esperadas - DLLs desconhecidas carregadas pelo processo `mpnotify.exe` - Criação de arquivos de log em locais incomuns logo após eventos de logon (Event ID 4624) - Processos filho inesperados de `mpnotify.exe` com acesso à rede **Regra Sigma - Registro de Novo Network Provider:** ```yaml title: Suspicious Network Provider DLL Registration status: experimental description: Detecta registro de novo Network Provider DLL que pode indicar captura maliciosa de credenciais logsource: category: registry_set product: windows detection: selection: TargetObject|contains: - '\Control\NetworkProvider\Order' - '\Services\*\NetworkProvider\ProviderPath' filter_known: Details|contains: - 'msnp32.dll' - 'ntlanman.dll' - 'davclnt.dll' condition: selection and not filter_known level: high tags: - attack.credential_access - attack.t1556.008 falsepositives: - Instalação legítima de software de rede corporativo - VPN clients registrando provedores de rede ``` **Regra Sigma - Carregamento de DLL pelo mpnotify.exe:** ```yaml title: mpnotify.exe Loading Unknown DLL status: experimental description: Detecta mpnotify.exe carregando DLL de localização não padrão logsource: category: image_load product: windows detection: selection: Image|endswith: '\mpnotify.exe' filter_system: ImageLoaded|startswith: - 'C:\Windows\System32\' - 'C:\Windows\SysWOW64\' condition: selection and not filter_system level: high tags: - attack.credential_access - attack.t1556.008 ``` **Fontes de dados recomendadas:** - Windows Event Log: Security (Event ID 4624, 4625 - logon events) - Sysmon Event ID 13 (RegistryEvent - SetValue) - Sysmon Event ID 7 (ImageLoaded) - EDR: File Integrity Monitoring em `System32/` ## Mitigação | ID | Mitigação | Descrição | |---|-----------|-----------| | M1024 | [[m1024-restrict-registry-permissions\|M1024 - Restrict Registry Permissions]] | Restringir permissões de gravação nas chaves `HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider` para impedir que usuários não privilegiados registrem novos provedores. Apenas SYSTEM e administradores devem ter acesso de escrita. | | M1047 | [[m1047-audit\|M1047 - Audit]] | Realizar auditorias periódicas das DLLs registradas como Network Providers. Comparar a lista atual com uma baseline conhecida e alertar para qualquer adição inesperada. Ferramentas como Autoruns (Sysinternals) facilitam essa verificação. | | M1028 | [[m1028-operating-system-configuration\|M1028 - Operating System Configuration]] | Configurar Windows Defender Credential Guard para proteger credenciais em memória. Implementar LSA Protection (`RunAsPPL`) para dificultar o acesso não autorizado ao processo de autenticação. Usar AppLocker ou WDAC para restringir quais DLLs podem ser carregadas por processos de autenticação. | **Controles adicionais recomendados:** - Implementar [[t1078-valid-accounts|controle de contas privilegiadas]] com PAW (Privileged Access Workstation) - Monitorar e alertar sobre qualquer modificação no registro do `NetworkProvider` - Aplicar princípio de menor privilégio - administradores não devem fazer logon interativo em servidores comuns - Usar [[m1032-multi-factor-authentication|autenticação multifator]] para todas as contas privilegiadas ## Contexto Brasil/LATAM > [!tip] Relevância Regional > No Brasil, o cenário de ameaças a credenciais corporativas tem sido dominado por [[s0531-grandoreiro|Grandoreiro]], [[mekotio|Mekotio]] e outros trojans bancários focados em usuários finais. No entanto, a técnica de Network Provider DLL representa uma ameaça diferente: ela é utilizada por atores mais sofisticados em ataques direcionados a infraestrutura corporativa. O ambiente corporativo brasileiro apresenta características que tornam essa técnica particularmente relevante: **Alta prevalência de Windows em ambientes corporativos:** O Brasil lidera em adoção de sistemas Windows no setor empresarial na América Latina, com grande parte de empresas de médio e grande porte operando ambientes Active Directory. Isso cria uma superfície de ataque significativa para técnicas como T1556.008. **Infraestrutura governamental como alvo:** Órgãos governamentais federais, estaduais e municipais frequentemente operam com controladores de domínio e servidores de autenticação centralizados. Comprometimentos documentados pelo [[cert-br|CERT.br]] evidênciam interesse crescente de atores de ameaça em infraestrutura crítica brasileira. **Grupos de ransomware e acesso inicial:** Grupos como [[lockbit-operators|LockBit Operators]] e afiliados de ransomware que atuam na América Latina utilizam técnicas sofisticadas de coleta de credenciais para escalar privilégios antes de realizar a exfiltração de dados e criptografia. A coleta de credenciais de administradores de domínio via DLLs maliciosas se encaixa nesse padrão. **Setores mais expostos no Brasil:** - Setor financeiro (bancos, fintechs, seguradoras) - alto volume de logons privilegiados - Governo federal e estadual - ambientes AD complexos com múltiplos administradores - Telecomúnicações - infraestrutura crítica com servidores de autenticação centralizados - Energia e utilities - sistemas SCADA com integração Windows AD O [[cert-br|CERT.br]] e a [[anatel|Anatel]] têm públicado alertas sobre comprometimentos de infraestrutura Windows no Brasil, recomendando práticas de hardening que incluem monitoramento de modificações no registro do sistema - o que seria eficaz para detectar T1556.008. ## Referências - [MITRE ATT&CK - T1556.008](https://attack.mitre.org/techniques/T1556/008) - [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]] (técnica pai) - [[m1024-restrict-registry-permissions|M1024 - Restrict Registry Permissions]] - [[m1047-audit|M1047 - Audit]] - [[m1028-operating-system-configuration|M1028 - Operating System Configuration]] - [NPPSpy - Network Provider DLL PoC (GitHub)](https://github.com/gtworek/PSBits/tree/master/PasswordStealing/NPPSpy) - [Microsoft Docs - Network Provider API](https://docs.microsoft.com/en-us/windows/win32/secauthn/network-provider-api) - [[active-directory|Active Directory]] - Ambiente primário afetado por essa técnica - [[t1078-valid-accounts|T1078 - Valid Accounts]] - Uso das credenciais capturadas - [[t1550-002-pass-the-hash|T1550.002 - Pass the Hash]] - Alternativa para credenciais capturadas --- *Fonte: [MITRE ATT&CK - T1556.008](https://attack.mitre.org/techniques/T1556/008) | Versão: 16.2*