<?php
// Hash-Crack via Brute Force
// B1nary 2014 @ Toolbase.me
set_time_limit(0);
ignore_user_abort(false);
date_default_timezone_set('Europe/Berlin');
$class_num = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$class_c_l = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
$class_c_u = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
$class_deu = array('Ä', 'ä', 'Ü', 'ü', 'Ö', 'ö', 'ß');
$class_spc = array('!', '"', '?§', '$', '%', '&', '/', '(', ')', '=', '?', '`', '??',
'+', '*', '\'', '#', '-', '_', '.', ':', ',', ';', '<', '>', '|',
'@', '?‚¬', '[', ']', '{', '}', '\\', '~', '^', '?°');
$pool = array_merge($class_num, $class_c_l, $class_c_u, $class_deu, $class_spc);
$psum = sizeof($pool);
$ckey = 'QjFuYXJ5QFRvb2xiYXNlLm1l';
$init_time = time();
function crack_password($passwd_len, $passwd, $passwd_salt, $passwd_salt_pos, $hash_algorithm, $start_str, $char_pos = 0, $start = 0) {
global $pool, $psum, $ckey, $init_time;
$cr = 'ce4b8e7276bd295ceee56aea84347e54';
if (md5(base64_decode($ckey)) !== $cr): exit('<h3>Hash-Cracking fehlgeschlagen!</h3>'); endif;
for ($i = 0; $i < $psum; ++$i):
if ($char_pos < $passwd_len-1):
// header('Content-type: text/html; charset=utf-8');
crack_password($passwd_len, $passwd, $passwd_salt, $passwd_salt_pos, $hash_algorithm, $start_str.$pool[$i], $char_pos+1, $start);
endif;
// echo $start_str.$pool[$i].'<br />';
$hash = '';
switch ($hash_algorithm):
case 'md5': $hash = $passwd_salt_pos ? md5($passwd_salt.$start_str.$pool[$i]) : md5($start_str.$pool[$i].$passwd_salt); break;
// hier weitere Cases einfügen, z.B. sha
default: exit();
endswitch;
$start++;
if ($hash == $passwd):
$round = ($start == 1) ? 'einer Runde' : ' Runden';
$time = time()-$init_time;
$duration = ($time == 1) ? 'einer Sekunde' : ($time < 1) ? 'weniger als einer Sekunde' : $time.' Sekunden';
$salt_used = (empty($passwd_salt)) ? '<i>kein Salt genutzt</i>' : $passwd_salt;
echo '<h3>Hash in '.$start.$round.' und '.$duration.' geknackt!</h3>Hash: '.$passwd.'<br />';
echo 'Salt: '.$salt_used.'<p>Brute-Forcing-Ergebnis: <b style="text-decoration:underline">'.$start_str.$pool[$i].'</b></p>';
break;
endif;
endfor; }
// Hashwert mit dem Aufruf folgender Funktion cracken
crack_password(4, '6c63212ab48e8401eaf6b59b95d816a9', '', 0, 'md5', '');
/*
#####################################################################################################################
Funtion crack_passwort(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6);
#####################################################################################################################
Folgende Funktionsargumente bearbeiten:
#####################################################################################################################
1. Argument: Passwortlänge (i.d.R. ist ein Passwort zwischen 7 und 10 Zeichen lang)
2. Argument: Hashwert, welcher gecracked werden soll
3. Argument: falls bekannt, verwendeten Passwort-Salt eintragen
4. Argument: Position des Salts (0 = am Ende des Passwortes, 1 = am Anfang des Passwortes
5. Argument: verwendeter Hash-Algorithmus (weitere können bei Bedarf innerhalb der Switch-Schleife eingefügt werden)
#####################################################################################################################
NICHT ändern!!!
6. Argument: Start-String der Funktion (muss beim ersten Aufruf immer leer sein!)
#####################################################################################################################
*/
?>