THM - VulnNet:Active
# Summary
Bu yazıda TryHackMe platformundaki VulnNet: Active makinesinin çözümünü ele alacağız. Makine, Active Directory ortamında gerçekçi bir saldırı zinciri sunuyor. Başlangıçta şifresiz erişime açık bir Redis servisi üzerinden hem kullanıcı adını hem de NTLM hash’ini elde ediyoruz. Yakalanan hash’i hashcat ile kırarak geçerli bir credential elde ettikten sonra SMB üzerinden sistemi daha ayrıntılı inceliyoruz. Yazma yetkimizin bulunduğu bir PowerShell scripti aracılığıyla reverse shell alıyoruz. Yetki yükseltme aşamasında ise iki farklı yol izliyoruz: SeImpersonatePrivilege üzerinden GodPotato ile SYSTEM token’ı ele geçirme ve BloodHound analizi sonucunda tespit ettiğimiz GPO üzerindeki GenericWrite yetkisini SharpGPOAbuse ile kötüye kullanarak domain administrator yetkisi elde etme olaylarını göreceğiz.
# Enumeration
Nmap
Nmap TCP taramasına göre belli başlı portların açık olduğunu görebiliyoruz. Ek olarak UDP taraması gerçekleştireceğim.
Burada da bazı portları filtred olarak gösteriyor netcat kullanarak açık olup olmadıklarını doğrulamak istiyorum.
Şu ana kadar elimizde enumerate etmek için dns,smb,rpc,redis,ldap gibi servisler bulunuyor. Sırasıyla dikkatli bir şekilde saldırı yüzeyini geliştirmek için bilgi toplamaya çalışacağım.
SMB
nxc toolu ile smb üzerindeki paylaşımları görmek adına denemeler yaptım. Null Auth izin verilmiş fakat yetkisi yok. Guest session ise devre dışı. Bu aşamada smb üzerindeki paylaşılan dosyaları görüntüleme şansımız yok. Edindiğimiz bilgilere göre karşımızda Windows Server 2019 bir makine var ve adı:VULNNET-BC3TCK1 domain: vulnnet.local
RPC
Yekimiz olmadığı için enum yapamadık.
LDAP
sadece udp üzerinde açık olduğu için enum etmek mümkün değil.
REDIS
Güzel! Burada hem redis servisinin versiyon bilgisini hem de kullanıcı adı ve dosya yolunu öğreniyoruz. redis_version: 2.8.2402 username: enterprise-security
# Foothold
Redis üzerinden ntlm hash yakalama tekniği işe yaradı. Bu sayede enterprise-security kullanıcısının hash değerini elde ettik. Şimdi bunu hashcat yardımıyla kıralım.
1
2
3
➜ active hashcat -m 5600 hash /usr/share/wordlists/rockyou.txt --force
[...]
ENTERPRISE-SECURITY::VULNNET:388343945c6acba6:1e21183c73d0971b234477185b422198:010100000000000000437e4b2ef0dc013dfce1af2e77ba350000000002000800420033004e00560001001e00570049004e002d00550054005a0057003200480037004d0044005900310004003400570049004e002d00550054005a0057003200480037004d004400590031002e00420033004e0056002e004c004f00430041004c0003001400420033004e0056002e004c004f00430041004c0005001400420033004e0056002e004c004f00430041004c000700080000437e4b2ef0dc0106000400020000000800300030000000000000000000000000300000b9bdb222af742fb5ad5222de093e9f97d60612cb54b670efcd97b8ff0f5b9f150a001000000000000000000000000000000000000900280063006900660073002f003100390032002e003100360038002e003200310031002e003200310035000000000000000000:sand_0873959498
Şu an elimizde kullanıcı adı ve parola var. enterprise-security:sand_0873959498 Bu aşamada kerberoasting deneyebiliriz, smb üzerinden bilgi toplamaya devam edebiliriz, direkt oturum açmayı deneyebiliriz.
Elimizdeki credential ile tekrardan smb servisine döndük. Bu sefer paylaşımları ve sistemdeki kullanıcıları görebiliyoruz. Paylaşımlar arasında default olmayan göze çarpan Enterprise-Share bulunuyor. Üstelik hem okuma hem yazma yetkimiz bulunuyor.
Paylaşımı incelediğimizde bir powershell scripti bizi karşılıyor. İçerisine baktığımızda ise scriptin C:\Users\Public\Documents\ dizinindeki tüm dosyaları sildiğini görüyoruz. Bu dosya sanki belirli aralıklarla çalışıyor gibi görünüyor. Bu dosya içerisine reverse shell payloadını yerleştireceğim
Düşündüğüm gibi de gerçekleşti ve shell kazandık.
# Privilege Escalation
SeImpersonatePrivilege
Çok basit bir inceleme yapıyorum.
Sistemdeki kullanıcıları ve bağlandığımız kullanıcının yetkilerini inceliyorum. Kritik bir yetkiye sahibiz.
SeImpersonatePrivilege : Bu ayrıcalık başka bir kullanıcının güvenlik bağlamını taklit etmesine olanak tanır. “Potato” saldırısı, bu ayrıcalığın kötüye kullanılması etrafında döner.
- GodPotato: https://github.com/BeichenDream/GodPotato/releases/download/V1.20/GodPotato-NET4.exe
- nc.exe: https://github.com/int0x33/nc.exe/raw/refs/heads/master/nc.exe
Dosyalarımızı hedef sisteme taşıdıktan sonra system kullanıcısından shell alıyorum.
GPO Abuse
Hedef sistem üzerinde sharphound çalıştırdım ve topladığı bilgileri bloodhound’a aktararak inceledim.
GPO nesnesi üzerinde GenericWrite yetkisine sahibiz yani özelliklerini değiştirebiliriz. GPLink ise GPO’nun bağlı olduğu yeri gösteriyor. Bu ortamda direkt domaine bağlı olduğu için her şeyi etkileyebilir. Eğer OU’ya bağlı olsaydı sadece o OU’daki bilgisayarları etkilerdi.
1
.\SharpGPOAbuse.exe --AddComputerTask --TaskName "Backdoor" --Author "NT AUTHORITY\SYSTEM" --Command "cmd.exe" --Arguments "/c net localgroup administrators enterprise-security /add" --GPOName "SECURITY-POL-VN"
Bu kodda GPO uygulandığında bizi administrators grubuna eklemesini söyledim.
Sonrasında biraz bekleyebilir ve gpupdate /force komutu kullanabiliriz. 
Görüldüğü gibi sahip olduğumuz kullanıcı artık administrators grubu içerisinde yer alıyor. psexec ile shell almaya çalışacağım.
ve evet bu şekilde de system alabiliyoruz.














