Categoría: Rastreo

  • 2.6 – Usuarios y Huellas Digitales en Linux

    2.6 – Usuarios y Huellas Digitales en Linux

    whoami

    El equivalente digital de mirarse al espejo.
    Muestra el usuario efectivo que está ejecutando el comando.
    Perfecto para explicar la diferencia entre:

    • usuario real (el que inicia sesión),
    • usuario efectivo (el que el sistema usa para permisos, especialmente tras un sudo).

    id

    Un pequeño radiotelescopio hacia tu identidad numérica.
    Muestra:

    • UID (identificador del usuario)
    • GID (grupo principal)
    • grupos secundarios
      Es una forma directa de ver permisos y roles dentro del sistema. Ideal para ejercicios de administración y forense.

    who / w / users

    El “quién está ahora mismo en la nave”.
    Sirve para ver sesiones activas y cómo han entrado:

    • tty
    • pts (sesiones remotas)
    • SSH
    • tiempo conectado

    • En ciberseguridad es una herramienta rápida para detectar conexiones sospechosas.

    env

    El baúl entero de variables de entorno.
    Aquí viven cosas como:

    • $USER
    • $HOME
    • $SHELL
    • $PATH

      Además permite explicar a los alumnos por qué una aplicación “sabe” dónde buscar binarios o dónde está su carpeta de configuración.

    echo $USER

    Una forma simple de leer la variable que indica el nombre del usuario que ha iniciado sesión.
    Comparar whoami vs $USER es didáctico:
    $USER → quien inició sesión
    whoami → usuario efectivo (útil para mostrar cómo sudo cambia el contexto)


    echo $HOME

    Viene genial para scripts o explicaciones sobre la organización del sistema.
    Muestra la ruta al directorio personal, que siempre es sagrado en Linux.


    echo $SHELL

    Permite enseñar la diferencia entre bash, zsh, fish…
    Ideal para que entiendan por qué su terminal “se comporta raro” tras instalar algo.


    hostname

    La identidad pública del sistema en la red.
    Junto con hostname -I, sirve para explicar la distinción entre:

    • identidad del equipo,
    • interfaces,
    • direcciones IP que usa para comunicarse.

    logname

    La versión más purista de “quién inició esta sesión”, incluso si has hecho un su o un sudo.
    Muy útil en prácticas de forense porque te permite reconstruir acciones de usuarios.


    tty

    Muestra el dispositivo de terminal actual.
    En remoto se verá algo como /dev/pts/1.
    Perfecto para entender:

    • sesiones locales,
    • sesiones remotas,
    • multiplexación de terminales.

    ps aux | grep $USER

    Una puerta a ver “qué está ejecutando realmente tu identidad”.
    A los alumnos les ayuda a comprender procesos, permisos, señales y contextos.


    finger (si lo instalas)

    Pinta un pequeño perfil del usuario:

    • shell
    • home
    • nombre real

      Antiguo pero didáctico como pocas cosas.

    Actividad: “¿Quién eres en esta máquina?” – Identidad y sesiones en Linux

    Imagina que el sistema es una estación espacial. Cada alumno entra por una compuerta distinta, a veces cambia de traje (sudo), y el objetivo es reconstruir quién hizo qué.


    Todo ocurre en un Ubuntu normal.


    FASE 1 — Identidad básica

    Ejecuta:

    
    
    
    
    
    whoami
    echo $USER
    id
    logname
    

    Descubrir que el sistema te reconoce por varias “capas”.

    Explicación:

    • whoami → usuario efectivo.
    • $USER → usuario que inició sesión.
    • id → UID, GID, grupos.
    • logname → el user original aunque hayan hecho su.

    Pequeño reto:
    Pídeles que intenten entender por qué sudo whoami devuelve root,
    pero echo $USER sigue mostrando su usuario normal.


    FASE 2 — Dónde están realmente

    Ejecutar

    
    
    
    
    
    pwd
    echo $HOME
    echo $SHELL
    tty
    

    Esto muestra:

    • dónde están,
    • cuál es su shell,
    • qué terminal están usando (local, SSH, pts…).

    Ejercicio: Compartir un terminal local (tty1) con una sesión SSH


    FASE 3 — Quién más está en la nave

    Ahora miramos el estado de la estación:

    
    
    
    
    
    who
    w
    users
    hostname
    hostname -I
    

    Objetivo: identificar todas las sesiones activas.
    Puedes entrar desde otra máquina para ver “un intruso”.

    Mini-misión:
    Que usen who para averiguar:

    • quién está conectado,
    • desde qué terminal,
    • desde qué IP si es SSH,
    • desde cuándo.

    Esto introduce sin ruido en análisis forense real.


    FASE 4 — Cambio de identidad

    
    
    
    
    
    sudo -i
    whoami
    echo $USER
    id
    logname
    tty
    

    Aquí ocurre la magia:

    • whoami → root
    • $USER → su usuario original
    • logname → quien realmente abrió la sesión
    • tty → la misma porque no abren una nueva


    FASE 5 — Ver qué hace cada identidad

    En otra terminal, que ejecuten:

    
    
    
    
    
    ps aux | grep $USER
    ps aux | grep root
    

    Fijate que root suele llevar servicios, demonios, etc.

    FASE 6 — Prueba forense

    Prueba a ejecutar con un usuario un comando secreto en su sesión, por ejemplo:

    
    
    
    
    
    mkdir /tmp/estacion-alpha
    echo "Hola profe" > /tmp/mensaje.txt
    touch ~/algo_raro
    

    Luego cambia de usuario :

    “Reconstruid qué usuarios han hecho qué”

    Utilizando:

    
    
    
    
    
    ls -l /tmp
    ls -l /home/*
    who
    logname
    id username
    

    La identidad del sistema queda impregnada en permisos, UID, GID, sesiones y ficheros creados.


    Hackeo benévolo

    Se hace SSH desde otro equipo con:

    
    
    
    
    
    ssh usuario@IP
    

    Luego ejecuta:

    
    
    
    
    
    who
    w
    tty
    hostname -I
    

    Los demás deben encontrar:

    • quién ha entrado
    • desde qué IP
    • en qué terminal
    • cuánto tiempo lleva conectado
      Esta parte siempre les encanta porque parece CSI, pero sin dramatismos digitales.