# T1556.002 - Password Filter DLL
> [!danger] Técnica de Acesso a Credenciais
> **Tática:** Credential Access · **ID:** T1556.002 · **Plataforma:** Windows
> Adversários registram DLLs maliciosas no processo de válidação de senhas para capturar credenciais em texto plano diretamente da LSA.
## Descrição
A técnica **Password Filter DLL** (T1556.002) consiste no registro de bibliotecas de vínculo dinâmico (DLLs) maliciosas no processo de autenticação do Windows para capturar credenciais de usuários no momento em que são válidadas. É uma sub-técnica de [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]].
Os filtros de senha do Windows são mecanismos de aplicação de políticas de senha para contas locais e de domínio. Eles são implementados como DLLs que contêm métodos para válidar potenciais senhas contra as políticas vigentes. Os filtros podem ser posicionados em computadores locais (para contas locais) e/ou em controladores de domínio (para contas de domínio). Antes de registrar novas senhas no **Security Accounts Manager (SAM)**, a **Local Security Authority (LSA)** solicita válidação de cada filtro registrado. Nenhuma alteração de senha pode entrar em vigor até que todos os filtros registrados confirmem a válidação.
Um adversário que registra uma DLL maliciosa como filtro de senha receberá as credenciais em **texto plano** toda vez que ocorrer uma solicitação de troca ou válidação de senha. Isso torna a técnica extremamente eficaz para coleta persistente de credenciais sem necessidade de interação adicional com o alvo.
Grupos como [[g0049-oilrig|OilRig]] e [[g0041-strider|Strider]] utilizaram variantes desta técnica em operações de espionagem de longa duração, implantando filtros maliciosos em controladores de domínio para capturar credenciais privilegiadas de toda a organização. O malware [[s0125-remsec|Remsec]], associado ao grupo Strider, é um exemplo documentado de tooling que abusa desse mecanismo.
A técnica é especialmente perigosa por duas razões: (1) opera dentro de um mecanismo legítimo do Windows, tornando a detecção difícil; e (2) captura senhas em texto plano - não hashes - eliminando a necessidade de cracking offline.
## Como Funciona
O mecanismo de filtros de senha do Windows funciona da seguinte forma:
1. **Registro da DLL:** Os filtros de senha são registrados na chave de registro `HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages`. O adversário adiciona o nome da DLL maliciosa a essa chave.
2. **Carregamento pela LSA:** Após reinicialização (ou em alguns casos com injeção direta), a LSA (`lsass.exe`) carrega a DLL maliciosa em seu espaço de processo.
3. **Interceptação de senhas:** A DLL implementa três funções exportadas obrigatórias:
- `InitializeChangeNotify` - chamada na inicialização
- `PasswordFilter` - chamada para válidar a nova senha (recebe credencial em plaintext)
- `PasswordChangeNotify` - chamada após mudança confirmada (recebe usuário, hash e plaintext)
4. **Exfiltração:** A DLL maliciosa captura o plaintext da senha e o exfiltra - via arquivo local, named pipe, socket de rede ou outro canal de comunicação.
5. **Validação falsa:** Para não interromper o fluxo normal, a DLL retorna `TRUE` para `PasswordFilter`, aprovando a mudança e evitando detecção por comportamento anômalo.
O fato de a DLL ser carregada dentro do processo `lsass.exe` significa que ela opera com os mesmos privilégios do sistema que a LSA possui - o que é extremamente elevado. Qualquer comprometimento do `lsass.exe` também compromete todos os filtros registrados.
**Requisito de permissão:** Para registrar a DLL maliciosa, o adversário precisa de privilégios de administrador local (ou de domínio, se o alvo for um DC). A chave de registro `HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages` requer acesso de escrita de nível administrativo.
**Requisito de reinicialização:** Em configurações padrão, a nova DLL é carregada somente após a reinicialização do sistema. Adversários sofisticados podem contornar isso com injeção direta no processo `lsass.exe`.
## Attack Flow
```mermaid
graph TB
A["Acesso Inicial<br/>(Admin Local/Domínio)"] --> B["Escrita na Chave de Registro<br/>HKLM\\...\\Lsa\\Notification Packages"]
B --> C["DLL Maliciosa Copiada<br/>para %SystemRoot%\\System32"]
C --> D["Reinicialização ou<br/>Injeção no lsass.exe"]
D --> E["LSA Carrega Password Filter<br/>Malicioso em lsass.exe"]
E --> F["Usuário Troca de Senha<br/>ou Autentica"]
F --> G["PasswordFilter() Chamada<br/>com Plaintext da Senha"]
G --> H["DLL Captura Credencial<br/>em Texto Plano"]
H --> I{"Canal de Exfiltração"}
I --> J["Arquivo Local Criptografado"]
I --> K["Named Pipe / Socket"]
I --> L["Comúnicação C2"]
J --> M["Coleta Offline pelo Adversário"]
K --> M
L --> M
M --> N["Credential Access Completo<br/>Persistência Estabelecida"]
```
## Exemplos de Uso
### OilRig (APT34)
O grupo iraniano [[g0049-oilrig|OilRig]], também conhecido como APT34, utilizou filtros de senha maliciosos em campanhas de espionagem direcionadas ao Oriente Médio e setores de energia. O grupo registrava DLLs em controladores de domínio para capturar credenciais de administradores de domínio, permitindo movimento lateral extensivo sem ativar alertas de brute force ou pass-the-hash.
### Strider / Sauron
O grupo [[g0041-strider|Strider]], também conhecido como ProjectSauron, é um dos atores mais sofisticados documentados usando esta técnica. O malware [[s0125-remsec|Remsec]] inclui um módulo específico de password filter que:
- Registra-se como filtro legítimo
- Captura todas as trocas de senha no DC
- Criptografa os dados coletados antes de armazenar
- Usa canais de comunicação steganográficos para exfiltração
O Strider operou por anos sem detecção em redes governamentais de alto valor, incluindo agências russas e europeias.
### Cenário de Comprometimento de DC
Em cenários de comprometimento de Active Directory, esta técnica é frequentemente combinada com:
- [[t1003-001-lsass-memory|T1003.001 - LSASS Memory]] para dump inicial de hashes
- [[t1098-account-manipulation|T1098 - Account Manipulation]] para persistência de contas
- [[t1078-valid-accounts|T1078 - Valid Accounts]] para uso das credenciais coletadas
O impacto em um ambiente corporativo pode ser catastrófico: um único filtro malicioso em um DC primário captura todas as senhas de todos os usuários do domínio conforme são trocadas.
## Detecção
### Monitoramento de Registro
A detecção primária é via monitoramento da chave de registro onde os filtros são registrados:
```yaml
title: Password Filter DLL Registered
id: 9f5c45dc-9c23-4b7e-a6e1-2b4c3d5f6e7a
status: experimental
description: Detecta registro de novos filtros de senha na chave LSA Notification Packages
logsource:
category: registry_set
product: windows
detection:
selection:
TargetObject|contains: 'SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages'
EventType: SetValue
filter_legitimate:
Details|contains:
- 'rassfm'
- 'scecli'
- 'wdigest'
condition: selection and not filter_legitimate
level: high
tags:
- attack.credential_access
- attack.t1556.002
falsepositives:
- Instalação legítima de software de segurança ou gestão de identidade
- Alterações durante implantação de políticas corporativas de senha
```
### Monitoramento de DLL Carregada no LSASS
```yaml
title: Suspicious DLL Loaded by LSASS
id: 8a3f12bc-4d9e-5c2a-b7f3-1e4d6a8c9b2f
status: experimental
description: Detecta carregamento de DLLs suspeitas pelo processo lsass.exe
logsource:
category: image_load
product: windows
detection:
selection:
Image|endswith: '\lsass.exe'
ImageLoaded|contains:
- '\Temp\'
- '\AppData\'
- '\Users\'
filter_system:
ImageLoaded|startswith: 'C:\Windows\System32\'
condition: selection and not filter_system
level: high
tags:
- attack.credential_access
- attack.t1556.002
```
### Fontes de Dados Recomendadas
| Fonte | Evento | O Que Monitorar |
|-------|--------|-----------------|
| Windows Registry | EventID 4657, Sysmon 13 | Modificações em `HKLM\...\Lsa\Notification Packages` |
| Module Load | Sysmon EventID 7 | DLLs carregadas por `lsass.exe` |
| Process Creation | Sysmon EventID 1 | Processos que escrevem em `System32` |
| Windows Security | EventID 4616 | Alteração de configuração de segurança do sistema |
| File Creation | Sysmon EventID 11 | Novos arquivos `.dll` em `%SystemRoot%\System32` |
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| [[m1028-operating-system-configuration\|M1028]] | Operating System Configuration | Configurar AppLocker ou WDAC para restringir quais DLLs podem ser carregadas pelo `lsass.exe`. Habilitar o modo de processo protegido da LSA (RunAsPPL) para impedir injeção não autorizada. |
### Controles Adicionais Recomendados
- **Habilitar LSA Protection (PPL):** Configure `HKLM\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL = 1` para impedir que DLLs não assinadas sejam carregadas pela LSA.
- **Credential Guard:** Habilitar Windows Credential Guard isola as credenciais em um ambiente virtualizado, dificultando a captura via filtros maliciosos.
- **Princípio de Menor Privilégio:** Limitar quem pode escrever em `HKLM\SYSTEM\CurrentControlSet\Control\Lsa` - apenas administradores de domínio devem ter acesso.
- **Auditoria de Controladores de Domínio:** Monitorar todos os DCs para modificações na lista de filtros de senha. Qualquer alteração deve gerar alerta imediato.
- **Inventário de Filtros Legítimos:** Manter lista autorizada dos filtros esperados (ex: `rassfm`, `scecli`) e alertar para qualquer adição não autorizada.
## Contexto Brasil/LATAM
No contexto brasileiro e latino-americano, a técnica T1556.002 é particularmente relevante para:
**Setor Financeiro:** Bancos e instituições financeiras brasileiras operam grandes ambientes de Active Directory com centenas de controladores de domínio. Um único filtro malicioso em um DC de alta disponibilidade pode comprometer credenciais de toda a infraestrutura em questão de dias.
**Grupos APT com Nexo LATAM:** Grupos como [[g0049-oilrig|OilRig]] com histórico de operações em setores de energia (Petrobras e similares) têm motivação para empregar técnicas de coleta persistente de credenciais. O perfil de alvos do setor de óleo e gás no Brasil se alinha com os interesses documentados desses atores.
**Ambientes Governamentais:** Órgãos do governo federal brasileiro utilizam Windows Active Directory em larga escala. Ataques a credenciais administrativas podem viabilizar espionagem de longa duração - padrão documentado do grupo [[g0041-strider|Strider]] em agências governamentais europeias.
**Resposta a Incidentes:** Equipes de IR brasileiras devem incluir verificação da chave `HKLM\...\Lsa\Notification Packages` em seus runbooks de comprometimento de AD, especialmente quando há suspeita de presença prolongada de adversário (living-off-the-land).
**Ferramentas de Red Team:** O uso de frameworks como [[mimikatz|Mimikatz]] e variantes customizadas para registro de filtros de senha está crescendo em simulações de adversário realizadas por pentesters no Brasil, indicando que a técnica está no radar ofensivo local.
## Referências
- [MITRE ATT&CK - T1556.002: Password Filter DLL](https://attack.mitre.org/techniques/T1556/002)
- [Microsoft - Password Filter Programming Considerations](https://docs.microsoft.com/en-us/windows/win32/secmgmt/password-filter-programming-considerations)
- [Securelist - ProjectSauron/Strider](https://securelist.com/faq-the-projectsauron-apt/75533/)
- [CrowdStrike - OilRig/APT34 Tactics](https://www.crowdstrike.com/blog/apt34-tactics-techniques-and-procedures/)
- [SpecterOps - Credential Access via Password Filter](https://posts.specterops.io/password-filter-persistence-with-the-lsa-credential-access-83fb7ae37718)
- [[s0125-remsec|Remsec]] - Malware associado ao grupo Strider
- [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]] - Técnica pai
- [[m1028-operating-system-configuration|M1028 - Operating System Configuration]] - Mitigação principal
- [[t1003-001-lsass-memory|T1003.001 - LSASS Memory]] - Técnica relacionada
- [[t1078-valid-accounts|T1078 - Valid Accounts]] - Uso das credenciais coletadas
---
*Fonte: [MITRE ATT&CK - T1556.002](https://attack.mitre.org/techniques/T1556/002)*