Active Directory Kurulumu ve Penetrasyon Testleri
Herkese merhabalar. Wmware Workstation üzerinden kendi active directory sistemimizi ayaklandırıp penetrasyon testlerini gerçekleştireceğiz.
1-) İlk önce Windows server 2012 R ile ana AD(Active Directory) kurulumunu gerçekleştireceğiz.
Domain Controller: Windows-DC
Domain: s1ber.com
Ardından gerekli kullanıcıları, domain admin, enterprise admin ve gerekli diğer bilgisayarları kuracağız.
2-) Windows server 2016 üzerinden alt alan adı(child domain) kuracağız.
Domain controller : Windows2016
Child Domain : fileserver.s1ber.com
3-) Windows-11 bilgisayari da kullanici olarak s1ber.com domainine bağlanılacak.
4-) Yukarıdaki tüm kurulum ve ayarlama işlemleri bittikten sonra kali linux aracımıza dönüp Kullanıcı bilgisayarına veya domain bilgisayarına sızıp ardından ağ içi AD(Active Directory ) testlerini gerçekleştireceğiz.
Senaryo: Bu şirkette çalışan bir siber güvenlik uzmanıyız. Bize verilmiş görev ise active directory ortamında elimizden geldiğince veri toplamaya çalışmak ve güvenlik açıklarını bulmak.
Kurulumlar:
İlk önce Windwos server 2012 R kurulumu gerçekleştirmk için aşağıdaki adımları takip ediyoruz.
Windows server 2012 R için ip adresini statik ip atıyoruz.
Varsayılan Domain controller ismi karışıl olduğundan bilgisayar ismini değiştirelim.
Windows-DC olarak ayarlayalım. İsmi değiştirdiğimizden bilgisayarı yeniden başlatmamız gerekecektir.
Oturum açtığımızda Bilgisayar ismi değişmiş oldu.
Active Directory ayaklandırmak için gerekli eklentileri eklememiz gerekecktir. Add Roles and Features diyerek başlıyoruz.
Next deyip ilerliyoruz.
Role-based or feature-based installation seçip next diyoruz.
Domain kontroller seçip Next deyip geçiyoruz.
Active Directory Domain server seçip add Feature diyoruz.
Dns Server seçip Add features tıklıyoruz.
Listede her iki seçenek de işaretli olması gerekir ekranda görüldüğü gibi.
Next deyip ilerliyoruz.
Next
Next
Restart the destination server automatically, if requıred seçeneğini seçip install diyoruz.
Kurulum işlemi başlıyor…
Close deyip pencereyi kapatıyoruz.
Kurulum işlemi bittikten hemen sonra sağ üstte ünlem işareti oluşacaktır. Promote this server to a domain controller deyip gerekli işlemleri yapacağız.
İlk defa kuracağımız için herhangi bir alan adına sahip değiliz. Bundan dolayı sıfırdan bir forest oluşturmamız gerekiyor. Add a new forest deyip alan adımızı yazıyoruz.
Şifre belirleyip next diyoruz.
Next
Next
Gerekli dosyaların nereye kaydedileğini belirtiyor. Next deyip ilerliyoruz.
Next
İnstall deyip active directory domain kurulum işlemini başlatmış olacağız.
Kurulum bittikten sonra bigisayarı yeniden başlatmamız gerekecektir.
Ve evet artık açılışta s1ber Domainine bağlı bir şekilde oturumumuzu açacağız.
Domainimiz s1ber.com
Gerekli tüm üyelik grup ve Domain kullanıcı işlemleri hepsi “Active Directory users and copmputers” alanında yer alır.
Örnek olarak yeni bir kullanıcı ekleyelim
Oturum açma esnasında User logon name kısmında yer alan kullanıcı adınız ile oturum açacaksınız.
Buradaki ayarları kasıtlı olarak zaafiyetli yapıyorum. Amaç güvenlik testlerinde nelere maal olacağını görmek. Şifre belirleyip next diyoruz.
Kullanıcımızı oluşturduk. Bundan sonra Windows 11 olan bilgisayarımızı domaine bağlayacağız. Çünkü oluşturduğumuz herhangi bir domain kullanıcı hesabı domaine bağlı bir bilgisayar ile oturum açabilir.
İp adresi atayıp dns kısmına Windows-DC yai server 2012 R ip adresini atıyoruz.
Kafa karışıklığını önlemek için genellikle bilgisayar isimleri değiştirilir. Windows-11 deyip bilgisayarı yeniden başlatıyoruz.
Gelişmiş ayarlardan Bilgisayarı s1ber.com domainine bağlıyoruz.
Evet Bilgisayarımız artık bir domaine bağlı.
Bilgisayarı yeniden başlatıyoruz.
Oluşturduğumuz kullanici1 hesabı domaine bağladığımız Windows-11 bilgisayarı üzerinden oturum açabilecektir.
S1ber\kullanici1
Oturum açtıktan sonra cmd üzerinden domaine ait olduğumuzu teyit edebilirsiniz.
Tekrar sağ üst kısımda bulunan tools sekmesinden Active Directory users and computers açıyoruz.
Computers alanına baktığımızda domain havuzuna bağladığımız Windows-11 bilgisayarımız görünecektir.
S1ber.com sağ tıkalyıp yeni bir muhasebe alanı oluşturuyoruz. Bunu yapmak için;
new > Organization unit tıklıyoruz
Employee adında bir OU oluşturalım. Burada Tüm Departmanlara ait çalışan hesapları yer alacak. Her birine sağ tıklayıp new > user deyip kullanıcı ekleyebilirsiniz.
IT > New > User deyip yeni kullanıcı ekliyoruz.
Oturum açmak için mehmet.can olarak yazılması gerekecek.
Şimdi aynı şeklide diğer OU grupları için de kullanıcı ekleyelim.
Accouınting
Finance
HR
Security
Her departmana kullanıcı ekledik. Şimdi Domain kontroller şuan hangi bilgisayara bağlı bunu görmek için, s1ber.com’a sağ tıklayıp Operations Masters tıklıyoruz.
Primary Domain Controller: Windows-DC
Şu ana kadar her şey tamam. İsteğe bağlı Domain admin, enterprise admin vb diğer gruplara da kullanıcı ekleyebilirsiniz.
Şimdi fileserver.s1ber.com için windows server 2016 ayaklandırıp Add a new forest yerine Add a new domain to an exist forest yani s1ber.com a child domain ekleyeceğiz. Yapılması gereken tüm adımlar aynıdır.
Şu an tüm kurulumlar ve makineler hazır ve açılmış durumda. Geriye kalan tek şey network taraması yapıp yavaş yavaş bilgi toplamak.
Network Taraması
Ağ geçidi ip adresi bulma
Tüm sabneti tarama
3 adet hedefımız mevcut
-Windows-DC
-Windows2016
-Windows-11
Hedefleri kaydedip nmap’e liste olarak taratıyoruz.
Windows-dc (192.168.108.134)(s1ber.com)
Windows2016(192.168.108.136)(fileserver.s1ber.com)
Windows server 2016 da Yüksek derecede(ms17–010) bir güvenlik açığı mevcut. Buradan ilerleyebiliriz. Eğer Shell alırsak bundan sonrası active directory Recon işlemlerine başlayabiliriz demektir.
Windows-11(Domaine bağlı bilgisayar.)
msfconsole başlatıp bulunan güvenlik açığı üzerine arama yapıyoruz.
Bırkaç defa test yaptıktan sonra hatta diğer payloadları da denedikten sonra yine Shell alamadık. Peki şimdi neler yapılabilir. Hedef sistemlerde eğer aktive direktory varsa smb saldırısı yapılabılır. Burada crackmapexec kullanarak işe başlayabilirz.
Crackmapexec
İlk domain kullanıcı adı ve şifresini bulduk.
k.adı : zulfukar
Parola: K2348msn
Şimdi psexec aracı ile Shell alabiliriz.
Şimdi diğer makineye bakalım
Buarada ise zulfukar.karabulut adlı domain kullanıcısının hesabını ele geçirmiş olduk. Burada Shell açmayı deneyelim.
Shell almayı başardık. Şimdi bu shelli meterpreter olarak açalim.
Msfconsole üzerinden smbexec aratarak bulabiliriz.
System bilgisi alma
Yetkililik durumu görme
Not: normal şartlarda local de en yüksek yetkiye sahip hesaptır. Ama domain ortamında en yüksek hesap forest düzeyinde hesaplardır. Domain admin gibi. Peki eğer getuid yazdiğimizda system yetkilerine sahip olmasaydık nasıl yetki yükseltme yapabilirdik ona bakalım. Meterpreter üzerinde getsystem yazabiliriz. Eğer işe yararsa direk system olarak sizi atar. Ya olmazsa elternatif metasploit exploitleri deneyebilirsiniz. İşte bazı exploitler:
Search UAC bypass diyerek aratabilirsiniz.
En sık kullandığım bazıları şunlardır:
· exploit/windows/local/bypassuac
· exploit/windows/local/bypassuac_dotnet_profiler
· exploit/windows/local/bypassuac_fodhelper
· exploit/windows/local/bypassuac_injection
Tüm hesap şifrelerini dump edebildik. Bu işimizi biraz daha kolaylaştıracaktır.
Veya meterpreter üzerinden load kiwi diyerek mimikatz programının alternatifi olan kiwi ile AD ile ilgili önemli bilgiler edinebilirsiniz.
lsa_dump_secrets diyerek tün kullanıcı şifrelerini de yine bu şekilde alabilirsiniz.
Hashcat, john, medusa vb araçlar ile ntlm,md5…. vb hashleri kırabilirsiniz. Veya en kısa yoldan online web sitelerini de kullanabilirsiniz. İşte alternatif site:
https://hashes.com/en/tools/hash_identifier
Veya
Tüm hash’leri kaydedip hashcat ile kırabilirsiniz.
└─# hashcat -m 1000 -a 0 ntlm-hashler.txt AD-passwords.txt
Peki ya diğer çok önemli hesapların hashleri kırılmazsa ne yapacağız. Burada Pas-the-hash(PtH) tekniği devreye girer.
crackmapexec kullanarak
psexec kullanarak hash ile Shell almak.
Set rhost
Set smbuser
Set smbpass 00000000000000000000000000000000:18d3a768b90cd786e107a10b5faeba9a
Exploit
NOT: psexec ile ntlm hash kullanıyorsanız önüne 32 adet 0 eklenmesi gerekir
Bazen session oturumu aldığımız halde oturum açılmadı hatası alabiliriz. Ama sessions yazdığınızda oturum açılmış olacaktır.
Session 1 deyip meterpreter oturumuna geçiş yapalım.
Bundan sonrası AD işlemleri. Shell diyerek cmd geçiş yapıyoruz. Powershell ile ps oturumuna geçiyoruz. Powershell -ep bypass diyerek scriptleri engelleyen mekanizmayı geçici olarak devredışı bırakıyoruz.
Şimdi Bize gereken scripti hedef sisteme indirelim.
whoami /all komutu, Windows işletim sistemlerinde ve Active Directory (AD) ortamlarında kullanıcının kimliğini, oturum bilgilerini ve kullanıcıya atanan güvenlik tanımlayıcılarını (SID), grupları, ayrıcalıkları ve yetkileri detaylı olarak gösterir.
Kullanıcıları hesaplarını gösterme
OU gruplarını gösterme
Security alanında hangi hesaplar var, görmek için:
Get-DomainUser -SearchBase “OU=Security,OU=Employee,DC=s1ber,DC=com” | select cn
Sonuna | select cn yazarsak sadece kullanıcı hesap adı çıkacaktır.
Enterprise Grubuna ait hesapları görmek için:
Domain Controller keşfi:
Domaine bağlı bilgisayarları görme:
Domain Admins Hesaplarını görme
Bir bilgisayardaki paylaşımları görmek için:
Geçerli etki alanındaki GPO’ların listesi:
Geçerli etki alanı için tüm TrustDomainleri listelemek için :
Mevcut Forest aytılarını göstermek için:
AS-REP Roasting saldırısı
Yanlış yapılandırılmış kullanıcı hesaplarına yönelik As-Rep Roasting salrısı nasıl yapılır onu görelim.
Bunu yapmadan önce kasıtlı olarak bazı hesapları yanlış yapılandıralım.
“Do not Require Kerberos preauthntication” ayarını aktif ediyoruz.
Get-DomainUser | Where-Object { $_.UserAccountControl -like “*DONT_REQ_PREAUTH*” } | select cn
2 kullanıcı hesabı bu saldırıya maruz kalabilir. Şimdi herhangi biri için hash değerini kaydedip sonra test edelim. İhtiyacımız olan araç Rubeus.exe
Hash değeri bu şekilde kaydedilmiş durumda.
Bu hash değerini john aracı ile kırabiliriz.
Bu şekilde As-rep roasting saldırısı ile yanlış konfigüre edilmiş hesaplara yönelik saldırılar gerçekleştirilebilir.
Kerberoasting Saldırısı
klist diyerek kerberos hesaplarını görebiliriz
Bundan sonrası ıhtıyacımız olan araç mimikatz : https://github.com/ParrotSec/mimikatz
Tüm ticketları export etmek için:
.kirbi dosyalarını kırmak için ihtiyacımız olan araç:
.\python.exe .\tgsrepcrack.py .\AD-passwords.txt .\2–40250000-Administrator@host~windows-dc.s1ber.com-S1BER.COM.kirbi
bu şekilde kerberosting saldırısını gerçekleştirebilirsiniz. Ayırca silver ticket veya golden ticket saldırıalrını da araştırabilirsiniz.
Buraya kadar okuduysanız tebrik ederim. Umarım faydalı olmuştur. AD ile ilgili daha fazla bilgi için :
https://s1ber.com/active-directory-enumeration/ yazımızı okuyabilirsiniz.
Zulfukar Karabulut
Penetration Tester
Yorum yapılmamış