Просмотр полной версии : Web-интерфейс для PasswordsPro?!
-=lebed=-
30.12.2007, 01:45
Как известно программа поддерживает работу через коммандную строку, с помощью передачи параметров через конфигурационный файл (по умолчанию это PasswordsPro.ini)
Вот интересует такой вопрос, есть ли (писал ли кто-нибудь) скрипт, который настраивает конфигурацию программы и запускает её через WEB? (php, perl) Если нет, то буду очень признателен, если кто поможет в создании данного сабжа. Т.е. нужна помощь в реализации клиент-сервер (Браузер <-> Сервер с PasswordsPro + php). Если прикрутить веб-интерфейс к програмее то это, имхо было бы очень даже удобно...
Буду рад любой инфе по данной теме. Конечно в первую очередь вопрос адресован к автору PasswordsPro. т.е InsidePro.
т е ты хочешь через веб интерфейс запустить паспро и потом в бразуер вывести результат? если я тебя правильно понял, то такое впринципе сделать можно, но надо ли? помойму это у же извращение, хотя это только моё мнение
Да и нагрузка на серв будет серьёзная
Для каких целей ты хочешь это реализовать?
-=lebed=-
30.12.2007, 01:59
т е ты хочешь через веб интерфейс запустить паспро и потом в бразуер вывести результат? если я тебя правильно понял, то такое впринципе сделать можно, но надо ли? помойму это у же извращение, хотя это только моё мнение
Да и нагрузка на серв будет серьёзная
Для каких целей ты хочешь это реализовать?
Да хочу клиент-сервер, на счёт нагрузки... смотря какая атака...
Почему изврат? очень удобно... весь хлам, словари, радужные таблицы на сервере а не на моём компе - юзаю всё через веб, с любого компа...
ЗЫ На passcracking.ru очередь хэшей прогоняется по таблицам явно не средствами интерпретируемого языка, а возможно именно через .ехе, хотя это мои догадки...
Поставлю задачку в два этапа:
1. Управление настройками PasswordsPro + запуск/остановка.
2. Циклический брут по словарям и/или таблицам, некоторой динамической группы хэшей...
помойму проще удалённо подключится к серверу и там уже через терминал запускать, чем возиться с веб интерфейсом. я кроме как system() - другого выхода не вижу, но ты представь сколько оно будет выполнятся
Может я конечно не прав, если что поправьте
Да к тому же тбе нужен будет не просто дедик, а дедик на котором админу будет всё равно почему это у него процесс жрёт больше половины оперативы
-=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);
?>
А мне нужно только те, где пассы найдены...
Вот вытаскивает хэши МД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
Вроде так....
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
echo $matches[0][0]."<br>"; выводит найденную строку, а не результат регулярки
<?
$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 осталось только предупреждение...
вывод:
Как убрать вывод замечания и мне не нужен логин, т.е "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]
<?
$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
Ога, то что нужно!, на других типах хэшей тоже должно всё работать!? разделители вроде везде одинаковые...
Ога, то что нужно!, на других типах хэшей тоже должно всё работать!? разделители вроде везде одинаковые...
На всех типах :)
-=lebed=-
06.01.2008, 01:09
На всех типах :)
Поможешь в разработке серверных скриптов для удалённого управления пассвордспро?
Поможешь в разработке серверных скриптов для удалённого управления пассвордспро?
Могу помочь.
-=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
я тоже подобное делаю. 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 в текстовый файл, если экспортировать только поле пароль и не указав разделитель, то "съёдается" последняя буква пароля.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot