Kalau kamu sudah berhasil menyelesaikan Bandit levels 1-20, selamat — kamu sudah punya fondasi Linux yang cukup kuat. Sekarang waktunya naik level ke Bandit levels 21-33 di OverTheWire. Level-level ini makin kompleks dan mengajarkan konsep yang lebih dalam tentang privilege escalation, cron jobs, setuid binaries, hingga konsep SSH tunneling.
Dalam panduan lengkap walkthrough ini, kamu akan menemukan step-by-step solutions untuk setiap level, lengkap dengan perintah yang digunakan dan penjelasan mengapa perintah tersebut bekerja. Siap? Mari kita mulai!
Persiapan Sebelum Memulai
Pastikan kamu sudah membaca walkthrough Bandit levels 1-20 sebelumnya dan memahami dasar-dasar:
- Koneksi SSH ke server OverTheWire
- Perintah dasar Linux:
ls,cat,grep,find - Konsep permission file (
chmod,chown) - Penggunaan
ssh,scp, dan redirection
Kalau sudah siap, berikut solusi lengkapnya.
Level 21 → Level 22
Goal: Temukan program yang berjalan secara berkala (cron job) dan lihat apa yang dilakukannya.
Pertama, cek direktori /etc/cron.d/ untuk menemukan script yang berjalan otomatis:
ls -la /etc/cron.d/
Di sana kamu akan menemukan file cronjob_bandit22. Lihat isinya:
cat /etc/cron.d/cronjob_bandit22
Isinya menjalankan script /usr/bin/cronjob_bandit22.sh. Cek script tersebut:
cat /usr/bin/cronjob_bandit22.sh
Di dalam script, terlihat bahwa ia menulis output ke file /tmp/t7O6lds9S0RqQh9aMcz6ShpAoPkdIHeY. Langsung saja baca file itu:
cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoPkdIHeY
Password untuk Level 22: YXQkOikA6
Level 22 → Level 23
Goal: Sama seperti sebelumnya — cari cron job yang berjalan, tapi kali ini script-nya lebih kompleks karena menggunakan variable substitution.
Cek cron job di /etc/cron.d/:
cat /etc/cron.d/cronjob_bandit23
Script /usr/bin/cronjob_bandit23.sh menggunakan nama user sebagai bagian dari nama file. Untuk Level 23, usernamenya adalah bandit23. Buat script serupa di lokal untuk mendapatkan password:
echo I am user bandit23 | md5sum | cut -d ' ' -f 1
Hasilnya akan berupa hash yang jadi nama file di /tmp/. Baca file tersebut:
cat /tmp/[hashhasil]
Password untuk Level 23: 0Zf11ioIjVQNB2KCcfqaF3sNCOmF+5n4
Level 23 → Level 24
Goal: Buat script yang secara otomatis tereksekusi oleh cron job dan cetak password.
Cek script cronjob_bandit24.sh:
cat /usr/bin/cronjob_bandit24.sh
Script ini menjalankan semua file di /var/spool/bandit24/foo/ lalu menghapus semuanya. Jadi strategimu:
- Buat script yang mencetak password ke file tertentu
- Copy script ke
/var/spool/bandit24/foo/ - Tunggu beberapa detik — cron job akan menjalankan scriptmu
- Baca password dari file output
# Buat script di /tmp
echo 'cat /etc/bandit_pass/bandit24 > /tmp/hasil.txt' > /tmp/cobacoba.sh
chmod 777 /tmp/cobacoba.sh
cp /tmp/cobacoba.sh /var/spool/bandit24/foo/
sleep 10
cat /tmp/hasil.txt
Password untuk Level 24: 4pT4t5R3c7cfV
Level 24 → Level 25
Goal: Pecahkan PIN 4 digit untuk membuka vault.
Di home directory, kamu menemukan daemon Suitesparse yang mendengarkan di port 30002. Kamu perlu memberikan PIN + password bandit24. Karena PIN hanya 4 digit (0000-9999), brute force memungkinkan:
for i in $(seq 0 9999); do echo " bandit24 4pT4t5R3c7cfV $i"; done | nc localhost 30002 | grep -v "Wrong" | head -5
Cara di atas mencoba semua kombinasi PIN. Proses ini bisa memakan waktu — silakan tunggu sampai menemukan password yang benar.
Password untuk Level 25: p7Taow4RMV9qhK3
Level 25 → Level 26
Goal: Login ke bandit26 menggunakan SSH key privat, lalu buka shell.
Cek SSH private key di home bandit26:
ls -la ~/.ssh/id_rsa
Tapi login normal tidak langsung berhasil karena shell bandit26 diatur ke /usr/bin/showtext yang langsung menutup koneksi. Triknya:
ssh -i ~/.ssh/id_rsa bandit26@localhost
Sebelum koneksi tertutup, langsung ketik:
:set shell=/bin/bash
:shell
Sekarang kamu sudah punya shell bandit26. Baca password:
cat /etc/bandit_pass/bandit26
Password untuk Level 26: uNGaOaBP3WseGF
Level 26 → Level 27
Goal: Eksekusi command sebagai user bandit27.
Dari shell Level 26, cek ps untuk melihat proses yang berjalan:
ps aux | grep bandit27
Temukan binary bandit27-do yang running dengan euid bandit27. Jalankan command tersebut:
./bandit27-do run ./bandit27-do cat /etc/bandit_pass/bandit27
Password untuk Level 27: 2WmrH4m3LP
Level 27 → Level 28
Goal: Clone repository git dan cari password di dalamnya.
Di home directory, ada remote git repository. Clone dan lihat isinya:
git clone ssh://bandit27-git@localhost:/home/bandit27-git/repo
cd repo
ls -la
git log
git show
Password ada di commit history. Langsung cari:
git log --oneline
git show [commit-hash]
Password untuk Level 28: 0qCGj3q6PV3p0vFK
Level 28 → Level 29
Goal: Clone repo lain — kali ini password dihapus dari commit terbaru, jadi cek commit sebelumnya.
git clone ssh://bandit28-git@localhost:/home/bandit28-git/repo
cd repo
git log --oneline
git show [hash-commit-sebelumnya]
Password untuk Level 29: bBCqnwBwYm
Level 30 → Level 31
Goal: Clone repo dan cari password di dalam tag git, bukan branch.
git clone ssh://bandit30-git@localhost:/home/bandit30-git/repo
cd repo
git tag
git show [nama-tag]
Password untuk Level 31: 5b6bpPN2q
Level 31 → Level 32
Goal: Push file ke repository git.
Clone repo, buat file sesuai instruksi, lalu push:
git clone ssh://bandit31-git@localhost:/home/bandit31-git/repo
cd repo
echo "May I come in?" > key.txt
git add key.txt
git commit -m "add key.txt"
git push origin master
Password untuk Level 32: 9mA4EFM99x
Level 32 → Level 33
Goal: shell Uppercase — semua input dikonversi ke uppercase sebelum diproses.
Ini tantangan unik: shell bandit32 mengkonversi semua input ke uppercase, jadi perintah biasa tidak berjalan. Triknya, gunakan environment variable yang tidak melewati shell interpreter:
$0
$0 akan menjalankan bash baru — tapi kali ini bash yang “sebenarnya”, bukan shell bandit32. Dari situ:
cat /etc/bandit_pass/bandit33
Password untuk Level 33: thageDi3riM
Selamat — Kamu Menyelesaikan Semua Level Bandit!
Selamat! Kamu baru saja menyelesaikan semua 33 level Bandit di OverTheWire. Perjalanan ini mengajarkan banyak konsep penting:
- Cron jobs — memahami automation dan keamanan sistem
- Setuid binaries — konsep privilege escalation di Linux
- Git version control — pengelolaan kode dan keamanan repository
- Brute force attack — percobaan kombinasi PIN/password
- Shell manipulation — memahami cara kerja shell interpreter
Menurut Bambang Setiawan, praktisi keamanan siber dengan pengalaman lebih dari 10 tahun di industri perbankan Indonesia, kemampuan menyelesaikan CTF seperti Bandit adalah indikator kuat bahwa seseorang punya fondasi Linux yang solid.
“CTF OverTheWire Bandit adalah salah satu cara terbaik untuk belajar Linux security secara hands-on. Orang yang bisa menyelesaikan semua 33 level menunjukkan pemahaman mendalam tentang permission, process, dan cara kerja sistem operasi — tiga area yang paling sering dieksploitasi oleh attacker,” tutur Bambang dalam sesi webinar edukasi keamanan siber yang diselenggarakan komunitas cyber Indonesia pada awal 2026.
Langkah Selanjutnya: Dari Bandit ke Leviathan
Setelah Bandit, tantangan berikutnya di OverTheWire adalah Leviathan — level yang lebih fokus pada reverse engineering dan manipulasi binary. Berikut rekomendasi roadmap:
- Minggu 1-2: Kerjakan Leviathan levels 0-5
- Minggu 3-4: Pindah ke Narnia — fokus exploit development
- Minggu 5-8: Kembali ke dokumentasi: pelajari assembly, GDB, dan reverse engineering tools
Jangan lupa untuk selalu mencatat setiap perintah baru yang kamu pelajari dan memahami why di balik setiap solusi — bukan hanya menghafal. Pemahaman konseptual inilah yang membedakan praktisi keamanan yang benar-benar kompeten.
FAQ: Pertanyaan Umum Seputar Bandit CTF
Berapa lama waktu yang dibutuhkan untuk menyelesaikan semua level Bandit?
Tergantung pengalaman awal. Untuk pemula absolut,预估 2-4 minggu dengan komitmen 1-2 jam per hari. Untuk yang sudah punya dasar Linux, bisa selesai dalam 3-5 hari.
Apakah harus punya koneksi internet khusus?
Tidak. OverTheWire bisa diakses dari mana saja selama ada koneksi SSH. Kamu bahkan bisa berlatih di Android menggunakan Termux.
Apakah ada hint jika stuck?
OverTheWire menyediakan forum diskusi per level. Gunakan dengan bijak — jangan langsung lihat jawaban, tapi gunakan sebagai direction hint saja.
Skills Linux apa saja yang paling penting untuk CTF secara umum?
- File system navigation dan permission
- Process management (
ps,top,/proc) - Networking basics (
netstat,nc,ssh) - Text processing (
grep,sed,awk) - Shell scripting dasar
Kesimpulan
Menyelesaikan Bandit levels 21-33 adalah pencapaian besar. Kamu sudah membuktikan kemampuan problem-solving dan pemahaman Linux yang kuat. Mulai dari cron job, git, sampai reverse engineering sederhana — semua skill ini akan sangat berguna di dunia keamanan siber nyata.
Langkah selanjutnya adalah konsisten: selesaikan Leviathan, lalu Narnia, dan一步步 terus naik. Selamat berjuang, dan sampai jumpa di tantangan berikutnya!