88tcp/udp - Pentesting Kerberos
Reading time: 6 minutes
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
Kerberos funkcioniše po principu kojim autentifikuje korisnike, ali ne upravlja direktno njihovim pristupom resursima. To je važna razlika jer naglašava ulogu protokola u sigurnosnim okvirima.
U okruženjima kao što je Active Directory, Kerberos ima ključnu ulogu u utvrđivanju identiteta korisnika proverom njihovih tajnih lozinki. Ovaj proces osigurava da je identitet svakog korisnika potvrđen pre nego što pristupi mrežnim resursima. Međutim, Kerberos ne obuhvata procenu niti sprovođenje dozvola koje korisnik ima nad određenim resursima ili servisima. Umesto toga, on pruža siguran način autentifikacije korisnika, što je ključni prvi korak u sigurnosnom procesu.
Nakon autentifikacije od strane Kerberos, proces donošenja odluka o pristupu resursima prepušta se pojedinačnim servisima unutar mreže. Ti servisi su odgovorni za procenu prava i dozvola autentifikovanog korisnika, na osnovu informacija koje Kerberos pruža o korisnikovim privilegijama. Ovaj dizajn omogućava razdvajanje odgovornosti između autentifikacije identiteta korisnika i upravljanja njihovim pristupnim pravima, što omogućava fleksibilniji i sigurniji pristup upravljanju resursima u distribuiranim mrežama.
Podrazumevani port: 88/tcp/udp
PORT STATE SERVICE
88/tcp open kerberos-sec
Da biste naučili kako zloupotrebiti Kerberos, trebalo bi da pročitate post o Active Directory.
Okruženja samo sa Kerberosom: priprema klijenta i rešavanje problema
Kada je NTLM onemogućen na servisima domena (SMB/WinRM/itd.), morate se autentifikovati pomoću Kerberos. Uobičajene zamke i radni tok koji funkcioniše:
- Sinhronizacija vremena je obavezna. Ako je sat na vašem hostu pomeren za više od nekoliko minuta, videćete
KRB_AP_ERR_SKEWi sva Kerberos autentifikacija će propasti. Sinhronizujte sa DC-jem:
# quick one-shot sync (requires sudo)
sudo ntpdate <dc.fqdn> || sudo chronyd -q 'server <dc.fqdn> iburst'
- Generišite važeći krb5.conf za ciljnu realm/domen.
netexec(CME fork) može da vam generiše jedan dok testirate SMB:
# Generate krb5.conf and install it
netexec smb <dc.fqdn> -u <user> -p '<pass>' -k --generate-krb5-file krb5.conf
sudo cp krb5.conf /etc/krb5.conf
- Dobijte TGT i proverite ccache:
kinit <user>
klist
- Koristite Kerberos sa SMB alatima (passwords se ne šalju, koristi vaš ccache):
# netexec / CME
netexec smb <dc.fqdn> -k # lists shares, runs modules using Kerberos
# impacket examples also support -k / --no-pass to use the ccache
smbclient --kerberos //<dc.fqdn>/IPC$
- GSSAPI SSH jedinstvena prijava (SSO) (OpenSSH to Windows OpenSSH server):
# Ensure krb5.conf is correct and you have a TGT (kinit)
# Use the FQDN that matches the host SPN. Wrong names cause: "Server not found in Kerberos database"
ssh -o GSSAPIAuthentication=yes <user>@<host.fqdn>
Saveti:
- Uverite se da vaš
/etc/hostsrešava tačan FQDN na koji ćete se povezivati preko SSH/SMB, i da je taj unos pre bilo kojih unosa za goli domen ako prepisujete DNS. Neslaganja u SPN-u prekidaju GSSAPI. - Ako je NTLM onemogućen na SMB, možete videti
STATUS_NOT_SUPPORTEDkod NTLM pokušaja; dodajte-kda primorate Kerberos.
Više
Shodan
port:88 kerberos
MS14-068
Propust MS14-068 omogućava napadaču da manipuliše legitimnog korisnika Kerberos login tokenom kako bi lažno tvrdio povišene privilegije, kao što je Domain Admin. Ova falsifikovana tvrdnja se greškom potvrđuje od strane Domain Controller-a, omogućavajući neovlašćen pristup mrežnim resursima širom Active Directory forest-a.
Other exploits: https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek
Reference
- NetExec (CME) wiki – Kerberos and krb5.conf generation
- OpenSSH GSSAPIAuthentication
- MIT Kerberos – Using Kerberos on UNIX
- 0xdf – HTB: TheFrizz
HackTricks Automatske komande
Protocol_Name: Kerberos #Protocol Abbreviation if there is one.
Port_Number: 88 #Comma separated if there is more than one.
Protocol_Description: AD Domain Authentication #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for Kerberos
Note: |
Kerberos operates on a principle where it authenticates users without directly managing their access to resources. This is an important distinction because it underlines the protocol's role in security frameworks.
In environments like **Active Directory**, Kerberos is instrumental in establishing the identity of users by validating their secret passwords. This process ensures that each user's identity is confirmed before they interact with network resources. However, Kerberos does not extend its functionality to evaluate or enforce the permissions a user has over specific resources or services. Instead, it provides a secure way of authenticating users, which is a critical first step in the security process.
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-kerberos-88/index.html
Entry_2:
Name: Pre-Creds
Description: Brute Force to get Usernames
Command: nmap -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm="{Domain_Name}",userdb={Big_Userlist} {IP}
Entry_3:
Name: With Usernames
Description: Brute Force with Usernames and Passwords
Note: consider git clone https://github.com/ropnop/kerbrute.git ./kerbrute -h
Entry_4:
Name: With Creds
Description: Attempt to get a list of user service principal names
Command: GetUserSPNs.py -request -dc-ip {IP} active.htb/svc_tgs
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.
HackTricks