
Bloodhound, Active Directory ortamında hakimiyet analizi yapmak için kullanılan bir araçtır. Bu araç sayesinde, ağınızda bulunan tüm kullanıcılar, gruplar ve bilgisayarlar arasındaki ilişkileri görebilirsiniz.
Bloodhound, önce bir dizi veri toplar. Bu veriler, kullanıcıların hangi gruplara üye olduğu, hangi bilgisayarlara erişebildiği gibi bilgileri içerir. Daha sonra, bu verileri işleyerek, ağınızdaki hakimiyet zincirini oluşturur. Böylece, potansiyel güvenlik açıkları ve riskler hakkında bilgi sahibi olabilirsiniz.
Bloodhound Kullanımı
Bloodhound, Active Directory ortamında ayrıcalıklı erişime sahip olan hesapları ve bu hesaplara erişim sağlayan grupları tespit etmek için kullanılır. Bloodhound’un kullanımı oldukça basittir ve genellikle üç adımdan oluşur.
İlk olarak, Bloodhound, Active Directory ortamındaki nesnelerin (kullanıcılar, gruplar, bilgisayarlar vb.) ilişkilerini toplar ve bir grafik halinde sunar. Bu grafikte, nesneler arasındaki bağlantılar gösterilir ve bu sayede ayrıcalıklı erişime sahip olan hesaplar ve gruplar kolayca tespit edilebilir. İkinci adımda, grafik üzerinde filtreleme yaparak hedeflenen nesnelerin bulunması sağlanır. Son adımda ise, hedeflenen nesnelerin ayrıcalıklı erişim izinleri incelenerek güvenlik açıkları belirlenir.
Bloodhound Senaryoları
Bloodhound, ağ güvenliği analizi için çok yönlü bir araçtır. Aşağıda, Bloodhound’un kullanılabileceği senaryoların bazıları verilmiştir:
1. Active Directory Analizi: Bloodhound, Active Directory ortamlarında ayrıcalık yükseltmesi ve yatay hareketlilik saldırılarını tespit etmek için kullanılabilir.
2. Yeni Uygulamaların Test Edilmesi: Bloodhound, yeni uygulamaların test edilmeden önce ağ üzerindeki etkilerini anlamak için kullanılabilir.
3. Sızma Testleri: Bloodhound, sızma testlerinde kullanılan bir araçtır. Ağ üzerindeki zayıf noktaları ve riskleri tespit etmek için kullanılabilir.
Öncesinde BloodHound harici;
-Crackmapexec,
-Remmina veya rdesktop
-Evil-Winrm
Tooları yüklenmelidir.
Installing from Source & with Poetry
You’re going to need to install Poetry which is what CME uses to manage dependencies.
#~ apt-get install -y libssl-dev libffi-dev python-dev-is-python3 build-essential
#~ git clone https://github.com/mpgn/CrackMapExec
#~ cd CrackMapExec
#~ poetry install
#~ poetry run crackmapexec
Python Package
Using pipx over pip is recommanded
#~ python3 -m pip install pipx
#~ git clone https://github.com/mpgn/CrackMapExec
#~ cd CrackMapExec
#~ pipx install .
Remmina
┌──(kali㉿kali)-[~]
└─$ sudo apt-get update
┌──(kali㉿kali)-[~]
└─$ sudo apt-get -y install remmina
┌──(kali㉿kali)-[~]
└─$ sudo apt update



Neo4j Nedir?
Neo4j, bir graf veritabanı yönetim sistemidir. Verileri graf şeklinde depolar ve sorguları bu graflar üzerinde çalıştırır.
Bloodhound kurulumu için öncelikle Neo4j veritabanı kurulu olmalıdır. Bloodhound, tarayıcı üzerinden çalışan bir araçtır ve kurulumu oldukça basittir.
Kullanımı için, Bloodhound arayüzünde veritabanınızı seçin ve grafik görünümünü açın. Burada, grafik üzerinde gezinerek verilerinizi keşfedebilirsiniz. Özelleştirme seçenekleri arasında, grafik düzeni, renkler ve etiketler bulunur.
neo4j console
Veritabanı başlatıldıktan sonra kullanıcı adı ve şifresini ayarlamamız gerekiyor.

Bir tarayıcı açın ve https://localhost:7474 adresine gidin. Resim 1’dekine benzer bir sayfa elde edeceksiniz. Varsayılan kullanıcı adı neo4j ve şifre neo4j ile giriş yapın. Şifreyi değiştirmeniz istenecektir. Varsayılan olarak Neo4j veritabanı yalnızca localhost tarafından kullanılabilir. Neo4j ve BloodHound’u farklı makinelerde daha fazla kurulumla çalıştırabilmenize rağmen, en kolayı her ikisini de aynı makinede çalıştırmaktır.

AD Verilerinin Toplanması — Araçlar Özeti
Bu bölümde BloodHound veritabanına AD verilerini toplamak için kullanılan araçlar tanıtılmakta ve SharpHound hakkında bilgi verilmektedir. Ele geçirilen user bilgileri ile birlikte bağlantı isteği gönderilir.

BloodHound-Tools deposunda bulunan DBCreator aracı kullanılarak bir test veritabanı oluşturulması amaçlanmaktadır. Bu Python aracı, Neo4j veritabanına bağlanarak AD nesneleri ve ilişkileri için veri üretir.


Veya,

Öncelikle –CollectionMethod ile Toplama Yöntemimizi seçiyoruz. Görevinize bağlı olarak, hangi verileri değerlendireceğiniz sizi kısıtlayabilir. Ne zaman şüpheye düşerseniz, en iyisi sadece “Tümü”ne gitmek ve daha sonra bunu gözden geçirmektir. Kırmızı Takım görevlerinde, başlangıçtaki tutunma noktanızı ve dolayısıyla daha fazla veri toplama olanağını her zaman kaybedebilirsiniz (sonuçta, Mavi Takım sizin peşinizde olabilir!). Mümkün olan ilk fırsatta yeterli veri toplamak en iyisidir.
İkinci seçenek ise ` — d` içeren alan adı olacaktır. Bunu yalnızca SharpHound’un dayanağınızın bağlı olduğu etki alanını sorgulamasını istemiyorsanız belirtmeniz gerekir.
Stealth seçenekleri SharpHound’un tek iş parçacıklı çalışmasını sağlayacaktır. Bu daha fazla zaman alacaktır ancak çok iş parçacıklı çalıştırırsanız EDR veya izleme çözümleri koleksiyonunuzu daha hızlı yakalayabilir. Yine OpSec’in dikkate alması gereken bir konu. Kendi ortamınızı değerlendirmek için BloodHound’u kullanan bir Mühendisseniz bu tür sorunlar hakkında endişelenmenize gerek kalmayacaktır.
ExcludeDomainControllers sizi DCOnly toplama yönteminden verisiz bırakacak, ancak aynı zamanda DC sistemlerinde çalışan EDR çözümlerine karşı daha az gürültülü olacaktır. OpSec açısından bu, ihtiyacınız olması durumunda ikinci bir veri toplama turu için geri gelmek isteyebileceğiniz durumlardan biridir.
ComputerFile, satırlarla ayrılmış olarak veri toplanacak bilgisayarların bir listesini sağlamanıza olanak tanır. Bu, koleksiyonunuzu hedeflemenizi sağlar.
Throttle` ve Jitter seçenekleri, istekler (Throttle) ve Throttle değerindeki Jitter yüzdesi arasında OpSec dostu bir gecikmeye neden olacaktır. Tespit edilme şansınız azalacaktır ancak kat edeceğiniz mesafe değişebilir.
SharpHound, nispeten küçük bir ortamda birkaç saniye, daha büyük ortamlarda (veya büyük Gizlilik veya Kısma değerlerinde) onlarca dakikaya kadar herhangi bir yerde çalışacaktır. SharpHound işlemi tamamlandığında geçerli dizinde bir Zip dosyası oluşturacaktır. Bu Zip doğrudan BloodHound’a yüklenir.

BloodHound üzerinden “deneme.local” domain’ine yönelik incelemelerde dolaylı yoldan “Domain Users” grubunda bulunan kullanıcıların “Default Domain Policy” adlı politika üzerinde değişiklik yapma yetkisi ile Doman üzerinde eylem gerçekleştirerek “Domain Admins” grubuna çıkabileceği keşfedildi.

Bu yetki dahilinde “Authentcated Users” grubunda bulunan kullanıcılar “Default Domain Policy” adlı politika üzerinde çeşitli değişiklikler yapabilmektedir. Politika üzerinde scheduled task yolu ile istenilen sistem komutu çalıştırılabileceği tespit edilmiştir.
“Default Domain Policy” adlı politikaya “Authenticated Users” grubunda bulunan kullanıcıların “GenericWrite” yetkisinin olduğu görülmektedir.

Bulunan Zaafiyetin Doğrulanması için GPO kontrol edildiğinde Edit yetkisi olduğu görüntülenmiştir.

Deneme yapılacak olan kullanıcın yetki kısıtı olduğu da aşağıdaki gibi görüntülemiştir.

Saldırıyı gerçekleştirmek için “Default Domain Policy” adlı politikanın GPO-ID değeri LDAP sorgusu yapılarak bulunmuştur.

Domain kullanıcısı bilgileri ile hedef Domain Controller’lar üzerinde ilgili politika için scheduled task başarılı bir şekilde oluşturulmuştur..

Bu scheduled task, Doman Controller’lar üzerinde “pentest” adlı bir local administrator kullanıcısı oluşturacak şekilde düzenlenmiştir.

Bulunan GPO-ID değeri ve eklenecek olan User üzerinde yapılan değişiklik sonrası saldırı başlatılmıştır.

“Gerçekleştirilen saldırılar doğrultusunda Domain’ler üzerinde oluşturulan scheduled task’larin listesi aşağıdaki ekran görüntüsünde verilmiştir.


İlgili scheduled task’in çalışması beklendikten sonra “XXX” DC’si üzerinde “Pentest” kullanıcısı ile crackmapexec üzerinden login olunabilmiş ve administratoryetkileri ile komut çalıştırılabilidiği tespit edilmiştir.

Domain’e erişimin ardından “pentest” kullanıcısı oluşturularak “Domain Admins” grubuna başarıyla eklendi.

Belirlenen zaafiyet revize edilmiştir. Authenticated Users Edit yetkisi yerine Read yetkisi verilmiştir.

Yapılan değişiklik üzerinden tekrar deneme yapıldığında erişim sağlanmadığı görüntülenmiş ve doğrulama başarılı şekilde sonuçlanmıştır.
