[Perl Tk] MD5 Crack T00l

Iniciado por BigBear, Julio 03, 2011, 10:01:44 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 03, 2011, 10:01:44 PM Ultima modificación: Julio 17, 2011, 03:42:54 AM por Sthefano02
Un programita para crackear una o varias hashes md5

Imagenes









Código: perl

#!usr/bin/perl
#MD5 Crack T00l (C) Doddy Hackman 2011

use Tk;
use Tk::FileSelect;
use LWP::UserAgent;
use Win32;

if ($^O eq 'MSWin32') {
use Win32::Console;
Win32::Console::Free();
}

my $nave = LWP::UserAgent->new;
$nave->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12");
$nave->timeout(5);

my $logo = MainWindow->new();
$logo->title("MD5 Crack T00l");
$logo->geometry("300x100+20+20");
$logo->resizable(0,0);
$logo->Label(-text=>"Options",-font=>"Impact1")->place(-x=>110,-y=>10);
$logo->Button(-text=>"Crack HAsh",-width=>20,-command=>\&single)->place(-y=>50,-x=>10);
$logo->Button(-text=>"Crack Wordlist",-width=>20,-command=>\&word)->place(-y=>50,-x=>150);

MainLoop;


sub single {

my $sin = MainWindow->new();
$sin->title("MD5 Crack T00l (C) Doddy Hackman 2011");
$sin->geometry("650x80+20+20");
$sin->resizable(0,0);

$sin->Label(-text=>"MD5 : ",-font=>"Impact1")->place(-x=>30,-y=>20);
my $hash = $sin->Entry(-width=>32)->place(-y=>24,-x=>82);
$sin->Label(-text=>"Result : ",-font=>"Impact1")->place(-x=>290,-y=>20);
my $result = $sin->Entry(-width=>32)->place(-y=>24,-x=>350);
$sin->Button(-text=>"Crack",-command=>\&cracksingle,-width=>12)->place(-y=>22,-x=>555);

sub cracksingle {
my $target = $hash->get();
chomp $target;

if (ver_length($target)) {

$re = crackit($target);

if ($re ne "false01") {
$result->configure (-text =>$re);
} else {
$result->configure (-text =>"Not Found");
}
} else {
Win32::MsgBox("Eso no es un hash",0,"MD5 Crack T00l");
}
}
}

sub word {

my $more = MainWindow->new();
$more->title("MD5 Crack T00l (C) Doddy Hackman 2011");
$more->geometry("450x280+50+50");
$more->resizable(0,0);

$more->Label(-text=>"File : ",-font=>"Impact1")->place(-y=>10,-x=>10);
my $filex = $more->Entry(-width=>40)->place(-y=>13,-x=>50);
$more->Button(-text=>"Crack",-width=>10,-command=>\&crackmulti)->place(-y=>12,-x=>300);
$more->Button(-text=>"Browse",-width=>10,-command=>\&bro)->place(-x=>370,-y=>12);

$more->Label(-text=>"MD5")->place(-y=>70,-x=>65);
my $hashes = $more->Listbox(-width=>32)->place(-y=>100,-x=>20);

$more->Label(-text=>"Result")->place(-y=>70,-x=>300);
my $resultados = $more->Listbox(-width=>32)->place(-y=>100,-x=>230);


sub bro {
$more->update;
$browse = $more->FileSelect(-directory => "/");
my $file = $browse->Show;
$filex->configure (-text =>$file);
}

sub crackmulti {

$hashes->delete(0.0,"end");
$resultados->delete(0.0,"end");

my $archivo = $filex->get();

open(FILE,$archivo);
@leer = <FILE>;
close FILE;

chomp @leer;

my @leera = repes(@leer);

for my $poco(@leera) {
chomp $poco;
if (ver_length($poco)) {
$hashes->insert("end",$poco);
$re = crackit($poco);
if ($re ne "false01") {
$resultados->insert("end",$re);
} else {
$resultados->insert("end","Not Found");
}
}
}
sub repes {
foreach $test(@_) {
push @limpio,$test unless $repe{$test}++;
}
return @limpio;
}
}
}

sub crackit {

my %hash = (
   
'http://passcracking.com/' => {
'tipo'  => 'post',
'variables'=>'{"datafromuser" => $_[0], "submit" => "DoIT"}',
'regex'=>'<\/td><td>md5 Database<\/td><td>$_[0]<\/td><td bgcolor=#FF0000>(.*)<\/td><td>',
},   
'http://md5.hashcracking.com/search.php?md5=' =>  {
'tipo' => 'get',
'regex' => 'Cleartext of $_[0] is (.*)',
},
'http://www.bigtrapeze.com/md5/' =>  {
'tipo' => 'post',
'variables'=>'{"query" => $_[0], "submit" => " Crack "}',
'regex' => 'The hash <strong>$_[0]<\/strong> has been deciphered to: <strong>(.+)<\/strong>',
},
'http://opencrack.hashkiller.com/' =>  {
'tipo' => 'post',
'variables'=>'{"oc_check_md5" => $_[0], "submit" => "Search MD5"}',
'regex' => qq(<\/div><div class="result">$_[0]:(.+)<br\/>),
},
'http://www.hashchecker.com/index.php?_sls=search_hash' =>  {
'tipo' => 'post',
'variables'=>'{"search_field" => $_[0], "Submit" => "search"}',
'regex' => '<td><li>Your md5 hash is :<br><li>$_[0] is <b>(.*)<\/b> used charl',
},
'http://victorov.su/md5/?md5e=&md5d=' =>  {
'tipo' => 'get',
'regex' => qq(MD5 ðàñøèôðîâàí: <b>(.*)<\/b><br><form action=\"\">),
}
);

for my $data(keys %hash) {
$logo->update; #
if ($hash{$data}{tipo} eq "get") {
$code = toma($data.$_[0]);
if ($code=~/$hash{$data}{regex}/ig) {
savefile("hashes-found.txt",$_[0].":".$1);
return $1;
}
} else {
$code = tomar($data,$hash{$data}{variables});
if ($code=~/$hash{$data}{regex}/ig) {
savefile("hashes-found.txt",$_[0].":".$1);
return $1;
}
}
}
return "false01";
}

sub ver_length {
return true if length($_[0]) == 32;
}

sub toma {
return $nave->get($_[0])->content;
}

sub savefile {
open (SAVE,">>logs/".$_[0]);
print SAVE $_[1]."\n";
close SAVE;
}

sub tomar {
my ($web,$var) = @_;
return $nave->post($web,[%{$var}])->content;
}

# ¿ The End ?