Langsung ke konten utama

Unggulan

Mendeteksi Gambar Duplikat dengan Python: Panduan Praktis

Panduan OverTheWire Bandit Level 24 → 25

 

Panduan OverTheWire Bandit Level 24 → 25

Login

Login menggunakan perintah berikut:

ssh bandit24@bandit.labs.overthewire.org -p 2220

Kata Sandi: UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ


Tugas

Sebuah daemon mendengarkan pada port 30002 dan akan memberikan kata sandi untuk bandit25 jika diberikan kata sandi bandit24 dan pincode numerik 4-digit rahasia. Anda perlu mencoba semua kombinasi pincode (10000 kombinasi) untuk mendapatkan kata sandi yang benar, yang disebut brute-forcing.


Teori Singkat

Di level ini, kita perlu menggunakan teori dari level sebelumnya, yaitu grep, netcat, dan dasar-dasar bash scripting untuk menyelesaikan tugas ini. Kita akan menggunakan perulangan for di bash untuk menguji setiap kemungkinan pincode.


Solusi

  1. Cek Daemon Pertama, kita perlu menghubungkan ke daemon yang mendengarkan di port 30002 untuk memahami cara kerjanya. Gunakan netcat untuk berkomunikasi dengan daemon:

    nc localhost 30002
    

    Anda akan melihat respons dari daemon:

    I am the pincode checker for user bandit25. Please enter the password for user bandit24 and the secret pincode on a single line, separated by a space.
    

    Setelah memberikan input yang salah, Anda akan menerima respons seperti ini:

    Wrong! Please enter the correct pincode. Try again.
    

    Ini mengonfirmasi bahwa jika kita memberikan pincode yang salah, daemon memberikan respons dalam satu baris.

  2. Membuat Skrip untuk Brute-Force Pincode Untuk menghindari mencoba pincode secara manual, kita akan membuat skrip untuk melakukan brute-force semua kemungkinan pincode.

    Buat skrip bash yang akan menguji setiap kemungkinan pincode:

    #!/bin/bash
    
    for i in {0000..9999}
    do
            echo UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ $i >> possibilities.txt
    done
    
    cat possibilities.txt | nc localhost 30002 > result.txt
    

    Penjelasan Skrip:

    • Perulangan for digunakan untuk menghasilkan semua kombinasi pincode dari 0000 hingga 9999.
    • Setiap kombinasi pincode digabungkan dengan kata sandi bandit24 dan disimpan dalam file possibilities.txt.
    • Kemudian, skrip mengirimkan file possibilities.txt ke daemon menggunakan netcat dan menyimpan hasilnya dalam result.txt.
  3. Menyimpan Skrip dan Memberikan Izin Eksekusi Simpan skrip ini ke dalam direktori sementara, kemudian beri izin agar skrip bisa dijalankan:

    mktemp -d
    cd /tmp/tmp.3YQNHtW1Uu
    nano brute_force_pin.sh
    chmod +x brute_force_pin.sh
    
  4. Jalankan Skrip dan Periksa Hasilnya Jalankan skrip untuk mulai brute-force pincode:

    ./brute_force_pin.sh
    

    Setelah skrip selesai dijalankan, periksa direktori untuk memastikan bahwa dua file (possibilities.txt dan result.txt) telah dibuat:

    ls
    

    Anda akan melihat file possibilities.txt yang berisi semua kemungkinan pincode dan result.txt yang berisi hasil dari komunikasi dengan daemon.

  5. Filter Hasil dengan grep Untuk mengetahui pincode yang benar, kita akan memfilter hasil dengan grep untuk menghapus semua baris yang mengandung kata "Wrong!":

    sort result.txt | grep -v "Wrong!"
    

    Jika pincode yang benar ditemukan, Anda akan melihat respons seperti ini:

    Correct!
    Exiting.
    I am the pincode checker for user bandit25. Please enter the password for user bandit24 and the secret pincode on a single line, separated by a space.
    

    Dan kata sandi untuk bandit25:

    The password of user bandit25 is uNG9O58gUE7snukf3bvZ0rxhtnjzSGzG
    

Komentar

Postingan Populer