Linux Post-Exploitation
Capturando Contraseñas de Inicio de Sesión con PAM
Configuremos un módulo PAM para registrar cada contraseña que cada usuario utiliza para iniciar sesión. Si no sabes qué es PAM, consulta:
PAM - Pluggable Authentication ModulesPara más detalles consulta el post original. Esto es solo un resumen:
Resumen de la Técnica: Los Módulos de Autenticación Enchufables (PAM) ofrecen flexibilidad en la gestión de la autenticación en sistemas basados en Unix. Pueden mejorar la seguridad personalizando los procesos de inicio de sesión, pero también plantean riesgos si se utilizan incorrectamente. Este resumen describe una técnica para capturar credenciales de inicio de sesión utilizando PAM, junto con estrategias de mitigación.
Capturando Credenciales:
Se crea un script bash llamado
toomanysecrets.sh
para registrar intentos de inicio de sesión, capturando la fecha, nombre de usuario ($PAM_USER
), contraseña (a través de stdin) y la IP del host remoto ($PAM_RHOST
) en/var/log/toomanysecrets.log
.Se hace ejecutable el script e se integra en la configuración de PAM (
common-auth
) utilizando el módulopam_exec.so
con opciones para ejecutar en silencio y exponer el token de autenticación al script.El enfoque demuestra cómo un host Linux comprometido puede ser explotado para registrar credenciales discretamente.
Instalación de una puerta trasera en PAM
Para más detalles, consulta el post original. Esto es solo un resumen:
El Módulo de Autenticación Enchufable (PAM) es un sistema utilizado en Linux para la autenticación de usuarios. Opera en tres conceptos principales: nombre de usuario, contraseña y servicio. Los archivos de configuración para cada servicio se encuentran en el directorio /etc/pam.d/
, donde las bibliotecas compartidas manejan la autenticación.
Objetivo: Modificar PAM para permitir la autenticación con una contraseña específica, evitando la contraseña real del usuario. Esto se enfoca particularmente en la biblioteca compartida pam_unix.so
utilizada por el archivo common-auth
, que es incluido por casi todos los servicios para la verificación de contraseñas.
Pasos para Modificar pam_unix.so
:
pam_unix.so
:Localiza la Directiva de Autenticación en el archivo
common-auth
:
La línea responsable de verificar la contraseña de un usuario llama a
pam_unix.so
.
Modifica el Código Fuente:
Agrega una declaración condicional en el archivo fuente
pam_unix_auth.c
que otorga acceso si se utiliza una contraseña predefinida, de lo contrario, continúa con el proceso de autenticación habitual.
Recompila y Reemplaza la biblioteca
pam_unix.so
modificada en el directorio apropiado.Prueba:
Se otorga acceso a través de varios servicios (inicio de sesión, ssh, sudo, su, protector de pantalla) con la contraseña predefinida, mientras que los procesos de autenticación normales permanecen sin cambios.
Puedes automatizar este proceso con https://github.com/zephrax/linux-pam-backdoor
Last updated