Piero V.

Creando un dizionario per un attacco di forza bruta

Volevo creare un dizionario con tutte le possibili combinazioni alfanumeriche di 8 caratteri in PHP perché era il modo più veloce che avevo…

Il codice che ho scritto è un po’ una cosa buttata lì… Se siete esperti mi direte che è una pazzia… Eccolo qui:

<?php
function potenzaFor($s, $n) {
	$m=count($n);
	$o=count($s);
	for($j=0; $j<$m; $j++) {
		for($k=0; $k<$o; $k++) {
			$n[]=$n[$j].$s[$k];
		}
	}
	return $n;
}
$t=explode(' ',microtime());
$t=$t[0]+$t[1];
$g=8;
#$a=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',0,1,2,3,4,5,6,7,8,9);
$a=array(0,1,2,3,4,5,6,7,8,9);
$l=count($a);
$f=fopen("dizionario.txt", "w+");
$p=$a;
for($i=0; $i<$g; $i++) {
	$p=potenzaFor($a, $p);
}
if(count($p)) {
	foreach($p as $e) {
		fwrite($f, $e."n");
	}
}
$c="#";
$u=explode(' ',microtime());
$u=$u[0]+$u[1];
$v=$u-$t;
fwrite($f, "$c Generated in $v");
fclose($f);

NON eseguitelo…

Io l’ho fatto su una macchina con 2GiB di ram + 1 GiB di swap e ecco cosa è successo al monitor di sistema:

Prima.png
Quando ho cominciato… Dovevo farla prima la foto, così avreste visto meglio… ero a circa il 10% della ram in realtà…

Killed.png
Ad un certo punto… Notare la scritta killed

Come ho scritto sopra, notare la scritta killed…

Ho finito tutta la Ram e tutto lo swap 😊

Mi sa che devo alleggerire il codice…

P. S.: Se sapete uno sputo di PHP mi direte che ho fatto la descrizione sbagliata… Era solo per vedere se cambiava qualcosa…