Di dunia cybersecurity, Active Directory (AD) sering disebut sebagai "Kunci Kerajaan" (Keys to the Kingdom) dalam infrastruktur IT sebuah perusahaan. Jika seorang penyerang berhasil menguasai Domain Controller, maka seluruh ekosistem jaringan — mulai dari data kredensial, server, hingga komputer karyawan — bisa dibilang sudah jatuh ke tangannya. Oleh karena itu, memahami bagaimana cara memetakan dan melakukan enumerasi pada lingkungan AD adalah kemampuan fundamental yang esensial.

Pada writeup kali ini, saya akan membagikan alur pengerjaan ( walkthrough) untuk menyelesaikan room AD Basic Enumeration di platform TryHackMe. Hal yang paling menarik dari lab ini adalah kita akan melihat realita serangan siber modern: mayoritas kompromi pada jaringan AD saat ini tidak membutuhkan Zero-Day Exploit yang rumit.

Sering kali, celah paling mematikan justru berasal dari kesalahan konfigurasi (misconfigurations) dasar dan penyalahgunaan fitur bawaan sistem (abusing built-in features) yang dibiarkan terbuka oleh administrator jaringan.

Dalam artikel ini, kita akan melakukan simulasi serangan terstruktur tanpa memiliki kredensial apa pun di awal (black-box approach). Langkah-langkah yang akan kita bahas meliputi:

  1. Service Footprinting: Memetakan layanan krusial yang berjalan di Domain Controller.
  2. SMB Enumeration: Mengeksploitasi kelemahan Null Session untuk mencuri file sensitif.
  3. Domain Enumeration: Menarik daftar user dan kebijakan password secara anonim menggunakan enum4linux.
  4. Password Spraying: Melakukan eksekusi serangan otentikasi masif untuk mendapatkan pijakan awal (foothold).

Fase 1: Service Footprinting (Task 2 — Mapping out the network)

Langkah pertama dalam setiap skenario penetration testing adalah melakukan reconnaissance atau pengintaian. Karena target kita adalah sebuah infrastruktur Active Directory, tujuan utama kita adalah mengidentifikasi layanan (services) apa saja yang berjalan di server target.

Untuk melakukannya, saya menggunakan Nmap, salah satu tool network scanner paling andal. Perintah yang saya jalankan adalah:

nmap -sC -sV -T4 10.211.11.10

Penjelasan Perintah:

  • -sC: Menjalankan script bawaan (default) Nmap untuk melakukan enumerasi dasar pada layanan yang ditemukan.
  • -sV: Melakukan deteksi versi (Version Detection) untuk mengetahui secara pasti perangkat lunak apa yang berjalan di balik sebuah port.
  • -T4: Mengatur kecepatan scanning menjadi lebih agresif agar prosesnya tidak memakan waktu terlalu lama.
None
hasil dari perintah nmap bagian 1.
None
hasil dari perintah nmap bagian 2.

Dari hasil scanning tersebut, kita mendapatkan "harta karun" informasi yang sangat berharga. Beberapa port krusial yang terbuka mengonfirmasi bahwa mesin ini memang bertindak sebagai Domain Controller, di antaranya:

  • Port 53 (DNS): Layanan pencari krusial di ekosistem AD.
  • Port 88 (Kerberos): Protokol autentikasi utama Windows.
  • Port 389 & 3268 (LDAP): Layanan direktori tempat data objek disimpan.
  • Port 445 (SMB): Layanan berbagi file dan printer.

Selain port yang terbuka, script -sC dari Nmap (khususnya pada bagian smb-os-discovery) secara otomatis berhasil mengekstrak dua informasi fundamental tentang target kita, yaitu:

  • Domain Name: tryhackme.loc
  • OS Version: Windows Server 2019 Datacenter

Informasi ini langsung menjawab dua pertanyaan pertama yang diberikan pada Task 2: Mapping out the network di room TryHackMe ini.

Menjawab Pertanyaan Task 2:

  • ❓ Pertanyaan 1: What is the domain name of our target?
  • ✅ Jawaban: tryhackme.loc
  • ❓ Pertanyaan 2: What version of Windows Server is running on the DC?
  • ✅ Jawaban: Windows Server 2019 Datacenter

Fase 2: Eksploitasi SMB Null Session (Task 3 — Network Enumeration with SMB)

Setelah mengetahui port apa saja yang terbuka, langkah selanjutnya adalah mencari titik lemah atau celah dari layanan-layanan tersebut. Pada materi bootcamp Active Directory, salah satu celah konfigurasi yang paling sering ditemui adalah SMB Null Session.

Singkatnya, Null Session terjadi ketika sebuah server mengizinkan koneksi anonim (tanpa username dan password) untuk melihat atau bahkan membaca isi dari folder yang dibagikan (Shared Folders).

Untuk mengujinya, saya menggunakan tool smbclient di Kali Linux dengan perintah berikut:

smbclient -L \\\\10.211.11.10\\ -N

(Catatan: Parameter -L digunakan untuk melihat daftar folder, dan -N memaksa koneksi secara anonim/tanpa password).

None

Boom! Anonymous login successful. Server membalas dengan memberikan daftar share yang dimilikinya.

Dari daftar tersebut, kita bisa mengabaikan share default bawaan Windows seperti ADMIN$, C$, IPC$, NETLOGON, dan SYSVOL. Perhatian saya langsung tertuju pada share kustom yang dibuat oleh admin, yaitu SharedFiles dan UserBackups. Di dunia CTF, folder-folder dengan nama unik inilah yang biasanya menyimpan data sensitif.

Saya memutuskan untuk masuk ke dalam share UserBackups menggunakan perintah:

smbclient \\\\10.211.11.10\\UserBackups -N

Setelah berhasil masuk dan mengetikkan ls, tebakan saya benar! Terdapat dua file mencurigakan di dalamnya: flag.txt dan story.txt. Karena kita berada di prompt khusus SMB, saya harus mengunduhnya terlebih dahulu ke komputer lokal menggunakan perintah get flag.txt.

Setelah keluar dari SMB (exit), saya membaca isi file tersebut dengan perintah cat flag.txt dan menemukan flag yang dicari!

None

Menjawab Pertanyaan Task 3:

  • ❓ Pertanyaan: What is the flag hidden in one of the shares?
  • ✅ Jawaban: THM{88_SMB_88}

Fase 3: Domain Enumeration (Task 4 — Domain Enumeration)

Setelah mengamankan flag pertama, kita perlu mengumpulkan lebih banyak informasi tentang struktur direktori, terutama daftar username yang valid. Di lingkungan Active Directory, informasi seperti keanggotaan grup dan daftar user sering kali bisa ditarik secara anonim berkat fitur bawaan protokol lama seperti MSRPC (Microsoft RPC) dan LDAP.

Tool andalan yang sangat direkomendasikan untuk melakukan otomatisasi enumerasi ini di Linux adalah enum4linux.

Saya memulai pemindaian penuh dengan perintah:

enum4linux -a 10.211.11.10

(Catatan: Parameter -a digunakan untuk menjalankan semua skrip enumerasi, termasuk menarik daftar pengguna, grup, hingga kebijakan password).

Menjawab Pertanyaan Task 4:

  • ❓ Pertanyaan 1: Pengguna rduke tergabung dalam grup apa?
  • ✅ Jawaban: Domain Users
None
  • ❓ Pertanyaan 2: Siapa nama lengkap pengguna ini?
  • ✅ Jawaban: Raoul Duke
None
  • ❓ Pertanyaan 3: Nama pengguna mana yang terkait dengan RID 1634?
  • ✅ Jawaban: katie.thomas
None
  • penjelasan: 0x662 adalah bentukhexa dari 1634
None

Fase 4: Password Spraying (Task 5 — Password Spraying)

Kini kita memasuki tahap transisi dari pengintaian ( reconnaissance) menuju eksploitasi aktif. Berbekal daftar username dari fase sebelumnya, kita akan mencoba mendapatkan akses menggunakan teknik Password Spraying.

Berbeda dengan Brute-Force konvensional yang mencoba ribuan password pada satu akun (yang berisiko membuat akun tersebut terkunci), Password Spraying mencoba satu atau beberapa password umum ke banyak akun sekaligus. Namun, sebelum melakukan ini di lingkungan Active Directory, sangat penting untuk memeriksa Password Policy agar kita tidak memicu Account Lockout dan membunyikan alarm admin.

Menggunakan hasil enum4linux sebelumnya (atau menjalankan ulang dengan bendera -P khusus untuk kebijakan password: enum4linux -P 10.211.11.10), saya menemukan informasi krusial berikut:

Menjawab Pertanyaan Task 5 (Bagian 1):

  • ❓ Pertanyaan 1: What is the minimum password length?
  • ✅ Jawaban: 7
None
  • ❓ Pertanyaan 2: What is the locked account duration?
  • ✅ Jawaban: 2 minutes
None

Eksekusi Password Spraying

Untuk simulasi di lab ini, TryHackMe memberikan petunjuk beberapa kata sandi lemah untuk diuji. Saya menyusun password tersebut ke dalam sebuah file bernama passwords.txt:

  • Password!
  • Password1
  • Password1!
  • P@ssword
  • Pa55word1

Sementara itu, semua username yang kita panen dari Task 4 saya simpan ke dalam file users.txt.

Untuk melakukan eksekusi otentikasi masif melalui protokol SMB, saya menggunakan tool CrackMapExec (sekarang sering digantikan oleh NetExec). Perintahnya sangat sederhana namun mematikan:

crackmapexec smb 10.211.11.10 -u users.txt -p passwords.txt

Terminal mulai dibanjiri dengan teks berwarna merah [-] STATUS_LOGON_FAILURE, yang menandakan kombinasi salah. Namun, di tengah lautan merah tersebut, muncul satu baris hijau [+] yang bersinar!

None
  • ❓ Pertanyaan 3: Perform password spraying using CrackMapExec. What valid credentials did you find?
  • ✅ Jawaban: rduke:Password1!
  • Penjelasan: Hasil eksploitasi mengonfirmasi bahwa pengguna rduke menggunakan kata sandi lemah Password1!. Kita akhirnya mendapatkan pijakan awal (foothold) berupa kredensial valid di dalam Domain!

Kesimpulan

Menyelesaikan room AD Basic Enumeration di TryHackMe ini memberikan perspektif yang sangat realistis tentang bagaimana peretas beroperasi di fase awal serangan Active Directory.

Kita belajar bahwa kompromi tidak selalu dimulai dari malware atau exploit tingkat dewa. Sering kali, semuanya berawal dari hal-hal sepele yang terlewat oleh tim IT:

  1. SMB Null Session yang dibiarkan terbuka, memungkinkan siapa saja memanen daftar user anonim.
  2. Kebijakan kata sandi (Password Policy) yang lemah, di mana admin atau user masih menggunakan password musiman yang mudah ditebak (seperti Password1!).

Kombinasi kedua kesalahan konfigurasi inilah yang memungkinkan teknik Password Spraying sukses dieksekusi, memberikan akses langsung ke dalam jaringan internal (Domain) perusahaan.

Terima kasih sudah membaca writeup ini! Semoga bermanfaat bagi teman-teman yang sedang belajar dasar-dasar penetrasi Active Directory. Jangan lupa untuk mencoba room-nya langsung di TryHackMe!