# T1556.003 - Pluggable Authentication Modules
> [!info] Técnica MITRE ATT&CK
> **Tática:** [[_credential-access|Credential Access]] | **ID:** T1556.003 | **Plataformas:** Linux, macOS
> **Técnica pai:** [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]]
## Descrição
Adversários podem modificar os **Pluggable Authentication Modules (PAM)** para obter credenciais de usuários ou criar backdoors persistentes no processo de autenticação de sistemas Linux e macOS. PAM é uma arquitetura modular e extensível de autenticação que serve como camada de abstração entre aplicações e os mecanismos de autenticação subjacentes do sistema operacional.
O PAM é amplamente utilizado em sistemas Unix-like para gerenciar autenticação em serviços como SSH, `sudo`, `su`, `login`, e práticamente qualquer aplicação que precise verificar identidade de usuários. A arquitetura PAM define quatro tipos de módulos funcionais:
- **`auth`** - verifica a identidade do usuário (ex: válida senha)
- **`account`** - verifica se a conta está habilitada e com permissão de acesso
- **`session`** - configura e encerra sessões
- **`password`** - gerencia atualização de credenciais
O módulo mais comum e crítico é o `pam_unix.so`, responsável por autenticação baseada em senha tradicional, que consulta `/etc/passwd` e `/etc/shadow`. Como os componentes PAM são bibliotecas compartilhadas (`.so`) carregadas dinâmicamente, um adversário com acesso root pode substituir ou modificar esses módulos para:
1. **Criar backdoor de senha mestra:** Modificar `pam_unix.so` para aceitar uma senha adicional hardcoded que sempre autentica com sucesso, independente da senha real do usuário.
2. **Capturar credenciais em texto claro:** Inserir código de harvesting nas funções de autenticação que gravam usuário e senha antes da válidação, em arquivo local ou via rede.
3. **Criar acesso irrestrito:** Modificar módulos de `account` para sempre retornar sucesso independente do estado da conta, permitindo acesso mesmo com contas bloqueadas ou expiradas.
O PAM não armazena senhas - ele as processa em tempo real durante a autenticação. Isso significa que as senhas passam pelos módulos PAM em texto claro antes de qualquer hash, tornando esse ponto de intercepção extremamente valioso para adversários.
Esta técnica é sub-variante de [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]] e tem alta relevância em ataques a infraestrutura Linux, especialmente servidores SSH, sistemas de banco de dados e ambientes cloud.
> [!warning] Impacto Crítico
> Modificações no PAM podem resultar em: (1) coleta silenciosa de todas as credenciais do sistema, (2) backdoor persistente que sobrevive a alterações de senha, e (3) bypasses de MFA. A natureza modular do PAM torna difícil detectar modificações sem monitoramento explícito de integridade de arquivos.
## Como Funciona
O processo de exploração do PAM ocorre em etapas que exploram sua arquitetura de módulos carregáveis:
**1. Prerequisito: Acesso Root**
Modificar arquivos PAM em `/lib/security/` (ou `/lib/x86_64-linux-gnu/security/` em sistemas Debian/Ubuntu) requer privilégios de root. O adversário tipicamente obtém esse acesso via escalada de privilégio (ex: [[t1068-exploitation-for-privilege-escalation|CVE de kernel]], [[t1078-valid-accounts|credenciais legítimas roubadas]], ou misconfigurações sudo).
**2. Localização dos Módulos PAM**
Os módulos PAM ficam em:
- `/lib/security/*.so` (sistemas baseados em RPM: RHEL, CentOS, Fedora)
- `/lib/x86_64-linux-gnu/security/*.so` (sistemas baseados em Debian/Ubuntu)
- `/usr/lib/security/*.so` (macOS, alguns Linux)
A configuração que define quais módulos usar por serviço fica em:
- `/etc/pam.conf` (arquivo único de configuração global)
- `/etc/pam.d/` (diretório com um arquivo por serviço: `sshd`, `sudo`, `login`, etc.)
**3. Técnicas de Modificação**
*Abordagem A - Patching de Binário:*
O adversário faz engenharia reversa do `pam_unix.so` e insere código que exporta credenciais antes de chamar a rotina de válidação original. O binário modificado substitui o original.
*Abordagem B - Módulo Adicional:*
Criar um novo módulo PAM malicioso e adicioná-lo à stack de autenticação de um serviço crítico (ex: `/etc/pam.d/sshd`). Módulos podem ser configurados como `sufficient` (autenticação bem-sucedida encerra a verificação) para criar backdoor.
*Abordagem C - Modificação de Configuração + Módulo Legítimo Mal-Configurado:*
Alguns módulos legítimos (ex: `pam_exec.so`) podem ser abusados via configuração para executar scripts arbitrários durante a autenticação.
**4. Persistência**
Modificações em arquivos `.so` do sistema são persistentes por padrão. Atualizações do pacote do sistema que contém o módulo PAM (ex: `libpam-modules`) podem sobrescrever o arquivo malicioso - por isso adversários às vezes também modificam o gerenciador de pacotes ou criam hooks pós-atualização.
**5. Coleta e Exfiltração**
As credenciais capturadas podem ser gravadas em arquivos locais ocultos ou transmitidas via rede. O malware [[s0377-ebury|Ebury]], documentado pelo ESET e usado pelo grupo Windigo, é um dos exemplos mais sofisticados de backdoor PAM para Linux.
## Attack Flow
```mermaid
graph TB
A["🎯 Comprometimento Inicial<br/>SSH Brute Force / CVE"] --> B["⚡ Escalada para Root<br/>Kernel Exploit / Sudo Misconfig"]
B --> C["🔍 Reconhecimento do PAM<br/>Identificar módulos em uso"]
C --> D{"Abordagem"}
D --> E["🔧 Patch de pam_unix.so<br/>Modificação do binário"]
D --> F["📦 Módulo PAM Novo<br/>pam_evil.so criado"]
D --> G["⚙️ Abuso de pam_exec.so<br/>Script malicioso via config"]
E --> H["📝 Substituição do Módulo<br/>/lib/security/pam_unix.so"]
F --> I["📝 Registro na Stack<br/>/etc/pam.d/sshd modificado"]
G --> I
H --> J["🕵️ Aguarda Autenticação<br/>Qualquer serviço SSH/sudo/login"]
I --> J
J --> K["👤 Usuário Autentica<br/>SSH, sudo, login, su"]
K --> L["🪝 Módulo PAM Invocado<br/>Credenciais em texto claro"]
L --> M["📂 Captura de Credenciais<br/>Arquivo oculto / Memória"]
L --> N["🚪 Backdoor Ativo<br/>Senha mestra aceita"]
M --> O["📡 Exfiltração<br/>C2 / DNS exfil"]
N --> P["💀 Acesso Persistente<br/>Mesmo após troca de senha"]
style A fill:#ff6b6b,color:#fff
style L fill:#ee5a24,color:#fff
style N fill:#c0392b,color:#fff
style P fill:#8e1c1c,color:#fff
```
## Exemplos de Uso
**Ebury - O Backdoor PAM mais Sofisticado Documentado**
O [[s0377-ebury|Ebury]] é um backdoor OpenSSH e PAM utilizado pela operação Windigo, documentado extensivamente pelo ESET em 2014 e com atividade continuada até 2024. Ele modifica o módulo `pam_unix.so` para capturar credenciais SSH e utiliza técnicas avançadas para ocultar sua presença, incluindo rootkit em memória para esconder processos e arquivos. A operação Windigo comprometeu mais de 25.000 servidores Linux globalmente, com foco em provedores de hospedagem e universidades.
**SkidMap - Cryptominer com Backdoor PAM**
O [[s0468-skidmap|Skidmap]] é um malware de criptomineração para Linux documentado pela Trend Micro que utiliza modificação de módulos PAM como mecanismo de persistência. Após a infecção, ele implanta um módulo PAM backdoor que aceita uma senha específica para qualquer conta do sistema, garantindo acesso mesmo após a limpeza dos componentes de mineração.
**Ataques a Infraestrutura Cloud (AWS/GCP/Azure Linux)**
Com a expansão de workloads Linux em nuvens públicas, adversários têm utilizado T1556.003 em instâncias comprometidas. O padrão típico envolve: comprometimento via credenciais IAM expostas → acesso a instância EC2/VM → escalada root → implantação de backdoor PAM para manter acesso mesmo após rotação de chaves SSH. Esta abordagem foi documentada em incidentes envolvendo grupos de cryptojacking como [[g0139-teamtnt|TeamTNT]].
**Campanhas de Espionagem em Servidores Linux**
Grupos de espionagem estado-nação como [[g0007-apt28|APT28]] e [[g0032-lazarus-group|Lazarus Group]] têm demonstrado capacidade técnica para modificar componentes de autenticação Linux em operações de longa duração. A técnica PAM backdoor é consistente com TTPs documentados em relatórios de atribuição de comprometimentos de infraestrutura crítica.
> [!example] Cenário Realista - Servidor SSH Corporativo
> 1. Adversário obtém credencial SSH via [[t1566-phishing|spear phishing]] de desenvolvedor
> 2. Escalada de privilégio via CVE em kernel desatualizado ([[t1068-exploitation-for-privilege-escalation|T1068]])
> 3. Localização e análise de `/lib/x86_64-linux-gnu/security/pam_unix.so`
> 4. Substituição por versão patched que loga credenciais em `/tmp/.cache`
> 5. Todas as autenticações SSH subsequentes capturadas silenciosamente
> 6. Acesso a credenciais de 50+ desenvolvedores em 72 horas
## Detecção
**Indicadores de Compromisso (IoCs) Comportamentais:**
- Alterações em arquivos `.so` no diretório `/lib/security/` ou equivalente
- Modificações em arquivos `/etc/pam.d/` ou `/etc/pam.conf`
- Processos não esperados filhos de `sshd`, `login`, `sudo` com acesso à rede
- Arquivos de log em locais incomuns (`/tmp/`, `/dev/shm/`, dotfiles ocultos)
- Hashes de arquivos PAM que não correspondem ao pacote instalado
**Verificação Manual de Integridade:**
```bash
# Verificar integridade dos módulos PAM
rpm -V pam # em sistemas RPM
dpkg -V libpam-modules # em sistemas Debian/Ubuntu
```
**Regra Sigma - Modificação de Módulos PAM:**
```yaml
title: PAM Module File Modification
status: experimental
description: Detecta modificação de arquivos de módulo PAM que pode indicar implantação de backdoor
logsource:
category: file_event
product: linux
detection:
selection_dirs:
TargetFilename|startswith:
- '/lib/security/'
- '/lib/x86_64-linux-gnu/security/'
- '/lib64/security/'
- '/usr/lib/security/'
selection_ext:
TargetFilename|endswith: '.so'
condition: selection_dirs and selection_ext
level: high
tags:
- attack.credential_access
- attack.persistence
- attack.t1556.003
falsepositives:
- Atualização legítima de pacotes do sistema
- Instalação de módulos PAM adicionais (ex: pam-u2f, pam-google-authenticator)
```
**Regra Sigma - Modificação de Configuração PAM:**
```yaml
title: PAM Configuration File Modified
status: experimental
description: Detecta alterações nos arquivos de configuração PAM que podem adicionar módulos maliciosos
logsource:
category: file_event
product: linux
detection:
selection:
TargetFilename|startswith:
- '/etc/pam.d/'
- '/etc/pam.conf'
filter_package_manager:
Image|contains:
- 'apt'
- 'dpkg'
- 'rpm'
- 'yum'
- 'dnf'
condition: selection and not filter_package_manager
level: medium
tags:
- attack.credential_access
- attack.t1556.003
```
**Fontes de dados recomendadas:**
- Linux Audit Framework (`auditd`) com regras para watch em `/lib/security/`
- File Integrity Monitoring (FIM) com agentes como OSSEC/Wazuh
- Sysdig/Falco para detecção comportamental em runtime
- Verificação periódica de hashes com `aide` ou `tripwire`
- Logs de autenticação: `/var/log/auth.log` ou `/var/log/secure`
## Mitigação
| ID | Mitigação | Descrição |
|---|-----------|-----------|
| M1032 | [[m1032-multi-factor-authentication\|M1032 - Multi-factor Authentication]] | Implementar MFA para todas as autenticações críticas (SSH, sudo, VPN). Módulos PAM como `pam-u2f` e `pam-google-authenticator` adicionam fatores adicionais que são mais difíceis de contornar mesmo com backdoor PAM, pois o segundo fator não passa pelo módulo comprometido. |
| M1026 | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | Restringir o número de contas com acesso root. Usar `sudo` com regras granulares em vez de root direto. Implementar PAM (de forma legítima!) para `sudo` com justificativa obrigatória. Monitorar todos os usos de `su`, `sudo`, e logins root direto. |
**Controles adicionais recomendados:**
- Habilitar **Secure Boot** e **dm-verity** para garantir integridade do sistema de arquivos raiz
- Implementar **File Integrity Monitoring (FIM)** com alerta imediato em mudanças de `/lib/security/`
- Usar distribuições Linux com **módulos PAM assinados** e verificação na inicialização
- Restringir acesso SSH com chaves ao invés de senhas sempre que possível ([[m1032-multi-factor-authentication|MFA]])
- Implementar **imutabilidade de sistema de arquivos** em ambientes container/cloud
## Software Associado
- [[s0377-ebury|Ebury]] (malware) - Backdoor SSH/PAM sofisticado, operação Windigo
- [[s0468-skidmap|Skidmap]] (malware) - Cryptominer Linux com backdoor PAM
## Contexto Brasil/LATAM
> [!tip] Relevância Regional
> O Brasil possui a maior base de servidores Linux corporativos e de hospedagem na América Latina. A combinação de alta adoção de Linux em data centers, histórico de ataques a infraestrutura de TI e crescimento de workloads cloud torna T1556.003 uma técnica de alta relevância para o cenário de ameaças brasileiro.
**Infraestrutura de Hospedagem como Alvo**
O Brasil é o maior mercado de hospedagem web da América Latina, com empresas como Locaweb, HostGator Brasil, e UOL Diveo operando grandes parques de servidores Linux. Comprometimentos de empresas de hospedagem via backdoor PAM permitem acesso a milhares de clientes downstream - um multiplicador de impacto significativo documentado na operação Windigo que afetou provedores globalmente, incluindo na região LATAM.
**Setor Financeiro e Fintechs**
O ecossistema de fintechs brasileiro - o maior da América Latina - opera extensivamente em infraestrutura Linux/cloud. Backdoors PAM em servidores de autenticação de fintechs podem resultar no comprometimento de credenciais de APIs financeiras, tokens de acesso a sistemas de pagamento instantâneo (PIX), e dados de clientes protegidos pela LGPD.
**Grupos de Ameaça Relevantes para Brasil**
- **[[g0139-teamtnt|TeamTNT]]** e grupos de cryptojacking similares documentaram ataques a instâncias cloud Linux no Brasil, utilizando técnicas de persistência que incluem modificação de componentes de autenticação
- Atores de ransomware como afiliados do **[[lockbit-operators|LockBit]]** e **BlackCat/ALPHV** que atuam na América Latina frequentemente têm Linux em seu arsenal de ataque, visando servidores de backup e VMware ESXi
- O [[cert-br|CERT.br]] documentou comprometimentos de servidores Linux de instituições governamentais brasileiras com técnicas de persistência avançada
**Implicações LGPD**
Backdoors PAM em servidores corporativos brasileiros configuram violações graves da Lei Geral de Proteção de Dados (LGPD), com potencial de notificação obrigatória à ANPD e multas de até 2% do faturamento anual (limitado a R$ 50 milhões por infração).
## Referências
- [MITRE ATT&CK - T1556.003](https://attack.mitre.org/techniques/T1556/003)
- [[t1556-modify-authentication-process|T1556 - Modify Authentication Process]] (técnica pai)
- [[m1032-multi-factor-authentication|M1032 - Multi-factor Authentication]]
- [[m1026-privileged-account-management|M1026 - Privileged Account Management]]
- [[s0377-ebury|Ebury]] - Malware PAM documentado com uso extensivo desta técnica
- [[s0468-skidmap|Skidmap]] - Cryptominer Linux com backdoor PAM
- [ESET Research - Windigo/Ebury (2024 updaté)](https://www.welivesecurity.com/en/eset-research/ebury-is-alive-but-is-it-well/)
- [Linux PAM Documentation - The Linux-PAM System Administrators' Guide](https://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html)
- [[t1021-001-remote-services-ssh|T1021.001 - Remote Services: SSH]] - Vetor primário para acesso a sistemas Linux
- [[active-directory|Active Directory]] - Ambientes híbridos AD+Linux são alvo frequente
---
*Fonte: [MITRE ATT&CK - T1556.003](https://attack.mitre.org/techniques/T1556/003) | Versão: 16.2*