Cómo configurar PAM para registrar la actividad de los usuarios en la terminal (estilo Keylogger)

Vamos a ver cómo configurar PAM en Linux para registrar la actividad de los usuarios en la terminal (realmente al estilo de un software Keylogger), y luego realizar una auditoría de esa actividad registrada.

 
Utilizaremos PAM (Pluggable Authentication Modules for Linux),  en los ficheros system-auth y password-auth, utilizando y habilitando el módulo pam_tty_audit.so, para conseguir auditar la entrada de datos y pulsaciones de teclas de los usuarios a través de la terminal.
 

En este artículo:

 

 

Configurar PAM para registrar la entrada de datos de los usuarios en la terminal

 

Es necesario que el servicio audit.d esté arrancado.

Comprobamos el estado del servicio auditd:

systemctl status auditd

 

A continuación vamos a habilitar el registro de introducción de datos por terminal de un usuario.

 

Lo podemos configurar utilizando la opción “enable” en los ficheros:

/etc/pam.d/system-auth

y

/etc/pam.d/password-auth

 

 

  • el fichero /etc/pam.d/system-auth es utilizado por sistemas Red Hat y derivados (CentOS) para agrupar políticas de seguridad comunes
  • el fichero /etc/pam.d/password-auth contiene reglas comunes para muchos servicios remotos

 

 

–> Editamos el fichero /etc/pam.d/system-auth para habilitar el registro de la actividad del usuario “pruebas”.

En la línea donde se encuentra “pam_tty_audit.so” , añadimos:

enable=pruebas

 

 

Quedando finalmente así:

session    required    pam_tty_audit.so    enable=pruebas

 
 

–> Lo mismo en el fichero /etc/pam.d/password-auth

 

session required pam_tty_audit.so enable=pruebas

 

 

Habilitar en PAM el registro de pulsaciones de teclas, incluso contraseñas

 
Por defecto, el registro de pulsaciones de teclas no está habilitado cuando el TTY está en modo de introducción de contraseña.

Se puede habilitar modificando los ficheros anteriores de PAMsystem-auth y password-auth, y agregando lo siguiente en la línea del módulo pam_tty_audit.so enable:

log_passwd

Entonces se registrarán las pulsaciones de teclas para este usuario cuando la terminal se encuentre en el modo de introducción de contraseña.
 

A continuación mostraremos los registros capturados.
 

 

Auditar la actividad registrada por PAM con aureport

 
Para ver el archivo de registro de auditd para cualquier entrada de TTY registrada, usaremos la utilidad aureport.

 

aureport -tty

Podemos comprobar el input y todas las pulsaciones de teclas realizados por el usuario.

 

 

En este otro reporte de aureport podemos ver más información sobre las acciones realizadas por un usuario:

  • El usuario ha mostrado la fecha y hora con el comando date
  • Ha utilizado el editor vi para comenzar a editar un fichero, se ha colocado en modo inserción del editor vi, se ha movido hacia abajo por el fichero, ha escrito unas líneas en el fichero, y ha guardado los cambios con :wq
  • Después el usuario ha listado los ficheros del directorio con el comando ls.

 

Vemos las pulsaciones de teclas reales realizadas por el usuario:

No se ve el resultado de autocompletar, ni el historial, pero sí que podemos ver las acciones realizadas en otros ficheros

 

 

Auditar la actividad registrada por PAM y la opción log_passwd

 

Veamos el resultado de activar la opción log_passwd en el módulo pam_tty_audit.so de PAM para este usuario:


 
Vemos que el usuario se ha logueado y luego ha intentado escalar privilegios con el comando su, y ha escrito el password, que en este caso son varios ceros. Se aprecia claramente.
 
 
Para auditar con aureport el registro de las sesiones del día de hoy, podemos usar estos parámetros de aureport y luego mostrar el final de los registros usando una tubería (pipe) y el comando tail; así se mostrarán los últimos registros del día, quizás es una opción interesante si nos interesa ver la última actividad de usuarios que se ha registrado
con PAM:

aureport --tty -ts today | tail