PDA

Просмотр полной версии : Web-интерфейс для PasswordsPro?!


-=lebed=-
30.12.2007, 01:45
Как известно программа поддерживает работу через коммандную строку, с помощью передачи параметров через конфигурационный файл (по умолчанию это PasswordsPro.ini)
Вот интересует такой вопрос, есть ли (писал ли кто-нибудь) скрипт, который настраивает конфигурацию программы и запускает её через WEB? (php, perl) Если нет, то буду очень признателен, если кто поможет в создании данного сабжа. Т.е. нужна помощь в реализации клиент-сервер (Браузер <-> Сервер с PasswordsPro + php). Если прикрутить веб-интерфейс к програмее то это, имхо было бы очень даже удобно...

Буду рад любой инфе по данной теме. Конечно в первую очередь вопрос адресован к автору PasswordsPro. т.е InsidePro.

Spyder
30.12.2007, 01:51
т е ты хочешь через веб интерфейс запустить паспро и потом в бразуер вывести результат? если я тебя правильно понял, то такое впринципе сделать можно, но надо ли? помойму это у же извращение, хотя это только моё мнение
Да и нагрузка на серв будет серьёзная
Для каких целей ты хочешь это реализовать?

-=lebed=-
30.12.2007, 01:59
т е ты хочешь через веб интерфейс запустить паспро и потом в бразуер вывести результат? если я тебя правильно понял, то такое впринципе сделать можно, но надо ли? помойму это у же извращение, хотя это только моё мнение
Да и нагрузка на серв будет серьёзная
Для каких целей ты хочешь это реализовать?

Да хочу клиент-сервер, на счёт нагрузки... смотря какая атака...

Почему изврат? очень удобно... весь хлам, словари, радужные таблицы на сервере а не на моём компе - юзаю всё через веб, с любого компа...

ЗЫ На passcracking.ru очередь хэшей прогоняется по таблицам явно не средствами интерпретируемого языка, а возможно именно через .ехе, хотя это мои догадки...

Поставлю задачку в два этапа:
1. Управление настройками PasswordsPro + запуск/остановка.
2. Циклический брут по словарям и/или таблицам, некоторой динамической группы хэшей...

Spyder
30.12.2007, 02:04
помойму проще удалённо подключится к серверу и там уже через терминал запускать, чем возиться с веб интерфейсом. я кроме как system() - другого выхода не вижу, но ты представь сколько оно будет выполнятся
Может я конечно не прав, если что поправьте

Spyder
30.12.2007, 02:09
Да к тому же тбе нужен будет не просто дедик, а дедик на котором админу будет всё равно почему это у него процесс жрёт больше половины оперативы

-=lebed=-
30.12.2007, 02:13
Да я знаю, что проще через терминал, но нужно Web!

blackybr
30.12.2007, 02:20
а есть полное описание работы паспро с коммандной строкой?

-=lebed=-
30.12.2007, 11:17
а есть полное описание работы паспро с коммандной строкой?


Программа поддерживает следующие параметры командной строки:

/config:filename - позволяет программе использовать настройки из файла "filename", а не из файла PasswordsPro.ini.


/auto - переводит программу в режим, при котором она автоматически запускает текущую атаку, а при окончании атаки программа автоматически завершает свою работу.
Эти параметры позволяют автоматизировать работу программы, используя командные BAT-файлы. Для этого нужно сделать следующее:

Создать несколько INI-файлов с различными названиями для разных видов атак.
Создать BAT-файл, к примеру, следующего содержания (в Windows 2000/XP):
PasswordsPro.exe /auto /config:Preliminary.ini
start /w PasswordsPro.exe /auto /config:DictSimple.ini
start /w PasswordsPro.exe /auto /config:DictHybrid.ini
start /w PasswordsPro.exe /auto /config:BruteLatin.ini
start /w PasswordsPro.exe /auto /config:BruteNumber.ini
и т.д.
Запустить созданный BAT-файл на исполнение.
Примечание: в этом режиме программа не выдает никаких сообщений (ни об окончании атаки, ни о возникающих ошибках), а принудительная остановка текущей атаки приводит к закрытию программы и переходу к следующей атаке (т.е. к следующей строке BAT-файла).


Т.е. чтоб управлять настройками программы, надо менять либо файлы конфигов, либо данные внутри одного файла конфига. Тут нужно описание PasswordsPro.ini или самим разобраться за что каждый из параметров отвечает...

С результатами (имхо даже текущими тоже всё ясно) их можно брать из текстового файла Untitled.Hashes

Т.е. посути работа web-скрипта сводится к операциям с двумя файлами + запуск/убивание процесса PasswordsPro.exe.

-=lebed=-
30.12.2007, 12:37
Предлагаяю начать с описалова файла конфигурации:

например так:

секция: [common]
параметр mode=
32817 - предварительная атака [Bin:1000000000110001]
32818 - атака полным перебором [Bin:1000000000110010]
32819 - атака по маске
32820 - простая атака по словарям
32821 - комбинированная атака по словарям
32822 - гибридная атака по словарям
32823 - атака по Rainbow Tables

т.е. как видим под тип Атаки отводится не менее 3 бит в параметре modе. Кстате более старшие биты вообще меняются? Если та, то в каком случае? Гляньте плиз свои PasswordsPro.ini

-=lebed=-
05.01.2008, 22:31
Помогите пропарсить файл Untitled.Hashes как известно туда программа складывает пароли к найденным хэшам. Результат пишем в массив или файл, парсим только найденные пароли и хэши от них...

Пароль обрамляется двумя символами 7f с обоих сторон, т.е. 7f 7f p a s s 7f 7f слева от него хэш до 7f - (после этого символа начало хэша)

Если пароль не найден то между ними пусто, т.е 7f 7f 7f 7f

-=lebed=-
05.01.2008, 23:14
Ну что никто с регуляркой не поможет?

<?php
$fd=fopen("./passpro/Untitled.Hashes", "r");

if(!$fd)
{
return "File Untitled.Hashes not found";
}
else
{
$pattern = 'регулярка';
while(!feof($fd))
{
$subject=fgets($fd);
echo $subject;
preg_match($pattern, $subject, $matches);
echo $matches;
}
}
fclose($fd);
?>

-=lebed=-
05.01.2008, 23:42
Вот вытаскивает хэши МД5 из файла

<?php
$fd=fopen("./passpro/Untitled.Hashes", "r");

if(!$fd)
{
return "File Untitled.Hashes not found";
}
else
{
$pattern = '([0-9A-Fa-f]{32})';
while(!feof($fd))
{
$subject=fgets($fd);
// echo $subject;
preg_match_all($pattern, $subject, $matches);
echo $matches[0][0]."<br>";
}
}
fclose($fd);
?>


А мне нужно только те, где пассы найдены...

Macro
05.01.2008, 23:44
Вот вытаскивает хэши МД5 из файла

<?php
$fd=fopen("./passpro/Untitled.Hashes", "r");

if(!$fd)
{
return "File Untitled.Hashes not found";
}
else
{
$pattern = '([0-9A-Fa-f]{32})';
while(!feof($fd))
{
$subject=fgets($fd);
// echo $subject;
preg_match_all($pattern, $subject, $matches);
echo $matches[0][0]."<br>";
}
}
fclose($fd);
?>


А мне нужно только те, где пассы найдены...
Напомни как выглядит найденный пасс в файле

-=lebed=-
05.01.2008, 23:48
обрамлён парой символов 7f (hex) 127 (dec) c обоих сторон, т.е. 7f 7f p a s s 7f 7f левее хэш, признак конца хэша тоже 7f (или начала, если справа налево считать)

presidentua
05.01.2008, 23:48
проверить не могу сейчас но вроде бы так:
/^7f7f(.+)7f7f$/m

Macro
05.01.2008, 23:54
Вроде так....


preg_match_all(/(.*)\x7f\x7f(.*)\x7f\x7f/,$file,$matches);
$passes=matches[1][1];
$hashes=matches[1][0];

-=lebed=-
05.01.2008, 23:56
проверить не могу сейчас но вроде бы так:
/^7f7f(.+)7f7f$/m

Выдаёт Notice: Undefined offset: 0
и ничего не выводит...

-=lebed=-
06.01.2008, 00:10
$pattern = '/(.*)\x7f\x7f(.*)\x7f\x7f/';

Выводит всё! где между x7f\x7f(пусто)\x7f т.е нет ни одного символа, то нужно пропустить!

presidentua
06.01.2008, 00:13
<?php
$pattern = '/^7f 7f(.+)7f 7f/m';
// echo $subject;
preg_match_all($pattern, '7f 7f p a s s 7f 7f слева от него хэш до 7f', $matches);
echo $matches[1][0]."<br>";
?>

попробуй. "+" - означает один и больше символов, если что стучи в асю

-=lebed=-
06.01.2008, 00:22
с плюсом заработало!

<?php
$fd=fopen("./passpro/Untitled.Hashes", "r");

if(!$fd)
{
return "File Untitled.Hashes not found";
}
else
{
$pattern = '/(.*)\x7f\x7f(.+)\x7f\x7f/';
while(!feof($fd))
{
$subject=fgets($fd);
// echo $subject;
preg_match_all($pattern, $subject, $matches);
echo $matches[0][0]."<br>";
}
}
fclose($fd);
?>


Вот вывод:

Notice: Undefined offset: 0 in T:\home\localhost\test\Hashcms\parse.php on line 16


Notice: Undefined offset: 0 in T:\home\localhost\test\Hashcms\parse.php on line 16


Notice: Undefined offset: 0 in T:\home\localhost\test\Hashcms\parse.php on line 16

davidecao446fca5553df49ad9c6348cf1ff71d51davide  - // строка где найден пасс от хэша.

Notice: Undefined offset: 0 in T:\home\localhost\test\Hashcms\parse.php on line 16

теперь бы это в массив нормальный (или в файл) в формате hash : pass

Macro
06.01.2008, 00:27
echo $matches[0][0]."<br>"; выводит найденную строку, а не результат регулярки

Macro
06.01.2008, 00:33
<?
$file=file_get_contents('Untitled.Hashes');
preg_match_all('|'.chr(127).'(.*)'.chr(127).chr(12 7).'(.*)'.chr(127).chr(127).'|',$file,$matches);
$passes=$matches[2];
$hashes=$matches[1];
print_r($passes);
?>

presidentua
06.01.2008, 00:35
ну так регулярное выражение возвращает масив. Вся строка это 0 значения масива, а первые скобки это 1 элемент.

тоесть надо типа:
echo $matches[1][0].':'.$matches[2][0]
-----------------
ПС:Макро обогнал на 2 минуты :)

-=lebed=-
06.01.2008, 00:45
вывод:

Notice: Undefined offset: 0 in T:\home\localhost\test\Hashcms\parse.php on line 16

davidecao446fca5553df49ad9c6348cf1ff71d51:davide

Notice: Undefined offset: 0 in T:\home\localhost\test\Hashcms\parse.php on line 16

Как убрать вывод замечания и мне не нужен логин, т.е "davidecao"

UP осталось только предупреждение...

Macro
06.01.2008, 00:47
вывод:

Как убрать вывод замечания и мне не нужен логин, т.е "davidecao"
Мой скрипт работает, т.к. проверял на своем файле Untitled.Hashes
Просто возьми мой скрипт и переделай, а не свой переделай под мой :) Мой скрипт выводит все пароли. КОроче, я могу помочь с php если надо, пиши в асю

-=lebed=-
06.01.2008, 00:51
Мой скрипт работает, т.к. проверял на своем файле Untitled.Hashes
Просто возьми мой скрипт и переделай, а не свой переделай под мой :) Мой скрипт выводит все пароли. КОроче, я могу помочь с php если надо, пиши в асю
твой скрипт у меня выводит

Array ( [0] => davide )
если "+"

или

Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => davide [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => )
если "*"

paranoidchaos
06.01.2008, 00:52
разбей строку
по двоеточему функцией эксплод и возьми нужный элемент из массива
нужен тока хеш то это [1]

Macro
06.01.2008, 00:54
<?
$file=file_get_contents('Untitled.Hashes');
preg_match_all('|'.chr(127).'(.*)'.chr(127).chr(12 7).'(.*)'.chr(127).chr(127).'|',$file,$matches);
$passes=$matches[2];
$hashes=$matches[1];
echo('<b>Already cracked hashes:</b><br>');
foreach($hashes as $i=>$hash)
{
if(!empty($passes[$i])){echo($hash.':'.$passes[$i].'<br>');}
}

echo('<br><b>Not cracked hashes:</b><br>');
foreach($hashes as $i=>$hash)
{
if(empty($passes[$i])){echo($hash.'<br>');}
}
?>

-=lebed=-
06.01.2008, 01:02
Ога, то что нужно!, на других типах хэшей тоже должно всё работать!? разделители вроде везде одинаковые...

Macro
06.01.2008, 01:03
Ога, то что нужно!, на других типах хэшей тоже должно всё работать!? разделители вроде везде одинаковые...
На всех типах :)

-=lebed=-
06.01.2008, 01:09
На всех типах :)

Поможешь в разработке серверных скриптов для удалённого управления пассвордспро?

Macro
06.01.2008, 01:19
Поможешь в разработке серверных скриптов для удалённого управления пассвордспро?
Могу помочь.

-=lebed=-
06.01.2008, 13:57
Вот начальная наработка, смотрим очереди демонов PasswordsPro

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Web PasswordsPro by -=lebed=-</title>
</head>

<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<label>Выберите тип очереди:
<select name=type_hash value="<?=$query?>">
<option value="mysql.php">хэши MySQL(40bit)
<option value="md5.php">хэши MD5(128bit)
<option value="sha1.php"2>хэши SHA-1(160bit)
<option value="mysql5.php">хэши MySQL5(160bit)
</select>
Тип атаки: <select name=atack>
<option value=0 selected="selected">полный перебор простых паролей
<option value=1>простая атака по словарям
<option value=2>атака по Rainbow Tables
</select>
<input type="submit" value="OK">
</form>
<body>
<?
$query = isset($_POST['type_hash']) ? $_POST['type_hash'] : '';
$atack = isset($_POST['atack']) ? $_POST['atack'] : '';
echo $query."<br>";
include "./$query";
?>
</body>

</html>


1. По событию выбор типа очереди инклудится скрипт, который парсит очередь соответствующей копии демона passwordspro.exe и выводит её состояние.
Выводим состояние демона (работает/не работает с очередью)
2. При выборе типа атаки и нажатии кнопки ОК работающая в данный момент копия демона останавливается, запускается выбранная (по типу атаки)
Тип атаки - 0 - прогон хэшей полным перебором по набору правил.
1 - по набору словарей
2 - по набору Rainbow таблиц

ЗЫ Если будет 4-8 ядерный дёдик, то можно рискнуть и не останавливать другие копии демона passwordspro.exe
Управляет остановкой/запуском демонов администратор, для юзеров доступен только просмотр состояния очередей хэшей.

-=lebed=-
06.01.2008, 14:12
Запуск демона passwordspro.exe

<?php
$command="start /w ./passpro1/PasswordsPro.exe /auto /config:config1.ini";
exec("$command");
?>
Каждый демон со своей очередью хэшей и настройками в отдельной папке
passpro1-passpro4

Art!P
22.01.2008, 16:46
я тоже подобное делаю. 4-хядерный феном собираюсь брать
и гонять через rainbowcrack на линуксе
исходник доработаю, чтоб сея программа результат сохраняла в файл в нужном виде
запуск цикла с кроном.
и вот еще к примеру взять и "напрячь" md5.xek.cc в качестве предварительного анализатора =)
или не полениться изучить MySQL составить свою базу "распространенных" паролей
может у кого нить уже готовое есть? поделитесь. я буду очень благодарен!

InsidePro
01.02.2008, 21:16
Всем привет!
К сожалению, давно не забегал к вам и вижу, что тут уже целая дискуссия развернулась. :)

По параметрам в INI-файле - их названия и значения весьма непостоянны и я меняю их от версии к версии (по разным причинам - вводятся новые настройки, оптимизируются или перегруппируются старые и т.д.), так что лучше создать INI-файл "естественным" путем в текущей версии PPro, а уж затем менять в нем параметры вручную, т.е. не пытаться подсунуть программ INI-файл от ее предыдущей версии.

Формат строк в *.Hashes-файлах:
Username_Hash_Salt_Password_Comments_X_Y_Z
где X - тип хэша (раньше был один символ, нумерация - с буквы 'A', а начиная с позавчерашнего релиза 2.4.2.0 номер хэша будет в HEX-виде от 00 до FF, т.е. от 0 до 255)
Y - '1' или '0', в зав-сти от того, найден пароль или нет;
Z - '1' или '0', в зав-сти от того, отмечен ли юзер галочкой или нет.
В качестве разделителя используется символ с ASCII-кодом 127.

-=lebed=-
02.02.2008, 23:09
Вопрос к автору InsidePro
Какая необходимость в хранении в ini-файлах абсолютных путей к файлам *.Hashes, Charset.txt ? (параметры LastFile, EditBox1) Может сделать поиск их в самом каталоге программы и не использовать абсолютный путь с буквой диска?

InsidePro
02.02.2008, 23:34
Дело в том, что эти файлы не всегда могут находиться в папке с программой.

-=lebed=-
02.02.2008, 23:57
Дело в том, что эти файлы не всегда могут находиться в папке с программой.
Ну это ясно, ну можно ведь просматривать сначала папку с программой а потом уже лезть в ini файл за абсолютными путями, если их нет на месте (в папке с программой).
P.S. Дело в том, что если я ставлю относительный путь для них (т.е. только имя файла) программа всё равно упорно потом перезаписывает абсолютный путь к этим файлам... неудобно. ;)

InsidePro
03.02.2008, 01:11
Зачем просматривать, когда можно сразу взять полное имя файла с полным путем к нему? :)
Ставь сразу полный путь к файлу и неудобств не будет...

-=lebed=-
03.02.2008, 01:16
Зачем просматривать, когда можно сразу взять полное имя файла с полным путем к нему? :)
Ставь сразу полный путь к файлу и неудобств не будет...Мне не нужен "полный путь" у меня прога на флешке ;) хватило бы и относительного...

InsidePro
03.02.2008, 01:20
мне кажется, что это все-таки не столь существенно...

-=lebed=-
03.02.2008, 21:30
Коды некоторых типов хэшей:

MD5 X=0x27=chr(39)
MySQL X=0x21=chr(33)
MySQL5 X=0x22=chr(34)
SHA-1 X=0x2c=chr(44)

ЗЫ Бот теперь может обслуживать очереди MySQL, MySQL5, SHA-1.
PPS Кстати в версии PasswordsPro 2.4.1.0 (Nov 23 2007) обнаружен глюк - при экспорте найденых паролей от хэшей MySQL в текстовый файл, если экспортировать только поле пароль и не указав разделитель, то "съёдается" последняя буква пароля.