#!/usr/pkg/bin/perl # $Id: brutie,v 1.1.1.1 2003/10/04 16:01:42 karsten Exp $ $version="0.1b"; print "\nbrutie $version von Karsten Kruse, tecneeq\@gmx.net\n\n"; # Argumente if($#ARGV<1) { print "Beutzung: brutie [passwd-datei] [wortliste]\n"; exit; } $passwortfile=$ARGV[0]; $wortliste=$ARGV[1]; $startzeit=time; # Wenn das Passwort nicht leer oder abgeschaltet ist versuchen # wir erst ob das Passwort=Username ist, dann die Wortliste open(PASSWORTFILE, $passwortfile) or die "Fehler: kann $passwortfile nicht oeffnen"; print "BENUTZER STATUS PASSWORT \n"; print "============================================================\n"; $zaehler=0; while() { $zaehler++; ($username, $enc)=split(/:/); print "$username", ' ' x (20 - length($username)); if($enc eq '*' or $enc eq '*************' or $enc eq 'x' or $enc eq '!' or $enc eq '!!') { $status="Abgeschaltet"; $passwort=""; print "$status", ' ' x (20 - length($status)); print "$passwort\n"; } elsif($enc eq "") { $status="KEIN PASSWORT"; $passwort="KEIN PASSWORT"; print "$status", ' ' x (20 - length($status)); print "$passwort\n"; } else { $treffer="nein"; $test=crypt($username, $enc); if($test eq $enc) { $status="TREFFER!\a"; $passwort=$username; print ""; print "$status", ' ' x (20 - length($status)); print "\"$passwort\"\n"; $treffer="ja"; $treffer_gesamt++; } else { open (WORTLISTE, $wortliste) or die "Fehler: kann $wortliste nicht oeffnen"; while(defined ($line = )) { chomp $line; $try=crypt($line, $enc); $versuche_gesamt++; if($try eq $enc) { $status="TREFFER!\a"; $passwort=$line; print ""; print "$status", ' ' x (20 - length($status)); print "\"$passwort\"\n"; $treffer="ja"; $treffer_gesamt++; last; } } close(WORTLISTE); } if($treffer eq "nein") { $status="Kein Treffer"; $passwort=""; print "$status", ' ' x (20 - length($status)); print "$passwort\n"; } } } close(PASSWORTFILE); $sekunden=(time - $startzeit); # Statistik if($sekunden eq "0") { $sekunden = "1"; } print "\n"; if($treffer_gesamt ne "") { print "$treffer_gesamt von $zaehler Passwoertern herausgefunden "; print "(", sprintf("%.0f", ($treffer_gesamt / $zaehler) * 100), "\%)"; print "\n"; } print "$versuche_gesamt Woerter encryptet in "; if($sekunden > 3600) { print int($sekunden / 3600); print " Stunden "; print int(($sekunden % 3600) / 60); print " Minuten "; print ($sekunden % 60); print " Sekunden "; } elsif($sekunden > 60) { print int($sekunden / 60); print " Minuten "; print ($sekunden % 60); print " Sekunden "; } else { print $sekunden; print " Sekunden "; } print "(", sprintf("%.0f", $versuche_gesamt / $sekunden), " pro Sekunde)"; print "\n";