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 saya akan mencoba menjelaskan sebuah konsep sederhana bagaimana mendapatkan suatu password asli yang terenkripsi, namun saya hanya membatasi cracking password pada satu jenis hash saja, yaitu joomla hash password. Penjelasan yang akan saya 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,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
Simple |
{
$str = ” “;
echo “Started: ”;
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 “
Finished : ”;
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 “
The password is : $a
”;
echo “Ended: ”;
echo date(“F j, Y, g:i:s a”;
}
}
}
?>
Tolong di kembangkan ya ?!
———————–// cut here
Untuk menjalankan script ini di localhost anda perlu merubah konfigurasi php.ini, yaitu dengan mengganti baris ini :
memory_limit = 32M ;
menjadi > 32, saya menggantinya menjadi :
memory_limit = 256M ;
Ya, sebelum berlanjut, saya 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 ?
Ya seperti pada baris kalimat ini :
if (md5($a.$hashes[$x][1]) === $hashes[$x][0])
{
echo “
the password is:
$a
”;…
No comments:
Post a Comment