# PAM - Módulos de Autenticação Pluggable {% hint style="success" %} Aprenda e pratique Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprenda e pratique Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)! * **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
{% endhint %} ### Informações Básicas **PAM (Módulos de Autenticação Pluggable)** atua como um mecanismo de segurança que **verifica a identidade dos usuários que tentam acessar serviços de computador**, controlando seu acesso com base em vários critérios. É semelhante a um porteiro digital, garantindo que apenas usuários autorizados possam interagir com serviços específicos, enquanto potencialmente limita seu uso para evitar sobrecargas no sistema. #### Arquivos de Configuração * **Sistemas Solaris e baseados em UNIX** normalmente utilizam um arquivo de configuração central localizado em `/etc/pam.conf`. * **Sistemas Linux** preferem uma abordagem de diretório, armazenando configurações específicas de serviços dentro de `/etc/pam.d`. Por exemplo, o arquivo de configuração para o serviço de login é encontrado em `/etc/pam.d/login`. Um exemplo de configuração PAM para o serviço de login pode parecer assim: ``` auth required /lib/security/pam_securetty.so auth required /lib/security/pam_nologin.so auth sufficient /lib/security/pam_ldap.so auth required /lib/security/pam_unix_auth.so try_first_pass account sufficient /lib/security/pam_ldap.so account required /lib/security/pam_unix_acct.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_ldap.so password required /lib/security/pam_pwdb.so use_first_pass session required /lib/security/pam_unix_session.so ``` #### **Reinos de Gerenciamento PAM** Esses reinos, ou grupos de gerenciamento, incluem **auth**, **account**, **password** e **session**, cada um responsável por diferentes aspectos do processo de autenticação e gerenciamento de sessão: * **Auth**: Valida a identidade do usuário, frequentemente solicitando uma senha. * **Account**: Trata da verificação da conta, checando condições como pertencimento a grupos ou restrições de horário. * **Password**: Gerencia atualizações de senha, incluindo verificações de complexidade ou prevenção contra ataques de dicionário. * **Session**: Gerencia ações durante o início ou o fim de uma sessão de serviço, como montar diretórios ou definir limites de recursos. #### **Controles de Módulo PAM** Os controles ditam a resposta do módulo ao sucesso ou falha, influenciando o processo geral de autenticação. Estes incluem: * **Required**: A falha de um módulo requerido resulta em falha eventual, mas somente após todos os módulos subsequentes serem verificados. * **Requisite**: Término imediato do processo em caso de falha. * **Sufficient**: O sucesso ignora as verificações do restante do mesmo reino, a menos que um módulo subsequente falhe. * **Optional**: Causa falha apenas se for o único módulo na pilha. #### Cenário de Exemplo Em uma configuração com múltiplos módulos de auth, o processo segue uma ordem rigorosa. Se o módulo `pam_securetty` encontrar o terminal de login não autorizado, logins de root são bloqueados, mas todos os módulos ainda são processados devido ao seu status de "required". O `pam_env` define variáveis de ambiente, potencialmente ajudando na experiência do usuário. Os módulos `pam_ldap` e `pam_unix` trabalham juntos para autenticar o usuário, com o `pam_unix` tentando usar uma senha fornecida anteriormente, aumentando a eficiência e flexibilidade nos métodos de autenticação. ### Referências * [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434) {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}