Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Сетевой брутфорс


Автор: Xen0n 28.4.2008, 08:14
Народ, помогите плз!
Необходимо написать прогу, сервер-клиенты для брутфорса пароля, используя локалку, т.е. есть 1 комп с серваком и много компов с клиентами (ботами), сервак раздает диапазон, клиенты перебирают его и пересылают обратно серваку, пароль за паролем, или файл текстовый.
Короче я написал уже общение через сеть, но перебор глючит, поделитесь плз идеями насчет кода перебора...

Автор: SABROG 28.4.2008, 11:48
Вообще подобное обсуждать запрещено на форумах, т.к. по сути ты нарушаешь закон. 
С другой стороны, если сервера и тачки твои и ты просто забыл пароль, то все законно.

Я так понял твоя задача написать распределенное вычисление пароля по сети ?

Я бы такой алгоритм выбрал:

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

Диапозоны значений надо генерить исходя из ситуации:
- максимальная длина пароля
- чувствительность регистров
- возможность вводить не только латинские буквы

Если по паролю генерится ХЭШ и сравнивается, то есть смысл полученный хеш записать в файл, чтобы не вычислять его повторно при подборе следующего пароля. Т.е. создать базу данных "пароль=хеш".

Перебор лучше всего не производить увеличивая значение на 1. Хорошо, если это будет случайный выбор. Например дошли до пароля: aaa
Далее алгоритм хочет сделать: aab

Лучше если будет так: aaa, qzb, poa и т.д. в случайном порядке.

Ну и естественно лучше начинать с перебора по словарю.

Автор: Xen0n 28.4.2008, 18:55
Ну насчет законности - это как то слишком сурово, у меня задание курсача такое))
Задача в общем виде выглядит так - надо написать прогу распределеных вычислений/выполнений задач, с модульной структурой, тестовый модуль - это перебор виртуального пароля (допустим сервак генерит что-нить случайное, а клиенты его подбирают). Предполагается, для упрощения, что компы одинаковой конфигурации и их "бенчмарки" соответственно тоже. В базе данных смысл конечно есть, но вот я сомневаюсь - не проще ли гарантированно перебрать конкретный пароль, чтобы потом даже не вспоминать проверяли ли мы его?
То есть с моей точки зрения получаем вот что: есть длина пароля, кол-во используемых символов и кол-во ботов - я написал примерный алгоритм, но он криво работает, наверное в силу кривости моих рук, вот и хочу почитать что другие думают насчет вариантов реализации примерно такого алгоритма...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)