c0n Difesa
13.07.2009, 18:42
Не многим из нас нравится выполнять трудоемкую задачу в одиночку. Процесс тянется долго, расходуются физические/умственные/нервные ресурсы. И в который раз мы понимаем, сколько времени можно было сэкономить, работая в коллективе.
Компьютер не является исключением из этого правила. Только он не способен осознавать, насколько сложна поставленная перед ним задача, поэтому процесс ее выполнения может растянуться на долгий срок. Другое дело кластер – своего рода коллектив компьютеров, работающих над общей задачей и каждый из которых делает то, на что способен. Однако и здесь нужен сервер, который будет распределять задачу…
Оставим эту «балталогию» и, чтобы не обсуждать абстрактные вещи, поставим конкретную задачу – перебор пароля по MD5-хешу. Другими словами: поиск коллизии.
Частенько возникает потребность восстановить строку, имея на руках ее MD5-хеш. Забудем идею перебора по словарю, чтобы не ограничивать себя его размерами и предположим, что не нашлось коллизии ни на одном из ресурсов в сети. Остается генерировать посимвольно строки и сравнивать их хеш с целевым. Не иначе как настоящий брутфорс! Однако выполнять этот процесс на одной машине, по меньшей мере, нерационально.
Гвоздь программы.
DefBrute – система распределенного перебора строк для MD5-хешей. Особенности ее функционирования и процесс создания были детально описаны в статье "Система распределенных вычислений. Грид-сеть." (http://forum.antichat.ru/thread120114.html) . Там же можно найти исходные коды программного обеспечения, лежащие в основе рассматриваемой системы, с подробными комментариями.
Система состоит из серверной и клиентской частей.
Сервер.
Серверная часть (DefBrute v1.0.exe) выполняет функции генерации, учета и передачи диапазонов строк клиентам.
Генерация диапазонов основана на множестве символов (Char Set) (из которых, как предполагается, состоит пароль) и длины пароля (Password Length). Процесс генерации представляет собой простую инкрементацию числа из n-ричной системы счисления. Каждому числу соответствует биективное (взаимно-однозначное) отображение из множества строк. За подробностями генерации обращайтесь к статье многоуважаемого ZaCo «Разделение диапазона перебора паролей» (http://forum.antichat.ru/thread50394.html) . Далее сгенерированный диапазон строк передается клиенту с помощью технологии .NET Remoting.
Главное (и единственное) окно программы состоит из нескольких областей. Рассмотрим эти области детальнее.
Область Connect Settings содержит в себе опцию: Server Port, которая (как нетрудно догадаться) отвечает за номер порта, который будет открыт на сервере и который также необходимо указать клиенту.
Следующая область объединяет все опции для перебора. Поле User CharSet позволяет пользователю задать множество символов, которые, по его предположению, могут быть использованы в пароле.
Preset - предустановленные множества символов (латинские в верхнем регистре, в нижнем регистре, цифры и специальные символы). Думаю, тут все понятно.
Enemy Hash - поле в котором указывает целевой MD5-хеш.
Password Length - предполагаемая длинна пароля. Незнаем? – указываем с запасом.
Statistics - область статистики, в которой первым пунктом является поле Clients Online. Оно показывает количество клиентов, получивших диапазон для перебора.
Range Brute Progress - прогресс-бар, отображающий процесс перебора диапазона всех возможных строк.
Collision - область, в которой выводится строка, соответствующая целевому MD5-хешу.
Клиент.
Клиент представляет собой консольное приложение, формат запуска которого: defbc.exe <server ip> <server port>.
Возможно, кому-то покажется, что программа далека от совершенства, о чем могут свидетельствовать необработанные исключения и т.п. Для искушенного пользователя, а также для любителей оптимизировать и подгонять все «под себя», в архиве с программой присутствуют исходные коды на C# в виде проекта (Solution) для Visual Studio 2008.
DefBrute v1.0 (http://www.defec.ru/sites/default/files/DefBrute%20v1.0.zip) *
* Требуется наличие .NET Framework 2.0 или выше.
(c) c0n Difesa (defec.ru (http://defec.ru))
Компьютер не является исключением из этого правила. Только он не способен осознавать, насколько сложна поставленная перед ним задача, поэтому процесс ее выполнения может растянуться на долгий срок. Другое дело кластер – своего рода коллектив компьютеров, работающих над общей задачей и каждый из которых делает то, на что способен. Однако и здесь нужен сервер, который будет распределять задачу…
Оставим эту «балталогию» и, чтобы не обсуждать абстрактные вещи, поставим конкретную задачу – перебор пароля по MD5-хешу. Другими словами: поиск коллизии.
Частенько возникает потребность восстановить строку, имея на руках ее MD5-хеш. Забудем идею перебора по словарю, чтобы не ограничивать себя его размерами и предположим, что не нашлось коллизии ни на одном из ресурсов в сети. Остается генерировать посимвольно строки и сравнивать их хеш с целевым. Не иначе как настоящий брутфорс! Однако выполнять этот процесс на одной машине, по меньшей мере, нерационально.
Гвоздь программы.
DefBrute – система распределенного перебора строк для MD5-хешей. Особенности ее функционирования и процесс создания были детально описаны в статье "Система распределенных вычислений. Грид-сеть." (http://forum.antichat.ru/thread120114.html) . Там же можно найти исходные коды программного обеспечения, лежащие в основе рассматриваемой системы, с подробными комментариями.
Система состоит из серверной и клиентской частей.
Сервер.
Серверная часть (DefBrute v1.0.exe) выполняет функции генерации, учета и передачи диапазонов строк клиентам.
Генерация диапазонов основана на множестве символов (Char Set) (из которых, как предполагается, состоит пароль) и длины пароля (Password Length). Процесс генерации представляет собой простую инкрементацию числа из n-ричной системы счисления. Каждому числу соответствует биективное (взаимно-однозначное) отображение из множества строк. За подробностями генерации обращайтесь к статье многоуважаемого ZaCo «Разделение диапазона перебора паролей» (http://forum.antichat.ru/thread50394.html) . Далее сгенерированный диапазон строк передается клиенту с помощью технологии .NET Remoting.
Главное (и единственное) окно программы состоит из нескольких областей. Рассмотрим эти области детальнее.
Область Connect Settings содержит в себе опцию: Server Port, которая (как нетрудно догадаться) отвечает за номер порта, который будет открыт на сервере и который также необходимо указать клиенту.
Следующая область объединяет все опции для перебора. Поле User CharSet позволяет пользователю задать множество символов, которые, по его предположению, могут быть использованы в пароле.
Preset - предустановленные множества символов (латинские в верхнем регистре, в нижнем регистре, цифры и специальные символы). Думаю, тут все понятно.
Enemy Hash - поле в котором указывает целевой MD5-хеш.
Password Length - предполагаемая длинна пароля. Незнаем? – указываем с запасом.
Statistics - область статистики, в которой первым пунктом является поле Clients Online. Оно показывает количество клиентов, получивших диапазон для перебора.
Range Brute Progress - прогресс-бар, отображающий процесс перебора диапазона всех возможных строк.
Collision - область, в которой выводится строка, соответствующая целевому MD5-хешу.
Клиент.
Клиент представляет собой консольное приложение, формат запуска которого: defbc.exe <server ip> <server port>.
Возможно, кому-то покажется, что программа далека от совершенства, о чем могут свидетельствовать необработанные исключения и т.п. Для искушенного пользователя, а также для любителей оптимизировать и подгонять все «под себя», в архиве с программой присутствуют исходные коды на C# в виде проекта (Solution) для Visual Studio 2008.
DefBrute v1.0 (http://www.defec.ru/sites/default/files/DefBrute%20v1.0.zip) *
* Требуется наличие .NET Framework 2.0 или выше.
(c) c0n Difesa (defec.ru (http://defec.ru))