IT Security Enthusiast • Bug Hunter • Penetration Tester

Hack The Box Walkthrough – Passage

H

Descriptions

  • Operating System : Linux
  • IP Address : 10.10.10.206

Just info, saya menggunakan sistem operasi windows pada sistem utama, dengan bantuan sistem operasi virtual kali linux untuk mendukung berbagai tools yang akan digunakan dalam eksploitasi mesin virtual ini.

Enumeration

  • Active Port
Hanya port 22 dan 80 yang terbuka
  • Directory
Tidak ada yang menarik saat enumerasi direktori

Foothold

  • Sampai sini, kita telah mendapat beberapa informasi menarik dimana pada ip tersebut kita bisa melihat bahwa port 22 (SSH), dan 80 (HTTP) aktif.
  • Saya coba tes akses apakah ssh bisa melakukan login secara publik ternyata tidak bisa.
Akses ssh tidak bisa diakses secara publik
  • Lalu coba akses port 80 di browser.
Tampilan saat port 80 diakses
  • Hmm menarik! setelah dilihat diraba ditrawang ternyata website tersebut menggunakan CMS yang bernama CuteNews.

Edit file hosts pada sistem lokal agar lebih mudah sehingga akses dapat dilakukan melalui domain passage.htb

  • Halaman login atau register CMS ini terdapat pada halaman passage.htb/CuteNews/.
Halaman login atau register CMS
  • Terlihat pada bagian footer bahwa aplikasi memiliki versi 2.1.2 yang mana setelah googling mengarahkan saya pada situs ini: https://musyokaian.medium.com/cutenews-2-1-2-remote-code-execution-vulnerability-450f29673194.
  • Baca demi membaca, kesimpulan dari vulnerability ini sudah terdokumentasi pada CVE-2019-11447 yang mana menunjukan kita dapat melakukan upload shell pada fitur ubah gambar avatar dengan syarat sudah menjadi user pada CMS tersebut (oke, langsung coba registrasi).
  • Selanjutnya login maka akan menampilkan halaman awal seperti berikut.
Halaman personal user
  • Pergi ke halaman “Personal options” dan coba upload shell dengan menambahkan header untuk gambar berformat GIF seperti berikut (sesuai deskripsi pada dokumentasi CVE-2019-11447).
GIF8;
  • Intercept request.
Menambahkan header untuk bypass upload shell
  • Oke, shell berhasil di upload dan saatnya coba test akses.
Shell berhasil di akses
  • Agar lebih mudah akses konsol server, saya lakukan reverse shell.
Akses menggunakan reverse shell
  • Setelah berhasil masuk ke server, langkah selanjutnya adalah eskalasi kedalam user hingga menjadi root.

Privilege Escalation

  • Cek isi direktori /home untuk melihat direktori user yang ada.
Cek isi direktori /home
  • Terdapat dua user pada mesin ini yang bernama nadav dan paul namun kita tidak bisa melakukan akses kedalam direktori semua user tersebut.

Akses akun user Paul

  • Setelah menelusuri isi dalam direktori CMS, terdapat folder pada /var/www/html/CuteNews/cdata/users lalu pada file bernama “lines” yang menampilkan semacam isi log user yang melakukan akses login sebelumnya.
Isi direktori program CMS
  • Print file lines dan didapat beberapa enkoding dari base64.
Log aktifitas login user sebelumnya
  • Setelah decode salah satu baris, ditemukan kredensial milik user Paul.
array (
  'name' => 
  array (
    'paul-coles' => 
    array (
      'id' => '1592483236',
      'name' => 'paul-coles',
      'acl' => '2',
      'email' => 'paul@passage.htb',
      'nick' => 'Paul Coles',
      'pass' => 'e26f3e86d1f8108120723ebe690e5d3d61628f4130076ec6cb43f16f497273cd',
      'lts' => '1592485556',
      'ban' => '0',
      'cnt' => '2',
    ),
  ),
)
  • Decrypt password (sha256).
Password berhasil di decrypt
  • Password akun Paul sudah ditemukan dan saatnya akses flag pada file home.
Flag user didapatkan
  • FYI, setelah saya cek didalam folder /home/paul/.ssh terdapat key untuk kredensial login sehingga akses dapat dilakukan langsung ke mesin tanpa harus melakukan reverse shell.
Akses akun Paul menggunakan custom ssh key

Akses akun user Nadev

  • Untuk melakukan akses ke user Nadav, ternyata key yang digunakan sama dengan user Paul karena sudah diberikan akses dan bisa dilihat pada file authorized_keys.
Akses user Nadav sama dengan akses user Paul
  • Tes akses user Nadav.
Akses akun Nadav menggunakan custom ssh key

Akses akun Root

  • Eslakasi ini sempat membuat saya bingung karena di mesin ini banyak sekali pengecoh-pengecoh seperti service yang berjalan, port yang terbuka, dan lain-lain hingga akhirnya hamba butuh clue 🙂 (setiap mesin punya thread masing-masing yang bisa diakses pada halaman forum HTB, contohnya: https://forum.hackthebox.eu/discussion/3804/official-passage-discussion).
  • Dan setelah di ulik lagi, saya coba enumerasi mesin ini menggunakan LinPEAS ternyata terdapat sebuah utilitas bernama “dbus-daemon-launch-helper”.
Hasil enumerasi LinPEAS
  • Saya coba cari informasi terkait cara eskalasi hingga menemukan sebuah blog yang membahas bagaimana cara eskalasi untuk membaca file tertentu dengan izin root, dan yah ternyata jawabannya adalah menggunakan gdbus (suatu kebetulan yang disengaja 😀 haha).
  • Membaca flag yang ada di direktori /root/root.txt, tapi sebelumnya saya harus membuat file bernama rahasia.txt untuk tujuan pembacaan file yang akan dibaca.
gdbus call --system --dest com.ubuntu.USBCreator --object-path /com/ubuntu/USBCreator --method com.ubuntu.USBCreator.Image /root/root.txt /tmp/mxtvn/rahasia.txt true
Membaca file yang berisi flag root
  • Tujuan akhir sudah selesai, namun disini jika ingin menggunakan akses konsol user root kita dapat mencuri id_rsa yang ada di direktori /root/.ssh/id_rsa.
Akses konsol root berhasil
  • Thanks

Add comment

IT Security Enthusiast • Bug Hunter • Penetration Tester