Scripts
MD5 Bruteforcer
Hoe te gebruiken 1) Sla het scriptje op als bv: voorbeeld.php. 2) Geef het bestand de uitvoer rechten door chmod 777 voorbeeld.php in te typen. 3) Voer het script uit door ./voorbeeld.php hash byte variant charset en druk enter voorbeeld: ./voorbeeld.php 098f6bcd4621d373cade4e832627b4f6 4 MD5 abcdefghijklmnopqrstuvwxyz Ik vermoed dat het wachtwoord dat achter de hash verschuilt 4 letters lang is, en met MD5 methode is geëncrypt en dat het wachtwoord alleen maar kleine letters bevat. Voor een standaarde charset Druk je gewoon op Enter zonder dat je wat defineert. Dit script is vooral bedoeld voor lerende doeleinden.. en niet om de privacy van medemensen in gevaar brengen. Comentaar is altijd welkom!
md5-bruteforcer
#!/opt/lampp/bin/php //geef hier het pad aan van je php executable
<?php
set_time_limit(0); //geef aan hoe lang mag het script draaien.
switch (strtolower($argv[3])) //of $_SERVER['argv'].
{
case 'md5':
echo " *** Gebruikt MD5 als variant\r\n";
$encrypt = create_function('$hash', 'return md5($hash);');
break;
case 'md5_salt':
echo " *** Gebruikt salted MD5 als variant\r\n";
$encrypt = create_function('$hash', 'return md5(md5($hash).$hash);');
break;
case 'sha1':
echo " *** Gebruikt SHA1 als variant\r\n";
$encrypt = create_function('$hash', 'return sha1($hash);');
break;
case 'sha1_salt':
echo " *** Gebruikt salted SHA1 als variant\r\n";
$encrypt = create_function('$hash', 'return sha1(sha1($hash).$hash);');
break;
case 'des':
echo " *** Gebruikt DES als variant\r\n";
$encrypt = create_function('$hash', 'return crypt($hash);');
break;
case 'cleartext':
echo " *** Gebruikt cleartext als variant\r\n";
$encrypt = create_function('$hash', 'return ($hash);');
break;
default:
echo "'{$argv[3]}' is een niet ondersteunende methode Voor uitleg roep het script aan door. \r\n\r\n";
echo "\t{$argv[0]} --help"; /*Geen uitleg toegevoegd over het gebruik ervan*/
exit;
}
if(isset($argv[4]))
$charset=$argv[4];
else $charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$charset_beginning = $charset{0};
$charset_end = $charset{strlen($charset)-1};
$HASH = $argv[1];
$SIZE = (int) $argv[2];
$start = time()-1;
$curtotal=0;
$total=0;
for($i=$SIZE; $i>0; $i--) $total+=pow(strlen($charset), $i);
$split=ceil(($total/strlen($charset))/5);
echo " *** Maxumum grootte: $SIZE, kraakt de hash: $HASH\r\n";
echo " *** Totale keys: $total\r\n";
echo " *** Characterset: $charset\r\n";
for($i=1; $i<=$SIZE; $i++)
{
$keyspace = pow(strlen($charset), $i);
echo "\r\nProbeert met $i charakters te kraken.\r\n";
echo " *** Totale combinaties: $keyspace\r\n";
$key = '';
for ($v=0; $v<$i; $v++) $key .= $charset_beginning;
for ($f=0; $f<$keyspace+1; $f++) {
$curtotal++;
if ($HASH==$encrypt($key)) {
$time=(time()-$start);
echo<<<END
Succesvol gekraakt na $time seconden.
Heeft de leesbare text van de '$HASH' gevonden welke '$key' is\r\n.
END;
exit;
}
if($f%$split == 0) {
$rate=ceil($curtotal/(time()-$start));
echo " ... $curtotal/$total ($key) [$rate Keys/second]\r\n";
}
for ($v=0; $v<$i; $v++) {
if ($key[$v] != $charset_end) {
$key[$v] = $charset{strpos($charset, $key[$v])+1};
if ($v > 0) for ($a = 0; $a < $v; $a++) $key[$a] = $charset_beginning;
break;
}
}
}
}
$time=time()-$start;
echo<<<END
*** Geen overeenkomsten gevonden
Dit kan veroorzaakt zijn door de ($SIZE) dat kort kan zijn..
Is $time seconden bezig geweest. We hebben in totaal $total combinaties gezocht.
END;
?>
Reacties
0