Artikel ini berfokus pada pemahaman tentang lingkungan Windows Active Directory dari perspektif yang berbeda. Misalnya, dari perspektif mengonfigurasi kebijakan keamanan sebagai administrator. Terlebih dari perspektif penyerang melewati kebijakan keamanan, dan dari perspektif mendeteksi serangan. Ada banyak faktor yang pelanggaran seperti kesalahan konfigurasi, prosedur perawatan yang buruk, dan banyak kesalahan lain yang dilakukan oleh administrator.
Artikel ini mencakup konsep dasar dan lanjutan, konfigurasi lingkungan, dan serangan. Kontennya mungkin agak panjang. Tetapi membantu mensimulasikan serangan yang berbeda, mensimulasikan, dan memahami perilaku dalam penggunaan.
1. Apa itu Active Directory
Active Directory Dalam istilah sederhana adalah layanan fungsional yang disediakan yang bertindak sebagai repositori terpusat. Menyimpan Active Directory semua data yang terkait dengan objek seperti pengguna, komputer, server, dan sumber daya lainnya dalam suatu organisasi. Sehingga memudahkan pengelolaan administrator sistem.
Tetapi fungsi utamanya adalah menyediakan cara untuk mengautentikasi pengguna dan mesin di lingkungan domain. Dengan menggunakannya Active Directory, Anda dapat mengelola sumber daya seperti pengguna, workstation, dan izinnya dari jarak jauh. Oleh karena itu, ini adalah antarmuka manajemen tunggal yang dapat diakses dari mana saja di jaringan. Terutama merupakan fitur Microsoft Windowsdari , tetapi sistem operasi lain juga dapat bergabung. Misalnya Anda dapat Active Directory menyertakan Linux host di lingkungan Anda.
2. Apa Itu Domain
Singkatnya, domain dapat disebut sebagai kumpulan atau struktur dari semua objek seperti pengguna, komputer, grup, dll. yang berbagi database umum dan dikelola oleh server master domain yang dikenal sebagai Domain Controller. Domain selalu disebut dengan nama uniknya dan memiliki struktur nama domain yang benar.
Contoh nama domain: rootdse.lab
Nama dalam domain ini ROOTDSE mewakili NetBIOS
Kami dapat membagi infrastruktur menjadi domain terpisah untuk membuat batasan yang lebih kecil. Sehingga tugas manajemen untuk domain berbeda dapat dipisahkan dalam jaringan besar. Di lingkungan, domain juga dapat membuat batasan untuk mengelola pengaturan tertentu. Seperti kebijakan kata sandi dan kebijakan penguncian akun. Sehingga hanya dapat diterapkan ke akun pengguna domain di tingkat domain. Labkom99 akan membahas Kebijakan Grup dan kebijakan yang salah konfigurasi secara mendetail.
Beberapa komponen penting yang termasuk dalam domain:
- Objek seperti grup, pengguna, komputer, dll.
- Layanan identitas
- Kebijakan Grup
- DNS
- DHCP
# Modul Active Directory PowerShell
Dengan Powershell mengimpor Active Directory modul di kita dapat mengambil informasi dasar tentang lingkungan domain.
Secara default, Active Directory modul hanya ada di Domain Controller dan bukan di workstation.
Path ke file-file ini:
C:\Windows\Microsoft.NET\assembly\GAC_64\Microsoft.ActiveDirectory.Management\
Secara default, modul ini Active Directory powershell memerlukan paket Alat Administrasi Server Jarak Jauh ( RSAT) untuk diinstal pada komputer klien. Di mana modul yang memerlukan hak akses administratif harus diaktifkan. Setiap kontroler domain diinstal RSAT. Oleh karena itu, Domain Controller dan server anggota telah menginstal Active Directory powershell modul. Tetapi ada juga cara untuk menggunakannya di workstation (tidak diperlukan instalasi RSAT), cukup salin DLLfile dan impor powershell ke dalam sesi.
Untuk mengimpornya di workstation yang bergabung dengan domain, unduh dari sini ( https://github.com/ScarredMonk/RootDSE-ActiveDirectory ), lalu Import-Module cukup impor dengan , lalu Anda dapat menggunakan perintah apa pun dalam modul ini.
Import-Module '.\Microsoft.ActiveDirectory.Management.dll
Untuk mengambil informasi tentang domain, kita dapat menggunakan perintah berikut:
PS C:\Users\scarred.monk> Get-ADDomainAllowedDNSSuffixes : {}ChildDomains : {matrix.rootdse.lab}ComputersContainer : CN=Computers,DC=rootdse,DC=labDeletedObjectsContainer : CN=Objek yang Dihapus,DC=rootdse,DC= labDistinguishedName : DC=rootdse,DC=labDNSRoot : rootdse.labDomainControllersContainer : OU=Pengontrol Domain,DC=rootdse,DC=labDomainMode : Windows2016DomainDomainSID : S-1-5-21-580985966-2115238843-2989639066Fore ignSecurityPrincipalsContainer : CN=ForeignSecurityPrincipals,DC= rootdse ,DC=labForest : rootdse.labInfrastructureMaster : RDSEDC01.rootdse.labLastLogonReplicationInterval :LinkedGroupPolicyObjects :{CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Kebijakan,CN=Sistem,DC=rootdse,DC=lab}LostAndFoundContainer : CN=LostAndFound,DC=rootdse,DC=labManagedBy :Name : rootdseNetBIOSName : rootdseObjectClass : domainDNSObjectGUID : 70b22e8c-d4e3-4690-b4e0-0998b0125fb2ParentDomain :PDCEmulator : RDSEDC01.rootdse.labPublicKeyRequiredPasswordRolling : TrueQuotasContainer : CN=NTDS Quotas,DC=rootdse,DC=labReadOnlyRe plicaDirectoryServers : {}ReplicaDirectoryServers : {RDSEDC01.rootdse.lab}RIDMaster : RDSEDC01 .rootdse.labSubordinateReferensi : {DC=matrix,DC=rootdse,DC=lab, DC=ForestDnsZones,DC=rootdse,DC=lab,DC=DomainDnsZones,DC=rootdse,DC=lab, CN=Konfigurasi,DC=rootdse,DC=lab}SystemsContainer : CN=System,DC=rootdse,DC=labUsersContainer : CN=Users,DC=rootdse,DC=lab
#SID
Setiap domain memiliki keunikan SID (pengidentifikasi keamanan) untuk mengidentifikasinya. Biasanya, SID digunakan untuk secara unik mengidentifikasi prinsip keamanan. Seperti akun pengguna, akun komputer, atau proses yang berjalan dalam konteks keamanan, atau akun pengguna atau komputer. SID Unik dalam cakupannya (domain atau lokal) dan tidak akan pernah digunakan kembali. Untuk akun domain, prinsip keamanan SID dibuat dengan menggabungkan domain SID dengan pengenal relatif akun ( ).
# RID
RID (pengidentifikasi relatif) adalah bagian dari Active Directory pengidentifikasi keamanan objek ( SID) yang secara unik mengidentifikasi akun atau grup di domain. Ini ditugaskan ke objek saat dibuat Active Directory.
# FQDN (Nama Domain Sepenuhnya Memenuhi Syarat / Nama Domain Sepenuhnya Memenuhi Syarat)
Nama Domain yang Sepenuhnya Memenuhi Syarat adalah nama domain lengkap dari host tertentu dalam domain.
FQDNBerisi dua bagian: nama host + nama domain
Misalnya, jika domainnya adalah matrix.rootdse.labdan komputer di domain matriks memiliki nama host MTRXDC01, komputer FQDNakan menjadimtrxdc01.matrix.rootdse.lab
3. Domain Controller
Singkatnya, Domain Controller menghosting layanan yang merespons permintaan otentikasi di domain. Mengotentikasi dan mengotentikasi akses pengguna di jaringan. Saat akun pengguna dan komputer masuk ke jaringan, mereka mengautentikasi ke Domain Controller, yang memverifikasi informasi mereka (seperti nama pengguna, kata sandi). Kemudian memutuskan apakah mengizinkan atau menolak akses pengguna ini. Domain Controller adalah server penting dan target utama penyerang karena memegang kunci lingkungan. Setiap domain memiliki setidaknya satu Domain Controller (dan dapat memiliki Domain Controller lainnya).
Untuk memeriksa Domain Controller, kita dapat menggunakan perintah berikut:
PS C:\Users\scarred.monk> (Get-ADDomainController).HostNameRDSEDC01.rootdse.lab
Domain Controller menyediakan layanan resolusi nama dan bertanggung jawab untuk selalu memperbarui informasi tentang objek domain di database domain. Basis data disimpan dalam file C:\WINDOWS\NTDS\ntds.dit, yang dikelola di Domain Controller. Jika file ini dicuri, semua informasi tentang objek (seperti pengguna, komputer, grup, GPO, dll.), termasuk kredensial pengguna, juga akan disusupi.
# Domain Controller read_only Active Directory
Untuk tujuan pencadangan, ada tiga jenis Domain Controller, Domain Controller primer, Domain Controller hanya-baca, dan Domain Controller tambahan. Domain Controller hanya-baca (RODC) tidak mengizinkan perubahan apa pun pada database.
Jika ini adalah Domain Controller hanya-baca, perubahan harus dilakukan pada Domain Controller yang dapat ditulis dan kemudian direplikasi ke Domain Controller hanya-baca di domain tertentu. Domain Controller hanya baca dimaksudkan untuk memecahkan masalah umum di kantor cabang di lokasi terpencil yang mungkin tidak memiliki Domain Controller, atau memiliki keamanan fisik yang buruk, bandwidth jaringan yang buruk, atau keahlian lokal untuk mendukungnya. Tujuan utama Domain Controller hanya-baca adalah untuk memfasilitasi otentikasi dari cabang kantor jarak jauh dan memungkinkan pengguna mengakses sumber daya domain.
5. Domain Tree
Domain Tree direpresentasikan sebagai serangkaian domain yang terhubung bersama. Dalam urutan hierarkis yang menggunakan namespace DNS yang sama. Domain Tree dibuat saat kita menambahkan subdomain ke domain induk. Misalnya, ada domain root rootdse.lab, dan matriks domain baru (FQDN adalah matrix.rootdse.lab) ditambahkan ke dalamnya. Setelah Trusts Forest secara otomatis dibuat di antara keduanya, itu akan menjadi bagian yang sama bagian Domain Tree. Trust dijelaskan di bagian selanjutnya.
6. Forest
Active Directory Forest adalah kumpulan beberapa Domain Tree yang berbagi skema umum, semua domain dihubungkan oleh Trusts. Setiap domain di Forest dapat memiliki satu atau lebih Domain Controller yang dapat berinteraksi dengan dan mengakses sumber daya dari domain lain. Nama Forest sama dengan domain root. Jika Forest berisi satu domain, domain itu sendiri adalah domain root.
Kita dapat memeriksa nama Forest sebagai berikut :
PS C:\Users\scarred.monk> Get-ADForestApplicationPartitions : {DC=DomainDnsZones,DC=matrix,DC=rootdse,DC=lab, DC=ForestDnsZones,DC=rootdse,DC=lab, DC=DomainDnsZones,DC=rootdse,DC=lab}CrossForestReferences : {}DomainNamingMaster : RDSEDC01.rootdse.labDomains : {matrix.rootdse.lab, rootdse.lab}ForestMode : Windows2016ForestGlobalCatalogs : {RDSEDC01.rootdse.lab, MTRXDC01.matrix.rootdse.lab}Name : rootdse.labPartitionsContainer : CN=Partitions,CN=Configuration,DC=rootdse,DC=labRootDomain : rootdse.labSchemaMaster : RDSEDC01.rootdse.labSites : {Default-First-Site-Name}SPNSuffixes : {}UPNSuffixes : {}
Perintah di atas dapat difilter untuk mengekstrak nama Forest dengan meminta atribut dari output di atas:RootDomain
PS C:\Users\scarred.monk> (Get-ADForest).RootDomainrootdse.lab
Sekali lagi, kita dapat menggunakan metode ini untuk melihat properti tertentu dengan menyertakan seluruh perintah dalam tanda kurung dan kemudian mengetikkan nama properti yang ingin kita lihat.
7. Trusts
Di Forest, domain terhubung satu sama lain melalui koneksi yang disebut trust. Inilah sebabnya mengapa pengguna satu domain dapat mengakses sumber daya dari domain lain. Di lingkungan, setelah hubungan Trusts dibuat antara dua domain, itu memberikan akses ke sumber daya kepada pengguna, grup, dan komputer di seluruh entitas. Dilakukan dengan menghubungkan sistem autentikasi antar domain dan mengizinkan lalu lintas autentikasi mengalir di antara mereka.
Arah #Trust (satu arah atau dua arah) Active Directory
Trusts bisa satu arah atau dua arah. Dalam domain Trusts satu arah, domain satu mempercayai domain dua, yang berarti domain satu adalah domain tepercaya dan domain dua akan menjadi domain tepercaya. Agar pengguna di satu domain dapat mengakses sumber daya di domain lain, pengguna harus berada di domain tepercaya. Gambar di bawah menunjukkan representasi grafis dari aliran Trusts antara dua domain.
Dalam kasus Trusts dua arah, semua domain dapat berbagi sumber daya dengan semua pengguna, terlepas dari domain mana mereka berada. Seperti namanya, Trusts bekerja dua arah. Saat kami membuat Trusts antara dua domain (domain satu dan domain dua), akun pengguna di domain satu akan dapat mengakses sumber daya di domain dua dan sebaliknya.
#Trusts transitif di Forest:
Trusts transitif meluas ke domain tepercaya lainnya di Forest.
Misalnya:
Jika domain 1 mempercayai domain 2, dan domain 2 mempercayai domain 3, maka domain 1 mempercayai domain 3.
Di sini, hubungan Trusts melewati setiap domain tepercaya. Karena ini adalah Trusts transitif, ini memungkinkan akun pengguna di domain 1 untuk mengakses sumber daya di domain 3 dan sebaliknya (tanpa harus membuat Trusts tambahan antara domain 1 dan domain 3)
#Trusts intransitif di Forest Active Directory
Dalam kasus Trusts non-transitif, hubungan dengan domain di luar Trusts dibatasi. Ini berarti domain lain tidak diizinkan mengakses sumber daya di luar Trusts. Mereka tidak akan dapat menyampaikan informasi autentikasi mereka.
Dalam contoh di atas, hubungan Trusts non-transitif dibuat antara domain 1 dan domain 2, dan akun pengguna di kedua domain dapat mengakses sumber daya di domain lain. Jadi saat kami menambahkan domain 3 baru dan membuat Trusts antara domain 2 dan domain 3, pengguna di domain 1 tidak secara otomatis diizinkan mengakses sumber daya di domain 3.
#Otomatis trust pada Forest
Secara default, Trusts transitif dua arah dibuat secara otomatis saat subdomain ditambahkan atau saat Domain Tree ditambahkan. Dua tipe trust default adalah parent-child trust dan root trust.
7. Global Catalog (GC)
Global Catalog digunakan untuk melakukan pencarian di seluruh Forest karena server Global Catalog berisi salinan lengkap dari semua objek. Secara default, Domain Controller root di domain dianggap sebagai server Global Catalog. Untuk mempercepat kueri objek di domain lain di Forest, server Global Catalog memiliki replika domain mereka sendiri dan partisi hanya-baca untuk objek domain lainnya. Misalkan kita harus menanyakan atribut deskripsi untuk pengguna tertentu dari domain selain domain saat ini, dalam hal ini Global Catalog akan mengambilnya tanpa menanyakan Domain Controller domain lain.
Mari kita ambil contoh Active DirectoryForest , di mana domain 1 adalah domain root:
Karena domain 1 adalah Domain Controller akar, domain ini menyimpan partisi direktori yang dapat ditulis sepenuhnya dari domain saat ini:
Server Global Catalog Ntds.ditmenyimpan salinan domainnya sendiri (lengkap dan dapat ditulisi) dan salinan hanya-baca sebagian dari semua domain lain di Forest dalam file basis data direktori ( ):
Kesimpulan
1. Active Directory Merupakan layanan direktori yang bertindak sebagai repositori terpusat dan menampung Active Directory semua data yang terkait dengan objek
2. Domain adalah struktur dari semua objek (seperti pengguna, komputer, grup, dll.) yang Active Directoryberbagi databaseActive Directory
3. Domain mewakili Active Directory partisi logis di Forest
4. SID (Pengidentifikasi keamanan) digunakan untuk mengidentifikasi subjek keamanan secara unik seperti akun pengguna dan komputer
5. RID (Relative identifier)adalah bagian terakhir SIDdari , yang digunakan untuk mengidentifikasi akun atau grup secara unik di dalam domain
6. FQDN Ini adalah nama domain lengkap dari host tertentu di domain tersebut
7. Domain Tree pada dasarnya adalah serangkaian domain yang terhubung bersama dalam urutan hierarkis
8. Domain Controller mengotentikasi dan mengotentikasi akses pengguna di jaringan
9. Trusts memungkinkan pengguna, grup, dan komputer untuk mengakses sumber daya entitas lain
10. Global Catalog berisi salinan lengkap semua objek dan digunakan saat melakukan pencarian di seluruh Forest