Metasploit ile Çevrimdışı Domain Kullanıcılarının Şifrelerini Almak

Domain yapısı Windows sistemlerde merkezi noktadan kullanıcı ve politika yönetimini yapılmasını sağlamak için geliştirilmiş bir teknolojidir. Active Directory olarak isimlendirilen bir merkezde ise kullanıcı bilgileri tutulmaktadır. Bu durum ise yerel kullanıcı hesapları ile domain hesaplarının yerlerinin farlı olması sonucunu doğurur. Windows sistemlerde yerel kullanıcı hesapları “%windir%/system32/config” dizini altında bulunan “SAM” (Security Account Manager) dosyasında tutulur.


Domain hesapları ise Domain Controller görevini gören Windows makinelerde “%windir%/NTDS/” dizini altında bulunan “ntds.dit” isimli bir dosyada saklanmaktadır. Bu iki dosyanında çevrimdışı olarak okunabilmesi için system hive dosyasında ihtiyaç vardır. Bu dosyanında bulunduğu yer ise %windir%/system32/config” dizinin altında “system” adı altında saklanmaktadır. 

Bu dosyaları bir Domain Controller makinadan kendinize ait bir yere kopyaladıktan sonra çevrimdışı olarak kullanıcı ve hash bilgilerini alabilirsiniz.

İhtiyaç Listesi:

  • Backtrack 5 R3 (Yada Metasploit kurulu herhangi bir sistem)
  • Libesedb (Extensible Storage Engine “ESE” tipinde veritabanı dosyalarını ayıklayabilmek için)
  • Ntds_hashextract metasploit modülü 
  • C:WINDOWSsystem32configsystem dosyası
  • C:WINDOWSNTDSntds.dit dosyası
Backtrack 5 R3 üzerinde araçların kurulumu ve uygulamasını aşağıdaki adımları takip ederek yapabilirsiniz.
Öncelikli olarak DC makinanın diskinden domain kullanıcılarının dosyası olan ntds.dit dosyasının ve system hive dosyasının alınması gerekiyor. Örneğimizde biz bu dosyaları DC makinasını Backtrack ile başlatarak almayı gösteriyor olacağız.
Windows dizinin kurulu olduğu bölümü “mount /dev/sda1 /mnt” komutu ile bir dizin altına bağlayıp ordanda gerekli dosyaları kopyalıyoruz.
Bundan sonra çevrimdışı ayıklama işine başlayabiliriz. Libesedb paketini indirip kurmakla devam ediyoruz.
İndirmek için “wget http://libesedb.googlecode.com/files/libesedb-alpha-20120102.tar.gz” komutunu çalıştırıyoruz. Daha sonra ise 
  •  tar xvzf libesedb-alpha-20120102.tar.gz
  • cd libesedb-20120102
  • ./configure
  • make 
komutlarını vererek aracımızın kurulumunu tamamlıyoruz.

Şimdi artık ntdis.dit dosyasından ayıklayabiliriz aracımızla kullanıcı bilgilerini. Yazılım esedbtools dizini içerisindeki esedbexport dosyasını oluşturuyor kullanmamız için. Komut olarakta aşağıdaki şekilde çalıştırıp ayrıştırma işini tamamlıyoruz ve komut çıktıları ntds.dit.export dizini altına açıyor dosyaları bulunduğunuz dizinde.

Bu adımdan sonra geriye Metasploit altında çalışan bağımsız ntds_hashextract aracını kullanmak kalıyor. Mevcutta Metasploit ile beraber gelmeyen aracı sistemimize indirip, metasploit yazılımının kurulu olduğu yol altında “tools” dizini içine ruby dosyası olarak yerleştirilmesi ile sağlıklı çalışması sağlanabiliyor.

“wget ‘https://raw.github.com/R3dy/metasploit-framework/54bba07846c2264354a794bc9652b71d7e66c53f/tools/ntds_hashextract.rb‘ –directory-prefix=’/opt/metasploit/msf3/tools/’ ” komutu dosyanın internetten alınıp metasploit altında doğru yere konmasını sağlıyor. Bizede bu ruby dosyasını çalıştırılabilir hale getirmek için izinleri vermesi kalıyor.

Tüm yolu belirterek bu aracı çalıştırabiliriz artık. Çalıştırmak için ntds.dit içerisinden esedb aracı ile oluşan dosyalardan “datatable.3” dosyası ve “system” hive dosyası parametre olarak veriliyor ve çıktı olarakta size bütün domain kullanıcı adı ve hashlerini LM:NTLM olarak UUID bilgileri ile beraber veriyor.

Barkın KILIÇ <barkin.kilic@bga.com.tr>