Linux Post-Exploitation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Vamos a configurar 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:
Descripción de la técnica: Los Módulos de Autenticación Pluggable (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 presentan riesgos si se utilizan de manera incorrecta. Este resumen describe una técnica para capturar credenciales de inicio de sesión utilizando PAM, junto con estrategias de mitigación.
Captura de credenciales:
Se crea un script bash llamado toomanysecrets.sh
para registrar los intentos de inicio de sesión, capturando la fecha, el nombre de usuario ($PAM_USER
), la contraseña (a través de stdin) y la IP del host remoto ($PAM_RHOST
) en /var/log/toomanysecrets.log
.
El script se hace ejecutable e integra en la configuración de PAM (common-auth
) utilizando el módulo pam_exec.so
con opciones para ejecutarse 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 de manera discreta.
Para más detalles, consulta el post original. Esto es solo un resumen:
El Módulo de Autenticación Pluggable (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, eludiendo la contraseña real del usuario. Esto se centra 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.
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 otorgue acceso si se utiliza una contraseña predefinida; de lo contrario, procede con el proceso de autenticación habitual.
Recompila y Reemplaza la biblioteca pam_unix.so
modificada en el directorio apropiado.
Pruebas:
Se concede acceso a través de varios servicios (login, ssh, sudo, su, screensaver) con la contraseña predefinida, mientras que los procesos de autenticación normales permanecen sin afectar.
Puedes automatizar este proceso con https://github.com/zephrax/linux-pam-backdoor
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)