Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
DefBrute - система распределенного перебора хешей. |

13.07.2009, 18:42
|
|
Участник форума
Регистрация: 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..
|
|
|

14.07.2009, 12:56
|
|
Познающий
Регистрация: 01.12.2008
Сообщений: 68
Провел на форуме: 484662
Репутация:
143
|
|
Переборщик лично твой? Или ты чей-то взял?
|
|
|

14.07.2009, 16:01
|
|
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме: 89680
Репутация:
154
|
|
Сообщение от schwarze
Переборщик лично твой? Или ты чей-то взял?
Лично мой.
P.S. Главное окно программы содержит копирайты.
|
|
|
Особенности генерации диапазона строк. |

18.08.2009, 14:21
|
|
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме: 89680
Репутация:
154
|
|
Особенности генерации диапазона строк.
Рассмотрю некоторые детали функционирования системы, чтобы материал не накапливался и не разрастался до объема статьи, которую нет времени писать.
Одной из ключевых особенностей серверной части является генерация диапазона строк для последующего перебора клиентом. Как было упомянуто в первом посте, она основана на взаимооднозначном соответствии строки символов с числом. На этом моменте остановлюсь подробнее.
Предположим, пользователю требуется перебрать всевозможные комбинации (строки), составленные из символов:
Пронумеруем каждый символ:
Код:
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..
|
|
|

18.08.2009, 14:43
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
http://ru.wikipedia.org/wiki/Коллизия
1. если ты реализуешь нахождение коллизии хеш-функции от заранее заданного блока данных с хеш-функцией от произвольного другого блока данных (на современных компьютерных мощностях) - тебе как минимум дадут нобелевскую премию, возьмут ведущим криптоаналитиком пентагона(или любой другой спец-структуры по твоему желанию)
+ ты, конечно же, прославишься на весь мир.
2. находить MD5 хеш методом прямого перебора с использованием CPU, пусть даже распределённо - не есть тру, потому как даже одна видеокарта с поддержкой технологии CUDA или Bars способна выдавать скорость перебора, равную 100(!) мощностям обычных процессоров.
Если же задумка в том, чтобы раздавать клиентскую часть скрытно тысячам юзеров, и грузить их процы не более, чем не 5-10%... то даже в этом случае 1 единственная видеокарта сможет заменить 1000-2000 таких ботов.

в общем и целом всё красиво, интересно, любопытно....
но бесполезно. не совсем понимаю, зачем именно ты это сотворил)
хотя за старания все равно плюс) будет тебе от этого хоть какая-то польза 
Последний раз редактировалось ErrorNeo; 18.08.2009 в 14:52..
|
|
|

18.08.2009, 14:57
|
|
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме: 89680
Репутация:
154
|
|
1. если ты реализуешь нахождение коллизии заданного MD5 хеша с произвольным другим (на современных компьютерных мощностях) - тебе как минимум дадут нобелевскую премию
Из той же Вики:
Коллизия хеш-функции в информатике и криптографии — это равенство значений хеш-функции на двух различных блоках данных.
Отсюда: коллизия – равенство. В принципе, считаю уместным использовать данное понятие в качестве равенства двух хешей (Целевого и Найденного).
2. находить MD5 хеш методом прямого перебора с использованием CPU, пусть даже распределённо - не есть тру, потому как даже одна видеокарта с поддержкой технологии CUDA или Bars способна выдавать скорость перебора, равную 100(!) мощностям обычных процессоров.
Факт. Однако не все видеокарты работают с той же CUDA, что существенно сокращает "доноров".
Программа разрабатывалась в целях самообразования и ознакомления с платформой .NET и С# в частности, поэтому я не ставил цель написать брутер «бест оф зе бест», что упоминал в своей статье, посвященной данной системе.
Последний раз редактировалось c0n Difesa; 18.08.2009 в 15:05..
|
|
|

18.08.2009, 17:11
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
коллизия - это 2 одинаковых хеша от двух разных исходных блоков данных.
Иными словами, это - если ты сломаешь хеш 2 раза, и полуичишь при этом разные пароли.
Это - чёткий термин. Называя же им простой подбор пароля ты лишь вводишь тех, кто знает его значение, в заблуждение, и усложняешь понимание тем, кто его не знает)
В общем мне все равно, можешь коллизией хоть прогноз погоды называть - просто это будет не верно)
как я уже написал - в любом случае молодец, что старался, и надеюсь, что твоё следующее творение будет более полезным с практической (а не только теоретической) точки зрения :-)
|
|
|

18.08.2009, 17:30
|
|
Участник форума
Регистрация: 01.01.2009
Сообщений: 144
Провел на форуме: 89680
Репутация:
154
|
|
Это - чёткий термин. Называя же им простой подбор пароля ты лишь вводишь тех, кто знает его значение, в заблуждение, и усложняешь понимание тем, кто его не знает)
Примите извинения за отсутствие строгости к употребляемым терминам. Спасибо за замечание.
как я уже написал - в любом случае молодец, что старался, и надеюсь, что твоё следующее творение будет более полезным с практической (а не только теоретической) точки зрения :-)
Большое спасибо за критику. Приму к сведению, но все же надеюсь, что эти исходники кому-нибудь пригодятся в качестве концепта 
|
|
|

18.08.2009, 18:56
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
Сообщение от ErrorNeo
Если же задумка в том, чтобы раздавать клиентскую часть скрытно тысячам юзеров, и грузить их процы не более, чем не 5-10%... то даже в этом случае 1 единственная видеокарта сможет заменить 1000-2000 таких ботов.
а ты не подумал вариант - если у меня на компе куды нету, зато из всего ботнета есть десяток ботов с кудами, либо даже не ботов а друзей, с которыми я договорился.
|
|
|

18.08.2009, 19:22
|
|
Moderator - Level 7
Регистрация: 02.05.2009
Сообщений: 894
Провел на форуме: 4297091
Репутация:
2261
|
|
gold-goblin, "прикрутить куду" это ты жостко сказал.
Если есть реальное желание - напиши сначала свой брутер под неё))
А сделать распределение, это уже, прямо скажем, не особенно то и сложно.
diehard, для единичных распределенных атак в брутерах есть функция "начинать брут с такого-то пасса". Таким образом менее, чем на 10 машинах, сделать это - совершенно не сложно. Нужно всего лишь скинуть 10 людям в аську стартовый пароль а им - нажать 3 кнопки, чтобы вставить этот пароль в настройки программы.
Более того, реализовать "такое" программно - проще простого.
То, что сделал автор - свой полноценный брутер - это.. да, это не тривиально.
Более того, это - какое-то количество дней работы. А работу, любую, нужно уважать 
Мой коммент касался лишь того, что этот брутер, хотя и потребовал вложения сил и времени, но совершенно бесполезен в реальной жизни именно как брутер.
Как образец кода - да, вполне возможно, что это действительно кому-то может и пригодиться)
О распределенном же "куда-брутере", diehard, я ничего не говорил.
В определенной степени это могло бы быть полезно... хозяину ботнета из куд  D
Последний раз редактировалось ErrorNeo; 18.08.2009 в 19:26..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|