ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

DefBrute - система распределенного перебора хешей.
  #1  
Старый 13.07.2009, 18:42
Аватар для c0n Difesa
c0n Difesa
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме:
89680

Репутация: 154
По умолчанию DefBrute - система распределенного перебора хешей.

Не многим из нас нравится выполнять трудоемкую задачу в одиночку. Процесс тянется долго, расходуются физические/умственные/нервные ресурсы. И в который раз мы понимаем, сколько времени можно было сэкономить, работая в коллективе.

Компьютер не является исключением из этого правила. Только он не способен осознавать, насколько сложна поставленная перед ним задача, поэтому процесс ее выполнения может растянуться на долгий срок. Другое дело кластер – своего рода коллектив компьютеров, работающих над общей задачей и каждый из которых делает то, на что способен. Однако и здесь нужен сервер, который будет распределять задачу…

Оставим эту «балталогию» и, чтобы не обсуждать абстрактные вещи, поставим конкретную задачу – перебор пароля по MD5-хешу. Другими словами: поиск коллизии.

Частенько возникает потребность восстановить строку, имея на руках ее MD5-хеш. Забудем идею перебора по словарю, чтобы не ограничивать себя его размерами и предположим, что не нашлось коллизии ни на одном из ресурсов в сети. Остается генерировать посимвольно строки и сравнивать их хеш с целевым. Не иначе как настоящий брутфорс! Однако выполнять этот процесс на одной машине, по меньшей мере, нерационально.


Гвоздь программы.

DefBrute – система распределенного перебора строк для MD5-хешей. Особенности ее функционирования и процесс создания были детально описаны в статье "Система распределенных вычислений. Грид-сеть." . Там же можно найти исходные коды программного обеспечения, лежащие в основе рассматриваемой системы, с подробными комментариями.

Система состоит из серверной и клиентской частей.


Сервер.

Серверная часть (DefBrute v1.0.exe) выполняет функции генерации, учета и передачи диапазонов строк клиентам.

Генерация диапазонов основана на множестве символов (Char Set) (из которых, как предполагается, состоит пароль) и длины пароля (Password Length). Процесс генерации представляет собой простую инкрементацию числа из n-ричной системы счисления. Каждому числу соответствует биективное (взаимно-однозначное) отображение из множества строк. За подробностями генерации обращайтесь к статье многоуважаемого ZaCo «Разделение диапазона перебора паролей» . Далее сгенерированный диапазон строк передается клиенту с помощью технологии .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 *

* Требуется наличие .NET Framework 2.0 или выше.

(c) c0n Difesa (defec.ru)

Последний раз редактировалось c0n Difesa; 28.11.2009 в 18:43..
 
Ответить с цитированием

  #2  
Старый 14.07.2009, 12:56
Аватар для schwarze
schwarze
Познающий
Регистрация: 01.12.2008
Сообщений: 68
Провел на форуме:
484662

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

Переборщик лично твой? Или ты чей-то взял?
 
Ответить с цитированием

  #3  
Старый 14.07.2009, 16:01
Аватар для c0n Difesa
c0n Difesa
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме:
89680

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

Цитата:
Сообщение от schwarze  
Переборщик лично твой? Или ты чей-то взял?
Лично мой.

P.S. Главное окно программы содержит копирайты.
 
Ответить с цитированием

Особенности генерации диапазона строк.
  #4  
Старый 18.08.2009, 14:21
Аватар для c0n Difesa
c0n Difesa
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме:
89680

Репутация: 154
По умолчанию Особенности генерации диапазона строк.

Рассмотрю некоторые детали функционирования системы, чтобы материал не накапливался и не разрастался до объема статьи, которую нет времени писать.

Одной из ключевых особенностей серверной части является генерация диапазона строк для последующего перебора клиентом. Как было упомянуто в первом посте, она основана на взаимооднозначном соответствии строки символов с числом. На этом моменте остановлюсь подробнее.

Предположим, пользователю требуется перебрать всевозможные комбинации (строки), составленные из символов:

Код:
str = “skz!&#”
Пронумеруем каждый символ:

Код:
s(1); k(2); z(3); !(4); & (5); #(6)
Всего символов n=6, значит работать будем в n-ричной системе счисления.

Новая строка будет получаться в результате итерации числа, которое также представляет свою строку. Для наглядности приведу пример:

Код:
Число               Соответствующая ему строка
 
1	             s
2	             k
3	             z
…
6                       #

(Т.к. система 6-ричная, то если число >6 переходим в следующий разряд)

7                       s#
8                       k#
9                       z#
И т. д.

Данный принцип используется подавляющим большинством переборщиков паролей. Надеюсь он описан понятно.

Последний раз редактировалось c0n Difesa; 18.08.2009 в 15:51..
 
Ответить с цитированием

  #5  
Старый 18.08.2009, 14:43
Аватар для ErrorNeo
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


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

http://ru.wikipedia.org/wiki/Коллизия

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

2. находить MD5 хеш методом прямого перебора с использованием CPU, пусть даже распределённо - не есть тру, потому как даже одна видеокарта с поддержкой технологии CUDA или Bars способна выдавать скорость перебора, равную 100(!) мощностям обычных процессоров.

Если же задумка в том, чтобы раздавать клиентскую часть скрытно тысячам юзеров, и грузить их процы не более, чем не 5-10%... то даже в этом случае 1 единственная видеокарта сможет заменить 1000-2000 таких ботов.


в общем и целом всё красиво, интересно, любопытно....
но бесполезно. не совсем понимаю, зачем именно ты это сотворил)

хотя за старания все равно плюс) будет тебе от этого хоть какая-то польза

Последний раз редактировалось ErrorNeo; 18.08.2009 в 14:52..
 
Ответить с цитированием

  #6  
Старый 18.08.2009, 14:57
Аватар для c0n Difesa
c0n Difesa
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме:
89680

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

Цитата:
1. если ты реализуешь нахождение коллизии заданного MD5 хеша с произвольным другим (на современных компьютерных мощностях) - тебе как минимум дадут нобелевскую премию
Из той же Вики:
Цитата:
Коллизия хеш-функции в информатике и криптографии — это равенство значений хеш-функции на двух различных блоках данных.
Отсюда: коллизия – равенство. В принципе, считаю уместным использовать данное понятие в качестве равенства двух хешей (Целевого и Найденного).

Цитата:
2. находить MD5 хеш методом прямого перебора с использованием CPU, пусть даже распределённо - не есть тру, потому как даже одна видеокарта с поддержкой технологии CUDA или Bars способна выдавать скорость перебора, равную 100(!) мощностям обычных процессоров.
Факт. Однако не все видеокарты работают с той же CUDA, что существенно сокращает "доноров".

Программа разрабатывалась в целях самообразования и ознакомления с платформой .NET и С# в частности, поэтому я не ставил цель написать брутер «бест оф зе бест», что упоминал в своей статье, посвященной данной системе.

Последний раз редактировалось c0n Difesa; 18.08.2009 в 15:05..
 
Ответить с цитированием

  #7  
Старый 18.08.2009, 17:11
Аватар для ErrorNeo
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


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

коллизия - это 2 одинаковых хеша от двух разных исходных блоков данных.
Иными словами, это - если ты сломаешь хеш 2 раза, и полуичишь при этом разные пароли.
Это - чёткий термин. Называя же им простой подбор пароля ты лишь вводишь тех, кто знает его значение, в заблуждение, и усложняешь понимание тем, кто его не знает)

В общем мне все равно, можешь коллизией хоть прогноз погоды называть - просто это будет не верно)

как я уже написал - в любом случае молодец, что старался, и надеюсь, что твоё следующее творение будет более полезным с практической (а не только теоретической) точки зрения :-)
 
Ответить с цитированием

  #8  
Старый 18.08.2009, 17:30
Аватар для c0n Difesa
c0n Difesa
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме:
89680

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

Цитата:
Это - чёткий термин. Называя же им простой подбор пароля ты лишь вводишь тех, кто знает его значение, в заблуждение, и усложняешь понимание тем, кто его не знает)
Примите извинения за отсутствие строгости к употребляемым терминам. Спасибо за замечание.

Цитата:
как я уже написал - в любом случае молодец, что старался, и надеюсь, что твоё следующее творение будет более полезным с практической (а не только теоретической) точки зрения :-)
Большое спасибо за критику. Приму к сведению, но все же надеюсь, что эти исходники кому-нибудь пригодятся в качестве концепта
 
Ответить с цитированием

  #9  
Старый 18.08.2009, 18:56
Аватар для diehard
diehard
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме:
2590715

Репутация: 659


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

Цитата:
Сообщение от ErrorNeo  
Если же задумка в том, чтобы раздавать клиентскую часть скрытно тысячам юзеров, и грузить их процы не более, чем не 5-10%... то даже в этом случае 1 единственная видеокарта сможет заменить 1000-2000 таких ботов.
а ты не подумал вариант - если у меня на компе куды нету, зато из всего ботнета есть десяток ботов с кудами, либо даже не ботов а друзей, с которыми я договорился.
 
Ответить с цитированием

  #10  
Старый 18.08.2009, 19:22
Аватар для ErrorNeo
ErrorNeo
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме:
4297091

Репутация: 2261


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

gold-goblin, "прикрутить куду" это ты жостко сказал.
Если есть реальное желание - напиши сначала свой брутер под неё))
А сделать распределение, это уже, прямо скажем, не особенно то и сложно.

diehard, для единичных распределенных атак в брутерах есть функция "начинать брут с такого-то пасса". Таким образом менее, чем на 10 машинах, сделать это - совершенно не сложно. Нужно всего лишь скинуть 10 людям в аську стартовый пароль а им - нажать 3 кнопки, чтобы вставить этот пароль в настройки программы.
Более того, реализовать "такое" программно - проще простого.

То, что сделал автор - свой полноценный брутер - это.. да, это не тривиально.
Более того, это - какое-то количество дней работы. А работу, любую, нужно уважать
Мой коммент касался лишь того, что этот брутер, хотя и потребовал вложения сил и времени, но совершенно бесполезен в реальной жизни именно как брутер.
Как образец кода - да, вполне возможно, что это действительно кому-то может и пригодиться)

О распределенном же "куда-брутере", diehard, я ничего не говорил.
В определенной степени это могло бы быть полезно... хозяину ботнета из куд D

Последний раз редактировалось ErrorNeo; 18.08.2009 в 19:26..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плагин FF, для поиска хешей. v01d PHP, PERL, MySQL, JavaScript 20 30.09.2009 17:04
Цепочки – метод поиска коллизии. Red_Red1 Расшифровка хешей 35 28.06.2009 05:10
В Японии представлена новая система защиты сотовых телефонов Zek Мировые новости 0 28.10.2006 00:26



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


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




ANTICHAT.XYZ