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