Ident-user-enum: Enumeración de Usuarios
Ident-user-enum: Enumeración de Usuarios
ident-user-enum es una herramienta de reconocimiento (recon) escrita en Perl que se utiliza para consultar el servicio identd (puerto 113) en sistemas remotos. Su objetivo principal es determinar qué nombre de usuario es el propietario de un proceso que escucha en un puerto TCP específico.
Aquí tienes un desglose de cómo funciona y cómo usarla en Kali Linux:
¿Cómo funciona?
Cuando un servidor tiene activado el servicio ident (un protocolo antiguo pero que aún se encuentra en algunos servidores internos o sistemas legacy), este responde a consultas sobre quién está ejecutando un servicio.
Por ejemplo, si ves que un servidor tiene el puerto 80 abierto, puedes preguntar al puerto 113: "¿Qué usuario inició la conexión en el puerto 80?". El servidor te responderá con el username (ej. www-data, root o apache).
Sintaxis básica
La estructura del comando es sencilla:
ident-user-enum [opciones] <dirección-ip> <puertos>
Ejemplos de uso común
Escaneo simple de puertos comunes:
Bashident-user-enum 192.168.1.50 21 22 23 80 445Esto intentará identificar a los dueños de los procesos en los puertos FTP, SSH, Telnet, HTTP y SMB.
Uso de un archivo de direcciones IP:
Si tienes una lista de objetivos, puedes usar la opción
-t:Bashident-user-enum -t objetivos.txt 22 80Definir el tiempo de espera (timeout):
Si la red es lenta, puedes usar
-upara esperar más segundos por una respuesta:Bashident-user-enum -u 5 10.0.0.5 80
¿Por qué es útil en un Pentest?
Enumeración de usuarios: Te da nombres de usuario reales que luego puedes usar para ataques de fuerza bruta (Brute Force) o Password Spraying en otros servicios como SSH.
Identificación de procesos privilegiados: Si descubres que un servicio web o una base de datos está corriendo como
root, sabrás que una vulnerabilidad en ese servicio te daría control total del sistema.
Limitaciones actuales
Es importante notar que el servicio identd está mayormente en desuso por razones de seguridad, ya que revela demasiada información sobre la infraestructura interna. En la mayoría de los escaneos modernos, el puerto 113 aparecerá como closed o filtered.
Antes de lanzar ident-user-enum, lo más eficiente es verificar si el puerto 113 (auth/ident) está siquiera escuchando. Si el puerto está cerrado, la herramienta no podrá obtener ninguna información.
Puedes usar Nmap para esto con el siguiente comando:
nmap -p 113 --open 192.168.1.50
Si prefieres un escaneo más completo que verifique el puerto 113 y, además, intente realizar la enumeración de usuarios automáticamente, puedes usar los scripts de Nmap (NSE):
nmap -sV --script auth-owners 192.168.1.50
Explicación del comando Nmap:
-p 113: Se enfoca únicamente en el puerto de Ident.--open: Solo muestra resultados si el puerto está realmente abierto.-sV: Detecta la versión del servicio.--script auth-owners: Este script hace algo muy similar aident-user-enum: intenta consultar al demonio identd para saber quién es el dueño de cada puerto TCP que encuentre abierto.
¿Qué significan los resultados?
| Estado del puerto 113 | Significado |
| Open | El sistema es vulnerable a enumeración. Puedes usar ident-user-enum con éxito. |
| Closed | El servicio no está activo. No podrás obtener nombres de usuario por esta vía. |
| Filtered | Un firewall está bloqueando el tráfico al puerto 113. |
Nota de seguridad: En auditorías reales, es raro encontrar este servicio activo en servidores modernos (como Ubuntu 22.04 o Windows 11), pero es muy común en dispositivos de red antiguos, firewalls legacy o máquinas de entrenamiento tipo HackTheBox.
Automatizar esto es ideal cuando tienes un segmento de red completo (una subred) y no quieres ir uno por uno.
Aquí tienes un Script en Bash sencillo que hace lo siguiente:
Escanea un rango de IPs buscando el puerto 113 abierto.
Si encuentra el puerto abierto, lanza automáticamente
ident-user-enumcontra los puertos comunes (80, 443, 22, 21, 445).
Script: ident-scan.sh
#!/bin/bash
# Comprobar si se pasó un argumento (IP o rango)
if [ -z "$1" ]; then
echo "Uso: $0 <rango-de-ips>"
echo "Ejemplo: $0 192.168.1.0/24"
exit 1
fi
TARGET=$1
echo "--- Iniciando fase de descubrimiento en $TARGET ---"
# 1. Usamos Nmap para encontrar hosts con el puerto 113 abierto
# -oG - permite filtrar la salida fácilmente con grep
ips_vulnerables=$(nmap -p 113 --open $TARGET -oG - | grep "Up" | cut -d' ' -f2)
if [ -z "$ips_vulnerables" ]; then
echo "No se encontraron hosts con el puerto 113 (ident) abierto."
exit 0
fi
echo "Hosts detectados con identd activo:"
echo "$ips_vulnerables"
echo "------------------------------------------------"
# 2. Ejecutar ident-user-enum en los hosts encontrados
for ip in $ips_vulnerables; do
echo "[*] Analizando usuarios en: $ip"
ident-user-enum $ip 21 22 23 25 80 110 139 443 445
echo "------------------------------------------------"
done
Cómo prepararlo y ejecutarlo:
Crea el archivo:
nano ident-scan.sh(pega el código de arriba y guarda conCtrl+O,EnteryCtrl+X).Dale permisos de ejecución:
Bashchmod +x ident-scan.shEjecútalo:
Bash./ident-scan.sh 192.168.1.0/24
¿Por qué este enfoque es mejor?
Velocidad: Nmap es mucho más rápido para "limpiar" la red y descartar lo que no sirve.
ident-user-enumsolo se ejecutará donde realmente hay una oportunidad.Orden: Te permite guardar los resultados en un archivo de texto si rediriges la salida:
./ident-scan.sh 10.0.0.0/24 > resultados_usuarios.txt.