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