4.9 KiB
Post-Explotación en Linux
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Red Team de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el swag oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.
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:
{% content-ref url="pam-pluggable-authentication-modules.md" %} pam-pluggable-authentication-modules.md {% endcontent-ref %}
Para más detalles, consulta el post original. Esto es solo un resumen:
Resumen 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 al personalizar los procesos de inicio de sesión, pero también representan 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 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 discretamente.
#!/bin/sh
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
sudo touch /var/log/toomanysecrets.sh
sudo chmod 770 /var/log/toomanysecrets.sh
sudo nano /etc/pam.d/common-auth
# Add: auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh
sudo chmod 700 /usr/local/bin/toomanysecrets.sh
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
:
- 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. - Pruebas:
- 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.
{% hint style="info" %} Puedes automatizar este proceso con https://github.com/zephrax/linux-pam-backdoor {% endhint %}