Latar
Kerberos dirancang sebagai protokol autentikasi yang jauh lebih kuat dibanding NTLM, dan pada praktiknya memang lebih tahan terhadap banyak teknik yang efektif digunakan terhadap NTLM. Tapi kekuatan sebuah protokol tidak menghilangkan risiko dari cara protokol itu diimplementasikan bersama komponen lain di sekitarnya, khususnya akun layanan yang menjadi bagian tak terpisahkan dari operasional Active Directory.
Kerberoasting adalah teknik yang tidak menyerang kelemahan protokol Kerberos itu sendiri, melainkan memanfaatkan kombinasi antara desain resminya dan kebiasaan umum dalam mengelola akun layanan. Itu yang bikin teknik ini konsisten efektif di banyak environment Active Directory meski sudah dikenal luas sejak lama.
Bagaimana Service Ticket Bekerja
Dalam skema Kerberos, ketika sebuah pengguna atau sistem ingin mengakses sebuah layanan yang berjalan di bawah akun tertentu, seperti aplikasi database yang berjalan menggunakan service account, sistem akan meminta service ticket dari domain controller. Domain controller akan mengenkripsi ticket ini menggunakan hash password dari akun layanan yang dituju, lalu mengirimkannya kembali ke peminta.
Bagian penting yang perlu dipahami adalah siapa pun pengguna domain yang terautentikasi, sekalipun tanpa privilege tinggi, berhak meminta service ticket untuk akun layanan mana pun yang terdaftar dengan Service Principal Name, tanpa perlu privilege khusus untuk melakukan permintaan tersebut. Ini bukan bug, melainkan bagian dari desain resmi protokol Kerberos.
Kenapa Ini Bisa Dieksploitasi
Karena service ticket dienkripsi menggunakan hash password akun layanan, ticket yang berhasil didapat bisa dibawa keluar dan dicoba dipecahkan secara offline tanpa perlu interaksi lebih jauh dengan domain controller, dan tanpa memicu lockout policy karena proses ini tidak melibatkan percobaan login yang gagal secara langsung.
Efektivitas serangan ini pada akhirnya bergantung sepenuhnya pada seberapa kuat password akun layanan tersebut. Di sinilah letak masalah struktural yang sering muncul di lapangan: akun layanan biasanya dibuat sekali saat sebuah aplikasi pertama kali di-deploy, passwordnya ditetapkan pada saat itu, dan hampir tidak pernah diganti lagi selama bertahun-tahun karena mengganti password akun layanan berisiko mengganggu operasional aplikasi yang bergantung padanya.
Password yang tidak pernah diganti dalam jangka waktu lama secara statistik jauh lebih rentan dipecahkan dibanding password pengguna biasa yang tunduk pada kebijakan rotasi rutin, terutama kalau password tersebut dibuat manual oleh admin di masa lampau tanpa mengikuti standar kompleksitas yang ketat.
Dampak Ketika Akun Layanan Berhasil Dikompromikan
Akun layanan sering memiliki privilege yang jauh lebih tinggi dari yang disadari, karena kebutuhan aplikasi yang dijalankannya. Sebuah akun layanan untuk aplikasi backup misalnya, mungkin punya hak akses baca ke banyak sistem sekaligus. Akun layanan untuk sinkronisasi data antar sistem mungkin punya privilege menulis pada database yang sensitif.
Kalau password akun layanan berhasil dipecahkan lewat proses offline cracking setelah kerberoasting, penyerang mendapatkan akses dengan privilege setara akun tersebut, sering kali jauh lebih besar dari privilege pengguna domain biasa, tanpa perlu melakukan aktivitas mencolok yang mudah terdeteksi sistem monitoring standar.
Rekomendasi
Gunakan password yang panjang dan kompleks untuk seluruh akun layanan, idealnya dikelola melalui Managed Service Account jika environment mendukungnya. Managed Service Account menangani rotasi password secara otomatis tanpa perlu intervensi manual yang berisiko mengganggu operasional.
Terapkan rotasi password berkala pada akun layanan yang tidak bisa menggunakan Managed Service Account. Meski lebih menantang secara operasional, rotasi berkala tetap jauh lebih baik dibanding password yang sama sekali tidak pernah diganti.
Batasi privilege akun layanan seketat mungkin sesuai kebutuhan aplikasinya. Jangan berikan privilege administratif tingkat domain kepada akun layanan yang sebenarnya hanya butuh akses ke sistem tertentu.
Monitor permintaan service ticket yang tidak wajar sebagai indikator dini. Lonjakan permintaan ticket untuk banyak Service Principal Name dalam waktu singkat dari satu akun bisa jadi indikasi aktivitas kerberoasting yang sedang berlangsung.
Audit seluruh akun dengan Service Principal Name terdaftar secara berkala. Identifikasi akun layanan mana yang masih aktif digunakan, mana yang sudah tidak relevan tapi belum dihapus, dan pastikan seluruhnya mengikuti kebijakan password yang sama ketatnya dengan akun administratif.
Penutup
Kerberoasting menunjukkan bahwa protokol yang secara desain kuat tetap bisa jadi jalur eksploitasi kalau komponen di sekitarnya, dalam hal ini kebiasaan mengelola akun layanan, tidak mendapat perhatian yang sama. Teknik ini tidak membutuhkan celah pada Kerberos itu sendiri, hanya membutuhkan satu akun layanan dengan password lemah yang sudah lama tidak diganti.
Kekuatan sebuah sistem keamanan pada akhirnya ditentukan oleh bagian yang paling lemah di dalamnya, dan akun layanan yang jarang diperhatikan sering menjadi bagian itu di lingkungan Active Directory.
Jika Anda ingin memastikan akun layanan di lingkungan Active Directory Anda tidak menjadi celah yang terlupakan, tim Security Squad LOGIQUE siap membantu.








