Back to Defense Log
overthewirebanditleviathanlinuxprivilege-escalationblue-teamsecure-codingdfirwargames

OverTheWire: Bandit & Leviathan Security Analysis

2026-04-28rwx4m@vault🔗View Challenge Room

Audit Keamanan Sistem: Eksploitasi Binari & Celah Logika Linux

Studi Kasus: OverTheWire Wargames (Bandit & Leviathan)

Author: rwx4m Role: Blue Team / Digital Forensic and Incident Response (DFIR)

Classification: Technical Writeup


Proof of Execution (Penyelesaian Wargame)

Dokumentasi teknis ini didasarkan pada simulasi serangan dan pertahanan di lingkungan isolasi Capture The Flag (CTF) yang disediakan oleh platform OverTheWire.

Sebagai bukti pemahaman komprehensif terhadap eskalasi hak akses Linux dan keamanan binari, seluruh rangkaian tantangan fondasional telah diselesaikan dengan sukses.

1. OverTheWire: Bandit (Selesai)

Fokus: Fondasi Linux, Izin Akses, dan Manipulasi Teks. 1

2. OverTheWire: Leviathan (Selesai)

Fokus: Analisis Dinamis Binari, Race Conditions, dan Keamanan Logika C. 2


Ringkasan Eksekutif

Laporan ini mendokumentasikan analisis kerentanan spesifik dari seri Leviathan. Pendekatan yang digunakan menggabungkan teknik eksploitasi ofensif (Red Team) untuk mengidentifikasi kelemahan eskalasi hak akses, dan analisis defensif (Blue Team) untuk merumuskan perbaikan di tingkat kode (Secure Coding).

Setiap vektor serangan telah dipetakan ke dalam kerangka kerja MITRE ATT&CK guna menstandardisasi pelaporan ancaman.


Fase 1: Kecerobohan Penyimpanan Data (Level 0 → 1)

MITRE ATT&CK Mapping: * T1552.001 - Unsecured Credentials: Credentials In Files

Konteks & Skenario: Dalam lingkungan server, kredensial akses tidak diamankan dan terekspos di direktori pengguna akibat kelalaian manajemen file.

Eksekusi: Inspeksi terhadap direktori non-standar (.backup) mengungkap adanya file konfigurasi peramban web (bookmarks.html). Analis menggunakan ekstraksi teks untuk menemukan anomali.

# Mengekstraksi baris yang memuat kredensial dari file artefak
grep "leviathan" ~/.backup/bookmarks.html

Hasil: Kredensial teks terbuka (plaintext) berhasil diekstrak.

Perbaikan Keamanan (Mitigasi):

  • Terapkan prinsip Least Privilege secara ketat pada direktori cadangan (chmod 700).
  • Dilarang keras menyimpan kata sandi dalam konfigurasi sistem pihak ketiga.

Fase 2: Kredensial Teks Terbuka di Memori (Level 1 → 2 & Level 3 → 4)

MITRE ATT&CK Mapping: * T1106 - Native API Execution

  • T1552 - Unsecured Credentials (Hardcoded)

Konteks & Skenario: Autentikasi yang memverifikasi input secara langsung terhadap string yang tertanam kaku (hardcoded) di dalam binari sangat rentan terhadap teknik Dynamic Tracing.

Eksekusi: Melakukan pencegatan (hooking) terhadap panggilan pustaka standar C di memori menggunakan alat pelacak saat program dijalankan.

# Mencegat panggilan fungsi memori
ltrace ./check

Hasil: Terlihat fungsi perbandingan membaca sandi mentah: strcmp("input_user", "[REDACTED]").

Analisis Tingkat Kode (Source Code Review):

Vulnerable Code (C):

char password[] = "rahasia123"; // Terbaca jelas di memori
if (strcmp(input, password) == 0) { grant_access(); }

Secure Code Patch (C):

// Validasi harus membandingkan hasil Hashing, bukan teks mentah
char target_hash[] = "$argon2id$v=19$m=16...$"; 
if (verify_argon2_hash(input, target_hash) == 0) { grant_access(); }

Fase 3: Eksploitasi Celah Waktu & Manipulasi Spasi (Level 2 → 3)

MITRE ATT&CK Mapping:

  • T1068 - Exploitation for Privilege Escalation (Race Condition/TOCTOU)

Konteks & Skenario: Kerentanan Time-of-Check to Time-of-Use (TOCTOU) terjadi ketika program memisahkan fase pengecekan izin dan fase eksekusi. Spasi pada input juga memicu pemisahan argumen yang tidak disengaja oleh shell.

Eksekusi: Program gagal menangani argumen berspasi. Analis mengeksekusi peilot berupa jalan pintas (symlink) ke lokasi kredensial terlarang.

# Menyiapkan peilot symlink
ln -s /etc/leviathan_pass/leviathan3 /tmp/rwx4m_link

# Mengeksploitasi parsing argumen shell
./printfile "/tmp/rwx4m_link dummy_file"

Analisis Tingkat Kode (Source Code Review): Vulnerable Code (C):

if (access(argv, R_OK) == 0) {
    // Spasi memecah argv menjadi dua argumen terpisah saat dieksekusi shell
    snprintf(command, sizeof(command), "/bin/cat %s", argv); 
    system(command); 
}

Secure Code Patch (C):

// Gunakan execve() agar argumen tidak dipecah oleh shell
char *args[] = {"/bin/cat", argv, NULL};
execve("/bin/cat", args, NULL);

Fase 4: Penyamaran Data vs Kriptografi Sejati (Level 4 → 5)

MITRE ATT&CK Mapping:

  • T1140 - Deobfuscate/Decode Files or Information

Konteks & Skenario: Penyamaran (Obfuscation) teks menjadi kode biner bukanlah kontrol keamanan. Kriptografi sejati memerlukan kunci, sedangkan penyamaran hanya menyembunyikan algoritma sementara waktu.

Eksekusi: Binari mengekspos deretan biner. Analis mengembangkan instruksi dekode one-liner untuk mengonversi data bahasa mesin kembali ke ASCII.

# Menangkap output dan menerjemahkannya
./bin | perl -lape '$_=pack"(B8)*",@F'

Perbaikan Keamanan (Mitigasi):

  • Implementasikan standar enkripsi (seperti AES-256) jika penyimpanan data rahasia sangat dibutuhkan, bukan sekadar mengubah representasi visualnya.

Fase 5: Pembajakan Izin Binari SUID (Level 5 → 6)

MITRE ATT&CK Mapping:

  • T1574 - Hijack Execution Flow
  • T1068 - Exploitation for Privilege Escalation

Konteks & Skenario: Binari berhak istimewa tinggi (SUID) yang bergantung pada file di direktori tak terlindungi (/tmp) membuka pintu bagi serangan pembelokan jalur file (Redirection).

Eksekusi: Analis mendeteksi bahwa program mencari /tmp/file.log. Sebuah symlink ditanam untuk menghubungkan lokasi tersebut ke penyimpanan rahasia.

# Membelokkan sasaran pembacaan file aplikasi
ln -s /etc/leviathan_pass/leviathan6 /tmp/file.log
./leviathan5

Analisis Tingkat Kode (Source Code Review): Vulnerable Code (C):

// Mengakses lokasi publik yang bisa dimanipulasi
FILE *f = fopen("/tmp/file.log", "r"); 

Secure Code Patch (C):

// Gunakan mekanisme pembuatan file sementara yang aman (mengembalikan file descriptor)
char template[] = "/tmp/app_log_XXXXXX";
int fd = mkstemp(template);

Fase 6: Eksploitasi Ruang Autentikasi Sempit (Level 6 → 7)

MITRE ATT&CK Mapping:

  • T1110 - Brute Force: Password Guessing

Konteks & Skenario: Kontrol keamanan tanpa mekanisme jeda memfasilitasi serangan otomatis pada kumpulan kombinasi PIN bervolume rendah (10.000 kombinasi).

Eksekusi: Otomatisasi skrip Bash dieksekusi untuk melakukan iterasi pencarian hingga kombinasi yang tepat ditemukan dalam hitungan detik.

# Otomatisasi dengan filter respon negatif
for pin in {0000..9999}; do ./leviathan6 $pin; done | grep -v "Wrong"

Perbaikan Keamanan (Mitigasi):

  • Terapkan Rate Limiting atau mekanisme penguncian akun sementara setelah beberapa kali kegagalan input.
  • Tingkatkan kompleksitas batas minimal pengaman autentikasi.

Kesimpulan Analisis

Kerentanan tingkat sistem file sering kali bersumber dari asumsi keliru pengembang bahwa environment Linux berstatus sepenuhnya aman (trusted). Praktik penulisan kode yang presisi, digabungkan dengan desain sistem yang mematuhi prinsip keistimewaan minimum (Least Privilege), adalah langkah krusial yang harus diimplementasikan oleh tim arsitektur keamanan dan dievaluasi terus-menerus oleh analis digital forensik dan insiden rispon.