Untuk memahami bagaimana Keberoasting bekerja, seseorang harus terlebih dahulu memahami dasar-dasar Kerberos.
Kerberos adalah protokol autentikasi yang memungkinkan pengguna dan layanan (seperti aplikasi, basis data, dan server) mengautentikasi dan berkomunikasi dengan aman di dalam Active Directory dan domain lainnya.
Proses otentikasi Kerberos menggunakan sistem tiket. Di inti dari sistem ini terdapat pusat distribusi kunci (KDC), yang berjalan pada pengontrol domain jaringan.
KDC pada dasarnya adalah penjaga gerbang domain. Ini mengotentikasi pengguna dan layanan di jaringan dan mengeluarkan tiket mereka. Tiket adalah kredenSIAL yang membuktikan identitas pengguna dan memungkinkan mereka mengakses sumber daya lain di jaringan. Pengguna dan layanan saling memutuskan tiket ini untuk memverifikasi identitas masing-masing.
Ketika pengguna masuk ke domain, mereka terlebih dahulu melakukan otentikasi dengan KDC dan menerima tiket pemberian tiket (TGT). TGT ini memungkinkan pengguna untuk meminta akses ke layanan domain.
Ketika pengguna ingin mengakses layanan, mereka mengirim permintaan ke layanan pemberian tiket (TGS) KDC. TGT menyertai permintaan ini untuk menjamin identitas pengguna.
Sebagai tanggapan, KDC mengeluarkan tiket layanan, yang juga disebut “tiket TGS”, yang dienkripsi menggunakan kata sandi akun layanan. Ini terjadi untuk memastikan bahwa hanya layanan target yang dapat memvalidasi permintaan akses pengguna. Pengguna menunjukkan tiket layanan ini ke layanan target, yang mengautentikasi pengguna dan memulai sesi yang aman.
Ada beberapa detail desain Kerberos yang membuatnya terbuka terhadap Kerberoasting.
Pertama, KDC tidak memeriksa apakah pengguna memiliki izin untuk mengakses suatu layanan. Setiap pengguna dapat meminta tiket untuk layanan apa pun. Terserah pada masing-masing layanan untuk menegakkan izin dan memblokir pengguna yang tidak sah. Oleh karena itu, peretas tidak perlu menyita akun admin domain atau pengguna istimewa lainnya. Akun apa pun yang disusupi dapat berfungsi.
Kedua, setiap layanan dalam domain Kerberos harus dikaitkan dengan akun layanan yang bertanggung jawab untuk menjalankan layanan pada domain tersebut. Akun layanan memungkinkan Kerberos untuk mengotentikasi layanan, mengeluarkan tiket layanan, dan menegakkan kontrol keamanan. Akun ini juga menjadi target peretas, karena sering memiliki hak akses yang tinggi.
Ketiga, tiket Kerberos dienkripsi, menggunakan hash kata sandi akun terkait sebagai kunci. Penting untuk Kerberoasting, tiket layanan menggunakan hash kata sandi dari akun layanan yang relevan.
Kata sandi akun adalah kunci enkripsi simetris yang mudah digunakan karena hanya KDC dan layanan terkait yang mengetahui kata sandi tersebut. Namun, karena tiket dienkripsi menggunakan hash kata sandi, peretas dapat merekayasa balik kata sandi akun layanan dengan memecahkan enkripsi tiket.
Selain itu, akun layanan yang dikonfigurasi secara manual sering kali mengaktifkan penandaan “kata sandi tidak pernah kedaluwarsa”. Di jaringan yang sudah lama ada, hal ini dapat berarti bahwa akun layanan menggunakan kata sandi yang sangat tua yang mengikuti pedoman keamanan yang sudah ketinggalan waktu, sehingga mudah untuk dipatahkan.