Saya terus menerbitkan solusi yang dikirim untuk diproses lebih lanjut dari situs HackTheBox . Saya berharap ini akan membantu setidaknya seseorang untuk berkembang di bidang keamanan informasi. Dalam artikel ini, kami mengeksploitasi kerentanan di Json.Net dan melihat bagaimana meningkatkan hak istimewa kami untuk SISTEM jika kami memiliki hak istimewa SeImpersonatePrivilege.Koneksi ke laboratorium adalah melalui VPN. Disarankan untuk tidak terhubung dari komputer kerja atau dari host di mana data penting bagi Anda tersedia, karena Anda berakhir di jaringan pribadi dengan orang-orang yang tahu sesuatu di bidang keamanan informasi :)Informasi Organisasi, - , :
- PWN;
- (Crypto);
- c (Network);
- (Reverse Engineering);
- (Stegano);
- WEB-.
, , , .
, ,
Telegram . , ,
.
. , - , .
Badan intelijen
Mesin ini memiliki alamat IP 10.10.10.158, yang saya tambahkan ke / etc / hosts.10.10.10.158 json.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.158 --rate=500
Selanjutnya, Anda perlu mengumpulkan lebih banyak informasi tentang port yang dikenal. Untuk melakukan ini, gunakan nmap dengan opsi -A.nmap json.htb -p49156,49154,49152,47001,80,137,49153,139,49155,135,445,49158,5985,6666,21
Sekarang, untuk informasi lebih rinci tentang layanan yang beroperasi pada port, kami akan menjalankan pemindaian dengan opsi -A.nmap -A json.htb -p80,139,135,445,5985,6666,21
Mari kita lihat apa yang ada di web. Akibatnya, halaman dimuat, dan hanya kemudian melemparkan kita ke halaman otorisasi.
Kita bisa menyiasatinya, tetapi admin: admin memungkinkan kita untuk masuk.
Tidak ada yang menarik di situs itu sendiri, dan dalam upaya menemukan setidaknya sesuatu, kami berpegang teguh pada cookie.
Dekode Base64.echo "eyJJZCI6MSwiVXNlck5hbWUiOiJhZG1pbiIsIlBhc3N3b3JkIjoiMjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzMiLCJOYW1lIjoiVXNlciBBZG1pbiBIVEIiLCJSb2wiOiJBZG1pbmlzdHJhdG9yIn0=" | base64 -d ; echo
Artinya, nilai kata sandi adalah MD5 dari kata sandi admin.
Selanjutnya, tidak ada yang menarik. Dengan membuka Bersendawa dan memotong permintaan, Anda dapat menemukan header HTTP yang menarik.
Dan pada tahap ini, saya menggantung sampai saya diminta untuk "mematahkan artinya". Jelas, dalam kasus seperti itu, Anda perlu membuat kesalahan dan menonton reaksi API di tiga negara: benar, salah, dan salah. Tetapi untuk beberapa alasan saya melewatkannya.Titik masuk
Dan kemudian ditemukan bahwa jika data yang rusak ditransmisikan dalam header HTTP yang aneh (hapus beberapa karakter), maka server memberikan kesalahan. Di bawah ini adalah data yang dikembalikan oleh server dengan nilai header normal dan dengan satu hingga empat karakter dihapus.
Kami mendapatkan kesalahan menarik dalam kasus terakhir. Karena objek JSON tidak beroperasi, kita dapat mengeksploitasi ini menggunakan ysoserial . Kami akan menggunakan gadget ObjectDataProvider untuk Json.Net dan menjalankan perintah ping untuk memverifikasi asumsi kerentanan.
Sekarang aktifkan tcpdump dengan filter protokol ICMP untuk menangkap ping.
Saat mencegat permintaan, kami mengubah tajuk.
Dan kami mendapatkan ping yang dipesan.
PENGGUNA
Sekarang Anda perlu melakukan hal yang sama dengan meteran beban. Pertama, kami menghasilkan beban dan membuka pendengar.
Sekarang buka server SMB lokal dari mana beban akan dimulai.
Sekarang lagi kami membuat serial data yang diperlukan, sebagai perintah kami meluncurkan beban kami dari server kami.
Kami melihat koneksi yang berhasil ke server SMB dan sesi Meterpreter berhasil dimuat.
Dan baca file pengguna.AKAR
Pertama-tama, kami melihat informasi tentang pengguna di bawah siapa kami bekerja.
Pengguna memiliki hak istimewa SeImpersonatePrivilege diaktifkan (hak "Meniru klien setelah otentikasi"). Seperti yang dikatakan Microsoft :Memberi hak kepada pengguna "Meniru klien setelah otentikasi" memungkinkan program yang berjalan atas nama pengguna ini menyamar sebagai klien. Menggunakan parameter ini mencegah server yang tidak sah meniru klien yang terhubung ke server ini menggunakan prosedur RPC atau pipa bernama.
Faktanya adalah bahwa kita dapat meningkatkan hak kami untuk SISTEM. Sebuah studi lengkap dapat ditemukan di sini . Hak istimewa berikut ini dipengaruhi oleh kerentanan ini:- SeImpersonatePrivilege
- SeAssignPrimaryPrivilege
- Setcbprivilege
- SeBackupPrivilege
- SeRestorePrivilege
- SeCreateTokenPrivilege
- SeLoadDriverPrivilege
- SeTakeOwnershipPrivilege
- SeDebugPrivilege
Mari kita menghasilkan beban lain dan menjalankan pendengar untuk itu.
Untuk operasi kita akan menggunakan Juicy Potato . Tetapi sebagai parameter Anda perlu menentukan CLSID dari akun untuk sistem target, kami juga akan mengambilnya dari repositori . Tapi pertama-tama, mari kita lihat sistem seperti apa.
Dan sekarang kita melihat CLSID.
Unggah file ke host target.
Sekarang jalankan Juicy Potato dan tunjukkan padanya dengan proses apa yang akan dibuat (CreateProcessWithTokenW atau CreateProcessAsUser, parameter -t), file proses (-p), port mendengarkan (-l), dan CLSID (-c).
Proses telah berhasil dibuat, dan kami melihat sesi metterpreter yang dibuat.
Dan kami mendapatkan akun SYSTEM.Anda dapat bergabung dengan kami di Telegram. 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.