88tcp/udp - Pentesting Kerberos

Reading time: 6 minutes

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

Kerberos werk op 'n beginsel waarby dit gebruikers verifieer sonder om hul toegang tot hulpbronne direk te bestuur. Dit is 'n belangrike onderskeid omdat dit die protokol se rol in veiligheidsraamwerke beklemtoon.

In omgewings soos Active Directory, is Kerberos instrumenteel in die vestiging van gebruikersidentiteit deur hul geheime wagwoorde te valideer. Hierdie proses verseker dat elke gebruiker se identiteit bevestig is voordat hulle met netwerkhulpbronne interaksie het. Kerberos strek egter nie sy funksionaliteit uit tot die evalueer of afdwing van die toestemmings wat 'n gebruiker oor spesifieke hulpbronne of dienste het nie. In plaas daarvan bied dit 'n veilige wyse om gebruikers te verifieer, wat 'n kritieke eerste stap in die sekuriteitsproses is.

Na verifikasie deur Kerberos word die besluitnemingsproses oor toegang tot hulpbronne gedelegeer aan individuele dienste binne die netwerk. Hierdie dienste is dan verantwoordelik om die geverifieerde gebruiker se regte en toestemmings te evalueer, gebaseer op die inligting wat deur Kerberos verskaf word oor die gebruiker se voorregte. Hierdie ontwerp maak 'n skeiding van bekommernisse tussen die verifikasie van gebruikersidentiteite en die bestuur van hul toegangsregte moontlik, wat 'n meer buigsame en veilige benadering tot hulpbronbestuur in verspreide netwerke moontlik maak.

Standaardpoort: 88/tcp/udp

PORT   STATE SERVICE
88/tcp open  kerberos-sec

Om te leer hoe om Kerberos te misbruik moet jy die pos oor Active Directory.

Kerberos-only omgewings: kliëntvoorbereiding en probleemoplossing

Wanneer NTLM op domein-dienste (SMB/WinRM/etc.) gedeaktiveer is, moet jy met Kerberos authentiseer. Algemene struikelblokke en 'n werkende workflow:

  • Tydsynchronisasie is verpligtend. As jou gasheerklok met meer as 'n paar minute skeef is, sal jy KRB_AP_ERR_SKEW sien en alle Kerberos auth sal misluk. Sinkroniseer teen die DC:
bash
# quick one-shot sync (requires sudo)
sudo ntpdate <dc.fqdn> || sudo chronyd -q 'server <dc.fqdn> iburst'
  • Genereer 'n geldige krb5.conf vir die teiken realm/domein. netexec (CME fork) kan een vir jou genereer terwyl jy SMB toets:
bash
# 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
  • Verkry 'n TGT en verifieer die ccache:
bash
kinit <user>
klist
  • Gebruik Kerberos met SMB gereedskap (geen wagwoorde gestuur nie, gebruik jou ccache):
bash
# 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 single sign-on (OpenSSH na Windows OpenSSH server):
bash
# 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>

Wenke:

  • Maak seker jou /etc/hosts los die presiese FQDN op waarna jy per SSH/SMB gaan, en dat dit voor enige blote domeininskrywings kom as jy DNS oorbeskryf. SPN-onversoenbaarhede breek GSSAPI.
  • As NTLM op SMB gedeaktiveer is, kan jy STATUS_NOT_SUPPORTED sien by NTLM-pogings; voeg -k by om Kerberos af te dwing.

Meer

Shodan

  • port:88 kerberos

MS14-068

Die MS14-068-kwesbaarheid stel 'n aanvaller in staat om 'n wettige gebruiker se Kerberos-aanmeldings-token te manipuleer om valslik verhoogde voorregte te beweer, soos om 'n Domain Admin te wees. Hierdie vervalste aanspraak word per fout deur die Domain Controller gevalideer, wat ongemagtigde toegang tot netwerkbronne regoor die Active Directory forest moontlik maak.

Kerberos Vulnerability in MS14-068 (KB3011780) Explained – Active Directory & Azure AD/Entra ID Security

Other exploits: https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek

Verwysings

HackTricks Outomatiese Opdragte

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

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks