None

Introduction

Active Directory (AD) enumeration adalah salah satu tahap paling penting dalam penetration testing pada jaringan Windows. Dalam banyak kasus penetration testing internal, tester hanya diberikan akses ke jaringan melalui VPN tanpa kredensial domain. Oleh karena itu, proses pengumpulan informasi tentang domain menjadi sangat penting.

Dalam artikel ini, saya akan membahas dasar-dasar Active Directory Enumeration menggunakan lab dari TryHackMe, khususnya pada room Active Directory Basics Enumeration.

Tujuan dari enumerasi ini adalah untuk menemukan informasi penting seperti:

  • User domain
  • Group
  • Computer
  • Domain policy
  • Service yang berjalan

Informasi tersebut dapat digunakan untuk menemukan attack path atau potensi kerentanan pada jaringan.

Network Discovery

Pada tahap pertama dilakukan pencarian host yang aktif di dalam jaringan menggunakan fping.

Perintah yang digunakan:

None

Penjelasan singkat:

  • -a menampilkan host yang aktif
  • -g melakukan scanning seluruh range IP dalam subnet
  • -q menampilkan hasil secara ringkas

Hasil scanning menunjukkan beberapa host yang aktif:

10.211.11.10
10.211.11.20
10.211.11.250

Setelah menjalankan perintah tersebut, kita berhasil mengidentifikasi beberapa host yang aktif di dalam jaringan. Alamat IP 10.211.11.10 dan 10.211.11.20 merupakan mesin yang akan menjadi target utama untuk proses analisis lebih lanjut. Sementara itu, host lain yang berfungsi sebagai perangkat jaringan seperti gateway atau layanan VPN dapat diabaikan karena berada di luar ruang lingkup pengujian.

Untuk mempermudah proses pada tahap berikutnya, kedua alamat IP target tersebut kemudian disimpan ke dalam sebuah file teks bernama hosts.txt. File ini berfungsi sebagai daftar target yang nantinya dapat digunakan kembali dalam proses scanning atau enumerasi selanjutnya menggunakan tools seperti Nmap. Dengan cara ini, proses pengujian menjadi lebih rapi dan efisien karena semua target sudah tersimpan dalam satu file.

None

Hal ini berarti terdapat 3 mesin yang aktif pada jaringan tersebut. Informasi ini penting karena host-host tersebut akan menjadi target untuk proses enumerasi selanjutnya, seperti melakukan port scanning menggunakan Nmap untuk mengetahui service yang berjalan pada masing-masing mesin.

Port Scanning menggunakan Nmap

Setelah mendapatkan daftar target pada file hosts.txt, langkah selanjutnya adalah melakukan port scanning menggunakan Nmap untuk mengetahui service yang berjalan pada setiap host.

Perintah yang digunakan:

abyan㉿abyan)-[~/Downloads]
└─$ nmap -p 88,135,139,389,445 -sV -sC -iL hosts.txt

Starting Nmap 7.95 ( https://nmap.org ) at 2026-03-11 12:31 EDT
Nmap scan report for 10.211.11.10 (10.211.11.10)
Host is up (0.18s latency).nmap -p 88,135,139,389,445 -sV -sC -iL hosts.txt

Perintah tersebut melakukan scanning pada beberapa port penting yang sering digunakan dalam lingkungan Active Directory.

None

Berdasarkan hasil scanning, host 10.211.11.10 memiliki port 88, 135, 139, 389, dan 445 dalam keadaan terbuka. Service yang terdeteksi menunjukkan bahwa mesin ini menjalankan Windows Server 2019 dengan nama komputer DC serta domain tryhackme.loc. Kombinasi service seperti Kerberos, LDAP, dan SMB mengindikasikan bahwa mesin tersebut kemungkinan besar berperan sebagai Domain Controller.

Sementara itu pada host 10.211.11.20, hanya beberapa port yang terbuka seperti 135, 139, dan 445, sedangkan port 88 (Kerberos) dan 389 (LDAP) berada dalam kondisi filtered. Hal ini menunjukkan bahwa mesin tersebut kemungkinan merupakan client atau server lain dalam domain, bukan Domain Controller utama.

Berikut fungsi dari port yang dianalisis dalam proses scanning:

None

Dari hasil scanning ini dapat disimpulkan bahwa 10.211.11.10 merupakan target utama karena menjalankan banyak service domain yang berkaitan langsung dengan Active Directory, sehingga host ini menjadi fokus pada tahap enumerasi selanjutnya.

Initial Findings / Enumeration Summary

None

Melalui teknik enumerasi ini, kita berhasil mengidentifikasi dua host aktif dalam jaringan target, yaitu satu Domain Controller dan satu Workstation. Selain itu, kita juga berhasil mengetahui nama domain serta beberapa service penting yang berjalan pada Domain Controller seperti Kerberos, LDAP, dan SMB. Informasi ini sangat penting karena dapat digunakan sebagai dasar untuk melakukan enumeration lebih lanjut terhadap domain pada tahap berikutnya.

SMB Enumeration / Service Enumeration

Pada tahap ini dilakukan scanning terhadap Domain Controller untuk mengidentifikasi service yang berjalan pada port-port yang berkaitan dengan lingkungan Windows dan Active Directory. Proses scanning dilakukan menggunakan Nmap.

Perintah yang digunakan adalah:

None

Perintah tersebut melakukan scanning terhadap beberapa port penting sekaligus mencoba mendeteksi versi service (-sV) serta menjalankan script default dari Nmap (-sC) untuk mendapatkan informasi tambahan.

Berdasarkan hasil scanning, host 10.211.11.10 memiliki beberapa port penting yang terbuka, yaitu 88, 135, 139, 389, 445, dan 636. Port 88 menunjukkan service Kerberos yang digunakan untuk proses autentikasi pada Active Directory. Port 389 menunjukkan service LDAP yang digunakan untuk mengakses informasi directory seperti user, group, dan kebijakan domain. Selain itu, port 445 menjalankan service SMB yang digunakan untuk file sharing pada sistem Windows.

Dari informasi yang muncul juga diketahui bahwa sistem operasi yang digunakan adalah Windows Server 2019 Datacenter dengan nama komputer DC dan domain tryhackme.loc. Hal ini semakin menguatkan bahwa mesin tersebut berperan sebagai Domain Controller dalam jaringan.

Informasi yang diperoleh dari proses scanning ini sangat penting karena dapat digunakan sebagai dasar untuk melakukan enumeration lebih lanjut, khususnya terhadap layanan SMB dan LDAP untuk mencari share folder, user domain, atau konfigurasi lain yang dapat dimanfaatkan pada tahap pengujian berikutnya.

Listing SMB Shares

Setelah mengetahui bahwa server menjalankan service SMB, langkah selanjutnya adalah mencoba melihat SMB shares yang tersedia. Karena pada tahap ini kita belum memiliki kredensial, kita mencoba melakukan anonymous login atau null session untuk melihat apakah server mengizinkan akses tanpa username dan password.

Untuk melakukan enumerasi SMB shares dari mesin Linux digunakan tool smbclient, yang merupakan bagian dari paket Samba. Tool ini memungkinkan kita berinteraksi dengan server SMB seperti melihat daftar share, mengakses file, maupun mengunduh data dari server.

Perintah yang digunakan adalah:

None

Parameter -L digunakan untuk menampilkan daftar share yang tersedia pada server, sedangkan -N digunakan untuk melakukan koneksi tanpa password.

Berdasarkan hasil yang diperoleh, server menampilkan beberapa share yang tersedia seperti ADMIN$, C$, NETLOGON, SYSVOL, serta beberapa share lain seperti AnonShare, SharedFiles, dan UserBackups. Beberapa share seperti ADMIN$ dan C$ merupakan default administrative shares pada sistem Windows yang biasanya hanya dapat diakses oleh administrator.

Selain itu terdapat juga share penting seperti NETLOGON dan SYSVOL yang umum ditemukan pada lingkungan Active Directory, yang biasanya digunakan untuk menyimpan script login dan kebijakan domain.

Keberhasilan koneksi anonim ini menunjukkan bahwa server masih mengizinkan anonymous enumeration, sehingga memungkinkan kita untuk mengetahui struktur share yang ada pada server. Informasi ini sangat berguna untuk tahap selanjutnya, yaitu mencoba mengakses share tertentu untuk melihat apakah terdapat file yang dapat dibaca atau diunduh dari server.

*]:pointer-events-auto scroll-mt-( — header-height)" tabindex="-1" dir="auto" data-turn-id="9275ff56–7152–4e46-af86–0809b7466cc5" data-testid="conversation-turn-45" data-scroll-anchor="false" data-turn="user">*]:pointer-events-auto scroll-mt-[calc(var( — header-height)+min(200px,max(70px,20svh)))]" tabindex="-1" dir="auto" data-turn-id="request-69b1946c-991c-8322–8084-b5dc6416a243–5" data-testid="conversation-turn-46" data-scroll-anchor="true" data-turn="assistant">

Enumerasi SMB Shares Menggunakan smbmap

Selain menggunakan smbclient, kita juga dapat melakukan enumerasi SMB menggunakan smbmap. Tool ini sangat berguna untuk menampilkan daftar SMB shares beserta hak akses (permissions) seperti read dan write pada setiap share.

Perintah yang digunakan adalah:

None

Parameter -H digunakan untuk menentukan alamat IP dari target yang akan diperiksa.

Berdasarkan hasil scanning, server 10.211.11.10 menampilkan beberapa SMB shares dengan berbagai tingkat akses. Beberapa share seperti ADMIN$, C$, IPC$, NETLOGON, dan SYSVOL tidak dapat diakses karena merupakan administrative shares yang biasanya hanya tersedia untuk administrator sistem.

Namun terdapat beberapa share yang menarik karena memiliki izin READ dan WRITE, yaitu:

  • AnonShare
  • SharedFiles
  • UserBackups

Share dengan permission READ memungkinkan kita untuk melihat dan mengunduh file dari server, sedangkan permission WRITE memungkinkan kita untuk mengunggah file ke dalam share tersebut. Share dengan konfigurasi seperti ini berpotensi menjadi celah keamanan karena dapat dimanfaatkan untuk mengambil informasi sensitif atau bahkan menyimpan file berbahaya pada server.

Informasi ini sangat penting dalam proses enumeration, karena kita dapat melanjutkan tahap berikutnya dengan mencoba mengakses share yang memiliki permission READ atau WRITE untuk melihat apakah terdapat file yang dapat dimanfaatkan.

Mengakses dan Mengunduh File dari SMB Share

Setelah menemukan share yang memiliki izin READ, langkah selanjutnya adalah mencoba mengakses share tersebut dan melihat apakah terdapat file yang dapat diunduh. Untuk melakukan koneksi ke share digunakan tool smbclient.

Perintah yang digunakan untuk terhubung ke share SharedFiles adalah:

smbclient //10.211.11.10/SharedFiles -N

Parameter -N digunakan untuk melakukan koneksi anonim tanpa menggunakan username dan password. Dari hasil yang diperoleh terlihat bahwa koneksi anonim berhasil dilakukan.

Setelah berhasil terhubung, kita menggunakan perintah ls untuk melihat isi dari share tersebut. Hasilnya menunjukkan terdapat sebuah file bernama Mouse_and_Malware.txt yang tersedia pada folder tersebut.

Untuk mengambil file tersebut dari server, digunakan perintah:

get Mouse_and_Malware.txt

Perintah ini akan mengunduh file dari server ke mesin penyerang (AttackBox). Setelah proses download selesai, file tersebut dapat dianalisis lebih lanjut karena kemungkinan berisi informasi penting yang dapat membantu proses enumerasi atau eksploitasi pada tahap berikutnya

Mengakses File dan Mencari Flag

Setelah berhasil mengidentifikasi SMB shares yang memiliki izin READ, langkah berikutnya adalah mendownload file yang tersedia untuk mencari flag. Flag biasanya tersembunyi di dalam file yang dapat diakses melalui share, dan formatnya pada TryHackMe umumnya berupa THM{…}.

None

Sebagai contoh, kita menemukan file Mouse_and_Malware.txt di share SharedFiles. File ini berisi cerita tentang tikus dan malware, namun dari isi file terlihat bahwa tidak ada flag di dalamnya. Hal ini menunjukkan bahwa file tersebut hanya berfungsi sebagai petunjuk atau decoy, dan flag kemungkinan tersembunyi di share lain yang juga memiliki izin READ.

Menemukan Flag dari SMB Share

Setelah melakukan enumerasi terhadap berbagai SMB share yang tersedia, langkah berikutnya adalah mencoba mengakses share lain yang memiliki izin READ secara anonim. Dari hasil enumerasi sebelumnya menggunakan smbmap, diketahui bahwa share UserBackups juga memberikan akses baca.

Selanjutnya kita mencoba mengakses share tersebut menggunakan smbclient tanpa kredensial dengan opsi -N (anonymous login). Setelah berhasil terhubung, kita menjalankan perintah ls untuk melihat file yang tersedia di dalam share.

smbclient //10.211.11.10/UserBackups -N
ls

Hasilnya menunjukkan terdapat dua file di dalam direktori tersebut:

  • flag.txt
  • story.txt

Karena tujuan utama pada lab ini adalah menemukan flag, maka file flag.txt kemudian diunduh menggunakan perintah:

get flag.txt

Setelah file berhasil diunduh ke mesin attacker, kita dapat membaca isinya menggunakan perintah cat di Linux:

Dari hasil tersebut ditemukan flag berikut:

None

Analisis

None

Keberhasilan menemukan flag ini menunjukkan bahwa server SMB mengizinkan akses anonim ke share sensitif, dalam hal ini UserBackups. Konfigurasi seperti ini merupakan misconfiguration yang berbahaya, karena memungkinkan pihak yang tidak memiliki kredensial untuk mengakses dan mengunduh file penting dari server.

Dalam skenario nyata, kesalahan konfigurasi SMB seperti ini dapat menyebabkan kebocoran data sensitif, termasuk backup data, dokumen internal, atau bahkan kredensial yang tersimpan di dalam file.

LDAP Enumeration (Anonymous Bind)

Setelah melakukan tahap network discovery dan SMB enumeration, langkah berikutnya dalam proses enumerasi Active Directory adalah mencoba mengumpulkan informasi mengenai struktur direktori menggunakan protokol Lightweight Directory Access Protocol. Protokol ini digunakan oleh Microsoft Active Directory untuk mengelola berbagai objek dalam jaringan seperti pengguna, grup, perangkat, dan kebijakan organisasi.

Dalam beberapa kasus, server LDAP dikonfigurasi untuk mengizinkan anonymous bind, yaitu kondisi di mana seseorang dapat melakukan query ke direktori tanpa harus melakukan autentikasi terlebih dahulu. Jika fitur ini aktif, maka attacker dapat memperoleh informasi penting dari direktori hanya dengan melakukan query sederhana.

Untuk menguji apakah server LDAP mengizinkan anonymous bind, kita menggunakan tool ldapsearch dengan perintah berikut:

ldapsearch -x -H ldap://10.211.11.10 -s base

Keterangan parameter:

  • -x : menggunakan simple authentication (anonymous login)
  • -H : menentukan alamat server LDAP
  • -s base : membatasi pencarian hanya pada objek dasar direktori
None

Analisis Hasil Query LDAP

Dari hasil query yang diperoleh, server LDAP berhasil merespon permintaan yang kita kirimkan. Hal ini menunjukkan bahwa server memperbolehkan query anonim terhadap direktori.

Beberapa informasi penting yang dapat diidentifikasi dari output tersebut antara lain:

1. Informasi Domain

Pada bagian output terlihat nilai berikut:

rootDomainNamingContext: DC=tryhackme,DC=loc
defaultNamingContext: DC=tryhackme,DC=loc

Informasi tersebut menunjukkan bahwa domain yang digunakan pada jaringan target adalah:

tryhackme.loc

Mengetahui nama domain sangat penting karena akan digunakan pada berbagai proses enumerasi lanjutan seperti pencarian user, group, maupun objek lain dalam Active Directory.

None
None

2. Informasi Domain Controller

Pada output juga ditemukan informasi mengenai Domain Controller yang digunakan:

dnsHostName: DC.tryhackme.loc

Hal ini menunjukkan bahwa:

  • Nama server: DC
  • FQDN server: DC.tryhackme.loc

Domain Controller merupakan server utama yang bertanggung jawab dalam proses autentikasi pengguna serta pengelolaan objek dalam Active Directory.

None

3. Struktur Direktori Active Directory

Output LDAP juga menampilkan beberapa naming context yang menunjukkan struktur direktori dalam Active Directory:

namingContexts: DC=tryhackme,DC=loc
namingContexts: CN=Configuration,DC=tryhackme,DC=loc
namingContexts: CN=Schema,CN=Configuration,DC=tryhackme,DC=loc

Struktur ini menunjukkan bagaimana data dalam Active Directory diorganisasikan, yaitu:

  • Domain Context → berisi user, group, dan komputer domain
  • Configuration Context → berisi konfigurasi Active Directory
  • Schema Context → berisi definisi atribut dan tipe objek dalam direktori

Memahami struktur ini sangat penting untuk melakukan enumerasi objek secara lebih mendalam pada tahap berikutnya.

None

Kesimpulan

Hasil dari LDAP enumeration menggunakan anonymous bind menunjukkan bahwa server LDAP pada domain tryhackme.loc mengizinkan query anonim terhadap informasi dasar direktori. Walaupun informasi yang diperoleh masih terbatas, data tersebut tetap sangat berguna untuk memahami struktur domain target, termasuk nama domain, Domain Controller, serta organisasi direktori Active Directory.

Informasi ini dapat digunakan sebagai landasan untuk melakukan enumerasi lanjutan, seperti pencarian daftar pengguna, grup, maupun objek lain dalam domain. Dalam konteks penetration testing, misconfiguration seperti ini dapat memberikan keuntungan bagi attacker dalam mengumpulkan informasi penting sebelum melanjutkan ke tahap eksploitasi.

Hasil LDAP User Enumeration

Setelah menjalankan query LDAP untuk mencari objek dengan filter (objectClass=person), kita berhasil memperoleh informasi mengenai salah satu akun pengguna yang terdapat dalam domain Microsoft Active Directory. Proses enumerasi ini dilakukan menggunakan tool ldapsearch melalui protokol Lightweight Directory Access Protocol.

None

Informasi User yang Ditemukan

Dari hasil query LDAP, ditemukan sebuah akun pengguna dengan informasi berikut:

  • Nama lengkap (CN) : Raoul Duke
  • First Name (givenName) : Raoul
  • Last Name (sn) : Duke
  • Username (sAMAccountName) : rduke
  • User Principal Name (UPN) : rduke@tryhackme.loc

Selain itu, terdapat juga informasi mengenai lokasi objek dalam direktori:

CN=Raoul Duke,CN=Users,DC=tryhackme,DC=loc

Hal ini menunjukkan bahwa akun tersebut berada pada container Users dalam domain tryhackme.loc.

Informasi Teknis Tambahan

Output LDAP juga menampilkan berbagai atribut lain yang berkaitan dengan akun pengguna tersebut, antara lain:

  • whenCreated → waktu pembuatan akun
  • lastLogon → waktu terakhir pengguna melakukan login
  • pwdLastSet → waktu terakhir password diubah
  • logonCount → jumlah login yang telah dilakukan
  • objectSID → Security Identifier unik milik akun pengguna
  • primaryGroupID → menunjukkan grup utama pengguna (biasanya Domain Users)

Informasi seperti lastLogon, pwdLastSet, dan logonCount dapat memberikan gambaran mengenai aktivitas akun tersebut di dalam domain.

Pentingnya Informasi Ini dalam Penetration Testing

Menemukan username domain merupakan salah satu tujuan utama dalam tahap Active Directory enumeration. Username seperti rduke dapat digunakan pada berbagai teknik serangan lanjutan, misalnya:

  • Password Spraying
  • Kerberos Attacks (Kerberoasting / AS-REP Roasting)
  • Brute Force Authentication
  • SMB atau LDAP Login Attempts

Dengan kata lain, informasi user yang diperoleh dari LDAP enumeration dapat menjadi titik awal untuk eksploitasi lebih lanjut terhadap lingkungan Active Directory.

Enumerasi User Menggunakan RPC

Selain menggunakan LDAP, enumerasi pengguna dalam lingkungan Microsoft Active Directory juga dapat dilakukan melalui protokol Remote Procedure Call yang berjalan di atas layanan Server Message Block. Teknik ini memungkinkan kita untuk mengambil daftar akun pengguna dari domain tanpa harus memiliki kredensial, apabila server dikonfigurasi secara tidak aman dan mengizinkan null session.

Untuk melakukan enumerasi ini, digunakan tool rpcclient dengan perintah berikut:

rpcclient -U "" 10.211.11.10 -N

Penjelasan parameter:

  • -U "" Menunjukkan bahwa kita mencoba login tanpa username (anonymous).
  • -N Menginstruksikan tool untuk tidak meminta password.

Jika koneksi berhasil, kita akan masuk ke dalam shell interaktif rpcclient. Dari dalam shell tersebut kita dapat menjalankan perintah:

enumdomusers

Perintah ini digunakan untuk menampilkan seluruh daftar pengguna yang terdapat dalam domain.

None

Analisis Hasil Enumerasi

Dari hasil output yang diperoleh, terlihat bahwa server berhasil mengembalikan daftar akun pengguna yang terdapat dalam domain. Beberapa akun sistem yang umum ditemukan dalam Active Directory juga muncul, seperti:

  • Administrator → akun administrator utama domain
  • Guest → akun tamu default
  • krbtgt → akun layanan yang digunakan oleh sistem Kerberos authentication

Selain akun sistem, terlihat juga banyak akun pengguna domain seperti:

  • gerald.burgess
  • nigel.parsons
  • guy.smith
  • barbara.jones
  • daniel.turner
  • michelle.palmer
  • dan lainnya

Selain itu terdapat juga beberapa akun yang menarik untuk diperhatikan seperti:

  • asrepuser1
  • strategos
  • drgonz0
  • empanadal0v3r

Nama-nama akun tersebut dapat menjadi target potensial untuk teknik serangan lanjutan seperti password spraying atau Kerberos-based attacks.

Output juga menampilkan RID (Relative Identifier) untuk setiap akun, yang merupakan bagian dari Security Identifier (SID) dalam Windows. RID digunakan untuk mengidentifikasi objek seperti user atau group dalam domain.

Contohnya:

user:[Administrator] rid:[0x1f4]

RID 0x1f4 (500) merupakan RID standar untuk akun Administrator dalam Windows.

Membuat Daftar User dari Hasil RPC Enumeration

Setelah berhasil melakukan enumerasi pengguna menggunakan rpcclient, langkah berikutnya adalah menyimpan hasil enumerasi tersebut ke dalam sebuah file. Hal ini bertujuan agar daftar username dapat digunakan pada tahap serangan berikutnya, seperti password spraying atau Kerberos enumeration pada lingkungan Microsoft Active Directory.

Perintah yang digunakan untuk menyimpan hasil enumerasi adalah sebagai berikut:

rpcclient -U "" 10.211.11.10 -N -c enumdomusers > users.txt

Perintah tersebut menjalankan fungsi enumdomusers secara langsung tanpa masuk ke shell interaktif, kemudian hasilnya dialihkan (redirect) ke dalam file bernama users.txt.

None

Setelah file berhasil dibuat, kita dapat melihat isi file tersebut menggunakan perintah:

cat users.txt

File tersebut berisi daftar akun pengguna yang terdapat pada domain, lengkap dengan Relative Identifier (RID) masing-masing. Contohnya:

user:[Administrator] rid:[0x1f4]
user:[Guest] rid:[0x1f5]
user:[krbtgt] rid:[0x1f6]
user:[gerald.burgess] rid:[0x650]
user:[nigel.parsons] rid:[0x651]
...

RID merupakan bagian dari Security Identifier (SID) dalam sistem Windows yang digunakan untuk mengidentifikasi setiap objek dalam domain, seperti pengguna maupun grup.

None

Analisis Hasil Enumerasi

Dari hasil enumerasi tersebut, terlihat beberapa jenis akun yang ditemukan dalam domain:

Akun sistem default

  • Administrator
  • Guest
  • krbtgt

Akun krbtgt merupakan akun layanan yang digunakan oleh sistem Kerberos authentication dalam Active Directory.

Akun pengguna domain

  • gerald.burgess
  • nigel.parsons
  • jeremy.booth
  • barbara.jones
  • daniel.turner
  • michelle.palmer
  • dan banyak lainnya

Selain itu terdapat beberapa akun menarik seperti:

  • asrepuser1
  • strategos
  • drgonz0
  • empanadal0v3r

Akun-akun tersebut dapat menjadi target potensial untuk teknik serangan lanjutan seperti AS-REP Roasting, password spraying, atau Kerberos attacks.

Kesimpulan

Dengan memanfaatkan null session pada layanan RPC, kita berhasil memperoleh daftar username yang terdapat dalam domain target. Daftar pengguna ini kemudian disimpan dalam file users.txt, sehingga dapat digunakan pada tahap serangan berikutnya dalam proses Active Directory penetration testing. Informasi username yang valid merupakan aset penting karena dapat digunakan sebagai dasar untuk melakukan berbagai teknik autentikasi attack pada domain target.

Enumerasi Username Menggunakan Kerbrute

Setelah berhasil mendapatkan daftar username dari proses enumerasi sebelumnya, langkah berikutnya adalah memverifikasi apakah username tersebut benar-benar valid di dalam domain Microsoft Active Directory. Untuk melakukan proses ini, digunakan tool Kerbrute, yang bekerja dengan memanfaatkan mekanisme autentikasi Kerberos.

Kerbrute dapat melakukan username enumeration tanpa membutuhkan kredensial, dengan cara mengirimkan request autentikasi ke Key Distribution Center (KDC) pada domain controller. Jika username yang dikirim valid, server akan memberikan respon berbeda dibandingkan username yang tidak ada.

Perintah yang digunakan adalah sebagai berikut:

./kerbrute userenum --dc 10.211.11.10 -d tryhackme.loc usernames.txt

Penjelasan parameter:

  • userenum → mode untuk melakukan enumerasi username
  • — dc → alamat IP Domain Controller
  • -d → nama domain target
  • usernames.txt → file yang berisi daftar username yang akan diuji
None

Analisis Hasil Enumerasi

Dari hasil eksekusi Kerbrute, terlihat bahwa beberapa username dinyatakan VALID USERNAME, yang berarti akun tersebut benar-benar ada di dalam domain tryhackme.loc.

Beberapa contoh akun yang berhasil ditemukan antara lain:

  • nigel.parsons
  • barbara.jones
  • marion.kay
  • jeremy.booth
  • guy.smith
  • gerald.burgess
  • Administrator
  • daniel.turner
  • debra.yates
  • jeffrey.thompson
  • kathryn.williams

Selain akun pengguna biasa, ditemukan juga beberapa akun sistem seperti:

  • Administrator → akun administrator domain
  • krbtgtsvc → akun yang berhubungan dengan layanan Kerberos
  • sshd → kemungkinan akun service untuk SSH

Secara keseluruhan, tool Kerbrute berhasil menguji 32 username dan menemukan 27 username yang valid dalam domain tersebut.

None

Kesimpulan

Melalui proses enumerasi menggunakan Kerbrute, berhasil diperoleh sejumlah username valid yang terdapat pada domain tryhackme.loc. Informasi ini sangat penting dalam tahap Active Directory penetration testing, karena daftar username yang valid dapat digunakan dalam berbagai teknik serangan lanjutan, seperti:

  • Password Spraying
  • AS-REP Roasting
  • Kerberos Attacks
  • Credential Brute Force

Dengan demikian, tahap enumerasi ini memberikan fondasi penting untuk melanjutkan proses eksploitasi terhadap lingkungan Active Directory target.

Enumerasi Password Policy pada Active Directory

Setelah berhasil melakukan enumerasi user pada domain target, langkah berikutnya adalah mengidentifikasi password policy yang diterapkan pada domain. Informasi ini sangat penting dalam proses Active Directory penetration testing, karena dapat membantu menentukan strategi serangan seperti password spraying atau brute force tanpa menyebabkan akun terkunci.

Pada tahap ini, enumerasi dilakukan menggunakan dua tools yang berbeda yaitu rpcclient dan CrackMapExec untuk mendapatkan informasi kebijakan password dari domain Microsoft Active Directory.

Enumerasi Password Policy Menggunakan rpcclient

Tool pertama yang digunakan adalah rpcclient, yang memungkinkan kita berinteraksi dengan layanan RPC pada sistem Windows melalui protokol SMB.

Perintah yang digunakan untuk mengakses RPC secara anonymous adalah:

rpcclient -U "" 10.211.11.10 -N

Penjelasan parameter:

  • -U "" → login tanpa username (anonymous)
  • -N → tidak menggunakan password
  • 10.211.11.10 → IP address Domain Controller

Setelah berhasil masuk ke dalam shell rpcclient, perintah berikut dijalankan untuk melihat kebijakan password domain:

getdompwinfo
None

Output yang dihasilkan menampilkan beberapa informasi penting terkait kebijakan password, seperti:

min_password_length: 7
password_properties: 0x00000001
DOMAIN_PASSWORD_COMPLEX

Dari hasil tersebut dapat disimpulkan bahwa:

  • Minimum password length adalah 7 karakter
  • Domain menerapkan password complexity policy

Password complexity berarti password harus memiliki kombinasi seperti:

  • huruf besar (A-Z)
  • huruf kecil (a-z)
  • angka (0–9)
  • karakter khusus

Kebijakan ini diterapkan untuk meningkatkan keamanan akun pengguna di dalam domain Active Directory.

Enumerasi Password Policy Menggunakan CrackMapExec

Selain menggunakan rpcclient, enumerasi password policy juga dapat dilakukan menggunakan CrackMapExec, yang merupakan tool populer dalam penetration testing untuk melakukan enumerasi layanan jaringan pada sistem Windows.

Perintah yang digunakan adalah:

crackmapexec smb 10.211.11.10 --pass-pol

Perintah --pass-pol akan menampilkan password policy yang diterapkan pada domain melalui layanan SMB.

None

Dari hasil enumerasi tersebut diperoleh informasi sebagai berikut:

Informasi sistem target

  • Sistem operasi: Windows Server 2019 Datacenter
  • Domain: tryhackme.loc
  • Host: Domain Controller

Password policy

  • Minimum password length: 7
  • Password history length: 24
  • Maximum password age: 41 days

Artinya sistem menyimpan 24 password terakhir, sehingga pengguna tidak dapat menggunakan kembali password lama.

Account Lockout Policy

Selain aturan password, terdapat juga kebijakan terkait account lockout:

Account Lockout Threshold: 10
Locked Account Duration: 2 minutes
Reset Account Lockout Counter: 2 minutes

Artinya:

  • Akun akan terkunci setelah 10 kali percobaan login gagal
  • Akun akan terkunci selama 2 menit
  • Counter percobaan login akan direset setelah 2 menit

Informasi ini sangat penting bagi seorang penetration tester karena dapat membantu menentukan strategi password spraying yang aman tanpa memicu penguncian akun secara massal.

Kesimpulan

Melalui proses enumerasi menggunakan rpcclient dan CrackMapExec, berhasil diperoleh informasi mengenai kebijakan password yang diterapkan pada domain tryhackme.loc. Domain tersebut menerapkan panjang password minimum 7 karakter dengan kompleksitas password aktif serta kebijakan account lockout setelah 10 kali percobaan login gagal.

Informasi ini memberikan gambaran penting mengenai tingkat keamanan autentikasi pada lingkungan Active Directory dan dapat digunakan sebagai dasar dalam tahap serangan berikutnya seperti password spraying, credential attacks, atau teknik eksploitasi lainnya.

Performing Password Spraying Attack in Active Directory

None

Setelah berhasil melakukan user enumeration dan mendapatkan daftar akun yang valid dalam domain, langkah selanjutnya adalah melakukan teknik Password Spraying untuk mencoba menemukan kredensial yang valid.

Password spraying adalah teknik serangan yang mencoba satu password umum terhadap banyak akun secara bergantian. Metode ini digunakan untuk menghindari mekanisme account lockout yang biasanya terjadi jika satu akun dicoba berkali-kali dengan password yang salah.

Pada tahap sebelumnya, dilakukan enumerasi kebijakan password menggunakan rpcclient. Hasilnya menunjukkan bahwa kompleksitas password bernilai 1, yang berarti password harus memenuhi minimal tiga dari empat syarat berikut:

  • Huruf besar (uppercase)
  • Huruf kecil (lowercase)
  • Angka (digits)
  • Karakter spesial (special characters)

Berdasarkan kebijakan tersebut, dibuat daftar password umum yang kemungkinan digunakan oleh pengguna domain. Contohnya:

Password!
Password1
Password1!
P@ssword
Pa55word1

Password tersebut kemudian disimpan dalam file passwords.txt.

Melakukan Password Spraying

Serangan password spraying dilakukan menggunakan tool NetExec terhadap layanan SMB pada target 10.211.11.20.

Command yang digunakan:

nxc smb 10.211.11.20 -u clean_users.txt -p passwords.txt

Penjelasan parameter:

  • 10.211.11.20 → host target
  • -u clean_users.txt → daftar username hasil enumerasi
  • -p passwords.txt → daftar password yang akan diuji

Tool NetExec kemudian mencoba setiap kombinasi username dengan password yang tersedia.

Hasil Serangan

Sebagian besar percobaan login gagal dan menghasilkan status berikut:

STATUS_LOGON_FAILURE

Namun, salah satu akun berhasil melakukan autentikasi dengan password yang diuji.

[+] tryhackme.loc\rduke:Password1!

Hasil tersebut menunjukkan bahwa kredensial berikut valid pada domain:

Username : rduke
Password : Password1!
Domain   : tryhackme.lo

Analisis Keamanan

Keberhasilan serangan ini menunjukkan bahwa pengguna domain menggunakan password yang mudah ditebak dan termasuk dalam daftar password umum.

Hal ini menjadi risiko keamanan yang serius karena:

  • Penyerang dapat memperoleh initial access ke jaringan domain
  • Kredensial tersebut dapat digunakan untuk enumeration lanjutan
  • Berpotensi digunakan untuk privilege escalation atau lateral movement

Kesimpulan

Password spraying merupakan teknik yang sangat efektif dalam pengujian keamanan Active Directory. Dengan mencoba satu password umum terhadap banyak akun, penyerang dapat menemukan kredensial valid tanpa memicu mekanisme penguncian akun.

Dalam pengujian ini, serangan berhasil menemukan akun yang menggunakan password lemah (Password1!), sehingga memberikan akses awal ke sistem domain. Oleh karena itu, organisasi seharusnya menerapkan kebijakan password yang lebih kuat serta menggunakan mekanisme perlindungan tambahan seperti multi-factor authentication (MFA).