Skip to content

Glosario

utmp

El archivo /run/utmp, que enumera las sesiones abiertas en este momento con el mismo formato struct utmp que wtmp; se vacía en cada arranque.

/run/utmp (también accesible como /var/run/utmp) enumera las sesiones abiertas en este momento. Lo leen who, w y users, y lo escriben login, sshd y otros programas a través de PAM o de las funciones utmp de la biblioteca C. Contiene un registro por cada sesión de terminal activa, además de los registros del arranque actual y del nivel de ejecución.

utmp es también el nombre de la estructura de registro, struct utmp, compartida con wtmp y btmp: tipo (ut_type), PID, terminal (ut_line), usuario, host remoto, hora y dirección remota. El registro ocupa 384 bytes en x86_64 y 400 bytes en aarch64. Un inicio de sesión es un registro USER_PROCESS (tipo 7); al terminar la sesión, la ranura se reutiliza como DEAD_PROCESS (tipo 8).

Por qué importa en una investigación

Como /run es un tmpfs, utmp solo existe en un sistema en ejecución: se vacía en cada arranque y no está en la imagen de disco de una máquina apagada. Recopilado en vivo, responde a una pregunta que las demás fuentes solo contestan de forma indirecta: quién tiene sesión abierta ahora mismo, en qué terminal y desde qué dirección. Es útil cuando un intruso puede seguir conectado y para detectar sesiones que nunca se registraron en wtmp. Recuerda que el SSH no interactivo (un comando remoto, scp, sftp) no asigna terminal y normalmente no tiene registro en utmp, y que root puede editar este archivo como cualquier otro.

Ejemplo

En un host en ejecución, como root:

who -a                        # hora de arranque, nivel de ejecución, sesiones actuales
utmpdump /run/utmp            # todos los registros, incluidas las ranuras DEAD_PROCESS
cp -p /run/utmp /media/evidence/utmp

Copia el propio archivo y no solo la salida de los comandos, y anota la arquitectura del host: un utmp de aarch64 leído con las herramientas de una estación x86_64 se interpretará mal.

Términos relacionados

  • wtmp y btmp: el historial de inicios de sesión, con el mismo formato.
  • lastlog: el último inicio de sesión de cada UID.
  • UAC: recopila /run/utmp en su perfil de triaje.

Linux Log Parser lee utmp en los dos tamaños de registro. Más detalles en el análisis forense de wtmp, btmp y lastlog.