hacktricks/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md

5.6 KiB

PAM - Módulos de Autenticação Pluggable

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% 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.

Exemplo de Cenário

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 pam_unix tentando usar uma senha previamente fornecida, aumentando a eficiência e flexibilidade nos métodos de autenticação.

Referências

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}