Basic Active Directory Attack (Single Domain Lab — LDAP, Kerberos, NTLM) 0x05

Muhamad Hidayat
7 min readApr 4, 2023

--

Wikipedia

Assalamualaikum Wr. Wb.

Pertama-tama, kita harus memahami perbedaan antara authentication dan authorization. Authentication berfungsi untuk mengidentifikasi atau mengenali sebuah entitas, tugas authorization akan menentukan hak akses entitas tersebut, termasuk apa yang dapat dilakukan oleh entitas tersebut dan resource apa yang dapat dimanipulasi oleh entitas tersebut.

OWASP API Security (Offensive Prespective) : Broken User Authentication #2 | by Muhamad Hidayat | Medium

OWASP API Security (Offensive Prespective) : Broken Object Level Authorization #1 | by Muhamad Hidayat | Medium

Lalu mengapa autentikasi dan otorisasi penting dalam Active Directory?

Autentikasi dan otorisasi adalah dua konsep penting dalam keamanan jaringan yang dapat membantu menjaga integritas dan kerahasiaan data. Dalam konteks protokol autentikasi seperti Kerberos, NTLM, dan LDAP, otentikasi dan otorisasi memainkan peran kunci dalam mengamankan jaringan dan memberikan akses yang tepat kepada pengguna yang terautentikasi. Dalam artikel ini, kita akan membahas bagaimana Kerberos, NTLM, dan LDAP dapat digunakan untuk memberikan otentikasi dan otorisasi pada jaringan, serta bagaimana konsep-konsep ini berfungsi untuk menjaga keamanan dan integritas data.

Okta

Apa itu LDAP?

LDAP (Lightweight Directory Access Protocol) adalah protokol jaringan yang digunakan untuk mengakses dan mengelola informasi direktori. Protokol ini digunakan untuk mengakses dan memodifikasi data di direktori yang terdiri dari objek seperti pengguna, grup, dan sumber daya. LDAP adalah protokol standar yang banyak digunakan oleh sistem operasi dan aplikasi untuk mengatur otentikasi dan otorisasi pengguna di jaringan.

Wikipedia (Phone Book)

Seperti katalog telepon. Katalog telepon digunakan untuk mencari nomor telepon orang atau perusahaan yang ingin dihubungi. Sama seperti itu, LDAP digunakan untuk mencari informasi tentang pengguna, grup, atau sumber daya di jaringan. Seperti halnya katalog telepon yang terstruktur dan diatur berdasarkan kategori, direktori LDAP juga terstruktur dan diatur berdasarkan objek yang ada di dalamnya. Sebagai contoh, dalam direktori LDAP, pengguna dapat dikelompokkan berdasarkan departemen atau unit kerja, sehingga memudahkan pencarian dan pengaturan hak akses.

Kerberos dan NTLM menggunakan layanan direktori yang menggunakan LDAP sebagai protokol akses. Layanan direktori seperti Active Directory yang digunakan oleh sistem operasi Windows dan OpenLDAP yang digunakan oleh sistem operasi Linux, menggunakan LDAP sebagai protokol akses untuk mengatur otentikasi dan otorisasi pengguna di jaringan.

Melakukan Querying untuk enumerasi LDAP
Melakukan Sniffing Proses LDAP pada DC

NTLM dapat digunakan sebagai metode autentikasi alternatif di dalam direktori LDAP. Dalam hal ini, ketika seorang pengguna mencoba mengakses direktori LDAP, pengguna dapat memasukkan kredensial NTLM sebagai metode autentikasi. Direktori LDAP kemudian akan menggunakan protokol NTLM untuk memverifikasi kredensial pengguna dan memberikan akses ke direktori.

Proses Autentikasi NTLMSSP yang di gunakan LDAP

NTLMSSP digunakan untuk mengumpulkan kredensial pengguna dan mengirimnya ke server untuk divalidasi. Saat seorang pengguna mencoba mengakses suatu sumber daya, NTLMSSP akan mengambil nama pengguna dan kata sandi yang dimasukkan oleh pengguna dan menyimpannya dalam bentuk hash.

Dalam konteks LDAP, NTLM dapat digunakan sebagai metode otentikasi alternatif jika Kerberos tidak tersedia atau tidak dapat digunakan dengan baik. Namun, jika Kerberos tersedia dan dapat diakses dengan baik, sebaiknya Kerberos digunakan sebagai metode otentikasi utama karena lebih aman dan efisien dalam mengamankan proses otentikasi di lingkungan jaringan, dan juga tergantung tools apa yang digunakan untuk melakukan akses LDAP, karna beda-beda tools beda beda proses autentikasi yang digunakan.

Apa itu NTLM?

src: IONOS

Windows New Technology LAN Manager (NTLM) adalah serangkaian protokol keamanan yang ditawarkan oleh Microsoft untuk mengautentikasi identitas pengguna dan melindungi integritas serta kerahasiaan aktivitas mereka. Pada intinya, NTLM adalah alat single sign on (SSO) yang mengandalkan protokol challenge-response untuk memverifikasi pengguna tanpa memerlukan pengiriman password.

Meskipun rentan terhadap serangan, NTLM masih banyak digunakan bahkan pada sistem baru untuk menjaga kompatibilitas dengan klien dan server legacy. Meskipun NTLM masih didukung oleh Microsoft, namun telah digantikan oleh Kerberos sebagai protokol autentikasi default dalam domain Active Directory (AD) Windows 2000 dan setelahnya.

Photo by Tom Seger on Unsplash

Seperti melewati beberapa lapisan keamanan untuk memasuki sebuah gedung yang hanya bisa diakses oleh orang yang berwenang. Pertama, pengguna harus menunjukkan kartu identitas mereka di gerbang pertama, lalu memasukkan kode akses di pintu kedua, dan terakhir memverifikasi sidik jari mereka di pintu ketiga sebelum diizinkan memasuki ruangan yang diinginkan. Dalam proses autentikasi NTLM, pengguna harus memasukkan kredensial mereka ke dalam sistem, kemudian menyelesaikan serangkaian tantangan untuk memverifikasi identitas mereka sebelum diizinkan untuk mengakses sumber daya jaringan. Setiap lapisan keamanan dalam proses autentikasi NTLM bekerja sama untuk memastikan bahwa hanya pengguna yang sah dan diotorisasi yang diberikan akses ke sumber daya jaringan yang terlindungi.

Melakukan Querying untuk enumerasi LDAP, agar triggering NTLM Authentication
Sniffing Proses Binding ke Server LDAP pada DC

Klien LDAP mengirimkan permintaan binding ke server LDAP dengan menggunakan perintah bindRequest. Permintaan ini akan menyertakan kredensial autentikasi pengguna, seperti nama pengguna dan kata sandi.

Server LDAP akan menerima permintaan binding dari klien LDAP dan akan merespons dengan menggunakan perintah bindResponse. Respon ini akan menentukan apakah proses binding berhasil atau tidak.

Proses Challange

Jika autentikasi NTLM dipilih sebagai metode autentikasi yang digunakan, klien LDAP akan mengirimkan permintaan NTLMSSP_NEGOTIATE ke server LDAP. Permintaan ini akan mengirimkan parameter awal, seperti versi protokol, mode enkripsi, dan lainnya.

Server LDAP akan merespons permintaan NTLMSSP_NEGOTIATE dari klien LDAP dengan mengirimkan nilai tantangan (challenge) menggunakan perintah NTLMSSP_CHALLENGE. Nilai tantangan ini berisi nilai acak yang hanya diketahui oleh server LDAP.

Klien LDAP akan melakukan otentikasi dengan mengirimkan respon autentikasi (NTLMSSP_AUTH) ke server LDAP. Respon ini akan dihasilkan dari nilai acak yang diberikan oleh server LDAP dan kata sandi pengguna.

Server LDAP akan menerima respon autentikasi dari klien LDAP dan akan memeriksa apakah respon tersebut valid atau tidak. Jika respon autentikasi valid, server LDAP akan mengirimkan respon bindResponse yang menandakan bahwa proses binding berhasil dilakukan.

Menjalankan Query LDAP

Setelah proses binding berhasil dilakukan, klien LDAP dapat melakukan operasi LDAP tertentu terhadap objek yang telah diikat. Urutan proses di atas dapat berbeda-beda tergantung pada implementasi protokol NTLM yang digunakan.

Apa itu Kerberos?

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.

Dalam konteks autentikasi Kerberos, beberapa istilah yang terkait antara lain:

  • Ticket-granting ticket (TGT): TGT adalah tiket yang dikeluarkan oleh Kerberos AS setelah berhasil melakukan autentikasi pengguna. TGT ini digunakan untuk meminta service ticket dari TGS.
  • Authentication service request (AS_REQ): Permintaan awal yang dikirimkan oleh client ke Kerberos AS untuk meminta TGT.
  • Authentication service reply (AS_REP): Respons yang dikirimkan oleh Kerberos AS ke client dalam bentuk TGT.
  • Service ticket (ST): Ticket yang dikeluarkan oleh Kerberos TGS setelah berhasil memverifikasi TGT dari client. ST ini digunakan oleh client untuk melakukan autentikasi dan mengakses sumber daya yang diinginkan.
  • Ticket Granting Service request (TGS_REQ): Permintaan yang dikirimkan oleh client ke TGS untuk meminta ST.
  • Ticket Granting Service reply (TGS_REP): Respons yang dikirimkan oleh Kerberos TGS ke client dalam bentuk ST.
[MS-KILE]: Kerberos Network Authentication Service (V5) Synopsis | Microsoft Learn

Sebuah permintaan awal authentication service request (AS_REQ) dikirimkan oleh client ke Kerberos authentication server (AS) dengan mencantumkan username dan domain kerja.

Proses Authentication Request ke KDC

AS menghasilkan sebuah ticket-granting ticket (TGT) yang berisi informasi rahasia yang dikirimkan kembali ke client dalam bentuk authentication service reply (AS_REP).

Authentication Mereply dengan membawa TGT (Ticket Granting Ticket)

Client menggunakan TGT untuk meminta service ticket (TGS_REQ) dari Ticket Granting Service (TGS).

Ticket Granting Service melakukan Request Service Ticket (ST)

TGS memverifikasi TGT dan menghasilkan service ticket (TGS_REP) yang berisi informasi rahasia terkait dengan layanan yang diminta oleh client.

Ticket Granting

Client mengirimkan TGS_REP ke layanan untuk melakukan autentikasi dan mengakses sumber daya yang diinginkan.

Layanan memverifikasi TGS_REP dan memberikan akses ke sumber daya yang diminta oleh client.

Verifikasi Service Ticket Oleh Service Server

Demikianlah penjelasan komprehensif mengenai protokol LDAP, Kerberos, dan NTLM beserta peran masing-masing dalam autentikasi dan otorisasi pengguna dalam jaringan. Setiap protokol memiliki kelebihan dan kelemahan yang harus dipertimbangkan sebelum digunakan dalam implementasi autentikasi dan otorisasi pada suatu sistem. Kami memohon maaf jika terdapat kesalahan definisi atau penjelasan dalam artikel ini dan berharap artikel ini dapat bermanfaat bagi pembaca dalam memahami konsep autentikasi dan otorisasi dalam jaringan.

Terimakasih.

--

--