Selamlar!! Umarım her şey yolundadır. Bu yazımda GOAD ile active directory ortamında gerçekleştirilen sızma testlerini simüle edeceğiz.
Burada GOAD’ın checklist’ini ya da herhangi bi roadmap’i takip etmeden ilerleyeceğim şimdiden söyleyeyim. (^_-)
GOAD ortamının kurulumu ile ilgili buraya bakabilirsiniz.
Başlayalım…
1. — RECONNAISSANCE
Bu noktada direkt olarak netexec ile girişelim. Herhangi bir credential bulunmadığından sadece IP aralığını (192.168.56.0/24) vererek smb protokolü ile basit bi tarama başlatabiliriz. (bu arada netexec artık kali repolarında yerini aldı. “apt install netexec”)
nxc smb 192.168.56.0/24
Bu komutu çalıştırdığımızda aşağıdaki gibi bir çıktı alacağız.
Çıktıyı incelediğimizde elimizde 3 adet domain olduğunu görüyoruz.
- north.sevenkingdoms.local
- sevenkingdoms.local
- essos.local
DC makinelerinde default smb “signing: True” olduğundan ve ortamda “signing: False” makineler olduğundan “winterfell”, “kingslanding” ve “meereen” makinelerinin DC olduğu çıkarımını yapabiliriz.
Tabi çıkarım yapmam ben garanti olsun diyosaniz nslookup ile DNS kayıtlarına bakarak DC’leri tespit edebilirsiniz.
1.1 — Cred Harvesting
Bu kısımda saldıracağımız active directory yapısında herhangi bir kullanıcımız olmadığını varsayarak olabildiğince credential toplamaya çalışacağız.
İlk olarak null session’ın aktif olup olmadığını kontrol etmek için username ve password parametrelerini boş gönderelim. Eğer aktifse password policy, group policy’leri vs. elde etmek için ya da user enumeration için kullanabiliriz.
Aşağıdaki netexec komutunu kullanarak NULL Session ile user enumeration deneyelim;
nxc smb 192.168.56.0/24 -u '' -p '' --users
Komutu çalıştırdığımızda “192.168.56.11” IP adresine sahip “WINTERFELL” DC makinesinden dönüş olduğunu görüyoruz.
Görseli incelersek buradaki tatlı kurgusal ortamımızda sihirli bir elin bize kolaylık sağlamaya çalıştığını görüyoruz. (˶˃ ᵕ ˂˶) .ᐟ.ᐟ
samwell.tarly:Heartsbane
Sihirli el sayesinde elde ettiğimiz cred’leri test edelim;
nxc smb 192.168.56.0/24 -u 'samwell.tarly' -p 'Heartsbane'
Görseli incelediğimizde CASTELBLACK (192.168.56.22 — SRV02), BRAAVOS (192.168.56.23 — SRV03) ve WINTERFELL (192.168.56.11 — DC02) makinelerinde oturum açabildiğimizi görüyoruz…
1.1.1 — SHARES
Smb share’larına bakalım;
nxc smb 192.168.56.0/24 -u 'samwell.tarly' -p 'Heartsbane' --shares
Yukarıdaki share’ları incelemek için yine netexec içerisindeki “spider_plus” modülünü kullanabiliriz;
nxc smb 192.168.56.11 -u 'samwell.tarly' -p 'Heartsbane' -M spider_plus -o DOWNLOAD_FLAG=True
Burada “-o DOWNLOAD_FLAG=True” parametresi ile bu smb share’da bulunan dosyaları direkt olarak hosta indiriyoruz.
Dosyaları lokalimize çektikten sonra bu modülün bizim için hazırladığı metadatalara bakarak tek tek folder gezmeden önce ilgi çekici şeylere göz atabiliriz.
Çıktıyı incelediğimde iki tane powershell scripti dikkatimi çekti ve script.ps1 dosyasını okuduğumda “jeor.mormont” kullanıcısının parolasını elde ettik.
jeor.mormont:_L0ngCl@w_
Elde ettiğimiz kullanıcıyı test edelim;
CASTELBLACK makinesinin Pwn3d! olduğunu görüyoruz.
Ayrıca bir diğer ilgi çekici dosya olan secret.ps1 scriptini inceleyip içerisindeki şifreleme fonsiyonunu tersine çevirince “powerkingftw135” datasını elde etmiş olduk. Nedir ne değildir çok üşendim açıkçası belki password spray yaparken kullanırız not almaya değer.
powerkingftw135
192.168.56.22 makinesindeki smb share’i lokale indirdiğimde de şöyle bir mektup gördüm.
Tabi ki buradaki Needle’ı da boş geçersek olmaz.
nxc smb 192.168.56.0/24 -u 'arya.stark' -p 'Needle.'
BRAAVOS’da oturum açabildiğimizi görmüş olduk.
arya.stark : Needle.
1.1.2 — PASSWORD POLICY
Password policy’lerine bakalım.
nxc smb 192.168.56.0/24 -u 'jeor.mormont' -p '_L0ngCl@w_' --pass-pol
1.1.3 — USER ENUM
Recon’un sınırı yok. İsterseniz disklere, network interface’lerine group’lara vs. bakabilirsiniz ama ben son olarak kullanıcılara bakacağım.
nxc smb 192.168.56.0/24 -u 'jeor.mormont' -p '_L0ngCl@w_' --users
Burada elde ettiğimiz kullanıcılar ile bir users.txt oluşturalım.
Şimdi 192.168.56.11 IP adresine sahip DC makinemizin olduğu north.sevenkingdoms.local domaininde ASREPRoasting deneyelim.
1.1.3.1 — ASREPRoasting
ASREPRoasting saldırısı kerberos’ta saldırganların “Do not require Kerberos preauthentication” ayarı açık olan kullanıcı hesaplarından ticket talep edip gelen hash değerini localde kırmaya çalışmasına dayanan bi saldırı yöntemi.
Bunun için impacket’ın GetNPUsers.py script’ini kullanacağız.
python3 GetNPUsers.py north.sevenkingdoms.local/ -no-pass -usersfile users.txt
Scripti çalıştırdığımızda “brandon.stark” kullanıcısının ticket’ını elde etmiş olduk. Bu hash değerini hashcat aracını kullanarak localimizde kırmayı deneyelim.
hashcat -m 18200 hash /usr/share/wordlists/rockyou.txt
Hashcat ile hash değerini kırdığımızda “brandon.stark” kullanıcısının parolasını elde etmiş olduk.
brandon.stark:iseedeadpeople
1.1.3.2 — KERBEROASTING
Hazır başlamışken Kerberoasting’e de el atalım. Kerberoasting, kerberos’ta servis hesaplarının ticket’larını (TGS) talep edip gelen hash değerini localde kırmaya dayanan bi saldırı yöntemi.
Aşağıdaki komut ile Kerberoasting saldırısını başlatalım.
impacket-GetUserSPNs -request -dc-ip 192.168.56.11 north.sevenkingdoms.local/brandon.stark:iseedeadpeople -outputfile kerberoasting
Böylece servis hesaplarının ticket hashleri “kerberoasting” dosyasına kaydedilmiş oldu.
Şimdi hashcat ile bu hashleri kıralım.
hashcat -m 13100 kerberoasting /usr/share/wordlists/rockyou.txt
Hashcat’i çalıştırdığımızda “jon.snow” kullanıcısının da parolasını elde etmiş olduk.
jon.snow:iknownothing
1.1.3.3 — PASSWORD SPRAYING
Daha önce oluşturmuş olduğumuz users.txt dosyasını kullanarak password spraying deneyelim.
Not: Mutlaka password policy’leri inceleyin. Hesapları kitleyebilirsiniz.
Önceki kısımlarda baktığımız password policy için hesap kilitleme threshold’u “5”. Buna göre“-t” parametresinde max deneme sayısı belirleyelim. Burada yapacağımız spraying “user=pass” şeklinde olacak.
sprayhound -U users.txt -d north.sevenkingdoms.local -dc 192.168.56.11 -t 2
Komutu çalıştırdığımızda “hodor” kullanıcısının parolasının “hodor”(😀) olduğunu gördük.
Password spraying yaparken arada yanlış deneme sayısını checklemekte fayda var.
nxc smb 192.168.56.11 -u hodor -p hodor -d north.sevenkingdoms.local --users
BadPW- kısmında hangi kullanıcının kaç yanlış deneme yaptığını görebiliriz.
Hasadımızın bu noktasında elimizde 6 adet kullanıcı ve ne olduğunu bilmediğimiz bi text olmuş oldu.
- samwell.tarly : Heartsbane
- jeor.mormont : _L0ngCl@w_
- brandon.stark : iseedeadpeople
- arya.stark : Needle.
- jon.snow : iknownothing
- hodor : hodor
- powerkingftw135
İlk part’ı bu şekilde bitirelim. Part 2'de önce Bloodhound ile kendimize bi roadmap çizeceğiz. Sonra yaygın güvenlik zafiyetlerin tespiti ve sömürülmesine odaklanacağız.😁👍