Basic Active Directory Attack (Single Domain Lab — ASREP-Roasting ) 0x07

Muhamad Hidayat
4 min readJul 4, 2023

--

Assalamualaikum, Wr. Wb

Kerberos adalah protokol autentikasi jaringan yang digunakan untuk memverifikasi identitas pengguna dan memastikan keamanan komunikasi antara pengguna dan sistem di jaringan. Protokol ini memungkinkan pengguna untuk berkomunikasi secara aman melalui jaringan yang tidak terpercaya dengan menggunakan kriptografi.

[MS-KILE]: Kerberos Network Authentication Service (V5) Synopsis | Microsoft Learn

Baca selengkapnya terkait Authentication Process pada Active Directory terutama bagian Kerberos:

Basic Active Directory Attack (Single Domain Lab — LDAP, Kerberos, NTLM) 0x05 | by Muhamad Hidayat | Medium

Apa itu Kerberos Pre-Authentication

Pre-Authentication — Kerberos: The Definitive Guide [Book] (oreilly.com)

Pre-authentication pada Kerberos digunakan untuk mengatasi serangan bruteforce pada versi Kerberos 4 yang memiliki isu terkait pola enkripsi apalagi jika user menggunakan password yang sangat lemah. Kemudian, pada versi Kerberos 5, diperkenalkan fitur Pre-Authentication. Fitur ini memerlukan beberapa identitas sebelum Key Distribution Center (KDC) memberikan tiket kepada suatu principal (user principal name). Terdapat beberapa metode pre-authentication yang dapat digunakan, dan salah satu yang umum digunakan adalah PA-ENC-TIMESTAMP. Metode ini melibatkan validasi timestamp yang dienkripsi sebagai bagian dari proses autentikasi.

User Principal Name adalah pihak yang identitasnya diverifikasi, jadi dalam proses preauthentication, jika principle name tidak terverifikasi ole KDC, maka KDC akan membalikan error KRB-Principal error.

error principal

Setelah error, maka KDC tidak akan melakukan replay terhadap request user sebelumnya terkait Pre-Authentication

Dan juga ketika melakukan request ternyata password tidak valid.

Kondisi jika Preauthentikasi aktif

ASREP-ROAST Attack

Sebagai bagian dari proses autentikasi Kerberos di Active Directory, ada permintaan awal untuk mengautentikasi tanpa kata sandi. Ini adalah artefak yang tersisa dari versi Kerberos yang lebih awal dari Kerberos 5. Pada versi sebelumnya, Kerberos mengizinkan autentikasi tanpa kata sandi.

Sekarang, pada Kerberos 5, kata sandi diperlukan, yang disebut “Pra-Autentikasi.”

Ketika melihat pertukaran Kerberos saat login, anda akan melihat AS-REQ (Authentication Server Request) yang diikuti dengan error Kerberos, yang akan menyatakan bahwa pra-auth diperlukan.

ERR Preauth Required

Dalam kondisi ini lah ketika user dapat melakukan request ticket tanpa harus menggunakan password, yaitu kondisi dimana user melakukan disabling terhadap fitur kerberos pre-authentication.

Toggle off Preauthentication

GetNPUsers.Py

GetNPUsers adalah sebuah tools script yang di gunakan untuk Queries target domain agar users dengan config ‘Do not require Kerberos preauthentication’ diaktifkan maka akan dapat melakukan export Ticket Granting Ticket (TGTs) untuk nantinya dapat dilakukan proses cracking menjadi sebuah plain password.

Getnpusers

Saya melakukan uji coba terhadap lab yang telah saya buat untuk melakukan permintaan tiket (AS) dalam kondisi lab tidak menggunakan pre-authentication. Untuk itu, saya menggunakan perintah berikut:

impacket-GetNPUsers snaplabs/hidayat -dc-ip 10.10.0.254 -request
Success request TGT w/o password
Process behind AS-REP

Setelah menjalankan tools tersebut untuk melakukan requesting tiket (AS-REQ), hasilnya AS-REP menunjukkan bahwa tools tersebut berhasil melakukan export data yang berisi beberapa TGT (Ticket Granting Ticket). Selanjutnya, kami akan menggunakan proses hashing pada data tersebut untuk mendapatkan passwordnya.

Berhasil melakukan cracking TGT

Selanjutnya, saya mencoba untuk melakukan login RDP dengan menggunakan kredensial pengguna yang didapatkan dari proses cracking TGT sebelumnya. Tujuannya adalah untuk memastikan apakah kredensial tersebut valid atau tidak.

Credentials Valid

Berdasarkan pembahasan sebelumnya mengenai serangan ASREP ROAST dan potensi kerentanan terhadap metode autentikasi tertentu dalam protokol Kerberos, diperlukan langkah-langkah penanganan yang tepat untuk mengurangi risiko serangan tersebut.

Salah satu cara penanganan sederhana yang dapat dilakukan adalah dengan menerapkan account policy yang membatasi penggunaan metode autentikasi yang rentan terhadap serangan ASREP ROAST, seperti mematikan pre-authentication untuk akun pengguna yang tidak memerlukannya atau memperketat kebijakan penggunaan kata sandi yang kuat.

Selain itu, pemantauan aktif terhadap aktivitas autentikasi, deteksi serangan, serta pembaruan dan patching yang teratur terhadap sistem Kerberos juga penting dalam menjaga keamanan jaringan.

Dengan menerapkan langkah-langkah ini, organisasi dapat mengurangi potensi risiko serangan ASREP ROAST dan memperkuat keamanan infrastruktur Kerberos mereka.

REFF:
impacket getnpusers | WADComs

Pre-Authentication — Kerberos: The Definitive Guide [Book] (oreilly.com)

8 Basic Differences between Kerberos Version 4 and Version 5 — Core Differences

[MS-KILE]: Kerberos Network Authentication Service (V5) Synopsis | Microsoft Learn

[MS-AUTHSOD]: S4U2self Mechanism: Get a Service Ticket for a Front-End Server | Microsoft Learn

--

--