PAM - Pluggable Authentication Modules
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Información Básica
PAM (Módulos de Autenticación Pluggable) actúa como un mecanismo de seguridad que verifica la identidad de los usuarios que intentan acceder a los servicios informáticos, controlando su acceso en función de varios criterios. Es similar a un portero digital, asegurando que solo los usuarios autorizados puedan interactuar con servicios específicos mientras limita potencialmente su uso para prevenir sobrecargas del sistema.
Archivos de Configuración
Los sistemas Solaris y basados en UNIX suelen utilizar un archivo de configuración central ubicado en
/etc/pam.conf
.Los sistemas Linux prefieren un enfoque de directorio, almacenando configuraciones específicas de servicios dentro de
/etc/pam.d
. Por ejemplo, el archivo de configuración para el servicio de inicio de sesión se encuentra en/etc/pam.d/login
.
Un ejemplo de una configuración de PAM para el servicio de inicio de sesión podría verse así:
Reinos de Gestión de PAM
Estos reinos, o grupos de gestión, incluyen auth, account, password y session, cada uno responsable de diferentes aspectos del proceso de autenticación y gestión de sesiones:
Auth: Valida la identidad del usuario, a menudo solicitando una contraseña.
Account: Maneja la verificación de cuentas, comprobando condiciones como la membresía en grupos o restricciones de horario.
Password: Gestiona las actualizaciones de contraseñas, incluyendo verificaciones de complejidad o prevención de ataques de diccionario.
Session: Gestiona acciones durante el inicio o final de una sesión de servicio, como montar directorios o establecer límites de recursos.
Controles de Módulo PAM
Los controles dictan la respuesta del módulo ante el éxito o el fracaso, influyendo en el proceso de autenticación general. Estos incluyen:
Required: El fallo de un módulo requerido resulta en un eventual fracaso, pero solo después de que se verifiquen todos los módulos subsiguientes.
Requisite: Terminación inmediata del proceso al fallar.
Sufficient: El éxito omite el resto de las verificaciones del mismo reino a menos que un módulo subsiguiente falle.
Optional: Solo causa fallo si es el único módulo en la pila.
Escenario de Ejemplo
En una configuración con múltiples módulos de auth, el proceso sigue un orden estricto. Si el módulo pam_securetty
encuentra el terminal de inicio de sesión no autorizado, los inicios de sesión de root son bloqueados, sin embargo, todos los módulos aún se procesan debido a su estado de "required". El pam_env
establece variables de entorno, potencialmente ayudando en la experiencia del usuario. Los módulos pam_ldap
y pam_unix
trabajan juntos para autenticar al usuario, con pam_unix
intentando usar una contraseña previamente suministrada, mejorando la eficiencia y flexibilidad en los métodos de autenticación.
Referencias
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated