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:
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
–> 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
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 PAM, system-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.
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:
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
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