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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Расшифровка хешей (https://forum.antichat.xyz/forumdisplay.php?f=76)
-   -   Web-интерфейс для PasswordsPro?! (https://forum.antichat.xyz/showthread.php?t=56928)

-=lebed=- 30.12.2007 01:45

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

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

Spyder 30.12.2007 01:51

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

-=lebed=- 30.12.2007 01:59

Цитата:

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

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

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

ЗЫ На 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

Цитата:

Сообщение от blackybr
а есть полное описание работы паспро с коммандной строкой?

Цитата:

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

/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 код:

<?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 код:

<?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

Цитата:

Сообщение от -=lebed=-
Вот вытаскивает хэши МД5 из файла
PHP код:

<?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

Цитата:

Сообщение от presidentua
проверить не могу сейчас но вроде бы так:
/^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 код:

<?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

PHP код:

<?
$file
=file_get_contents('Untitled.Hashes');
preg_match_all('|'.chr(127).'(.*)'.chr(127).chr(127).'(.*)'.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

Цитата:

Сообщение от -=lebed=-
вывод:

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

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

-=lebed=- 06.01.2008 00:51

Цитата:

Сообщение от Macro
Мой скрипт работает, т.к. проверял на своем файле 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

PHP код:

<?
$file
=file_get_contents('Untitled.Hashes');
preg_match_all('|'.chr(127).'(.*)'.chr(127).chr(127).'(.*)'.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=-
Ога, то что нужно!, на других типах хэшей тоже должно всё работать!? разделители вроде везде одинаковые...

На всех типах :)

-=lebed=- 06.01.2008 01:09

Цитата:

Сообщение от Macro
На всех типах :)

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

Macro 06.01.2008 01:19

Цитата:

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

Могу помочь.

-=lebed=- 06.01.2008 13:57

Вот начальная наработка, смотрим очереди демонов PasswordsPro
PHP код:

<!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 код:

<?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

Цитата:

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

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

InsidePro 03.02.2008 01:11

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


Время: 22:30