Навеяно Взлом и защита » Для новичков » расшифровка MD5 и пытливыми пользователями. Итак, у Вас, ну, очень острая проблема - "Забыли пароль от аськи". И все "хаккеры" внезапно куда-то подевались после именно Вашего сообщения? И даже в такой жуткой ситуации есть способ. Называется он: "Раз так?! То Мы будем делать все сами! :p"
Для того чтобы можно было подобрать пароль необходима программа, называемая, брутер. Я буду описывать методику самоспасения утопающих на примере BarsWF. Программа имеет интерфейс командной строки, за счет чего BarsWF не тратит лишние ресурсы и не делает лишних движений и с максимальной эффективностью решает Вашу беду. А начинающим я покажу, что боятся командной строки не надо. Она более чем User Friendly.
Итак начнем. Далее будет сухо, но так лучше усвоится.
Для новичков
I. Необходимо собрать максимальное количество информации о подбираемом пароле, для ускорения подбора. В том числе эта информация, если ее написать, очень поможет тем кто Вам помогает.
Длинна пароля от.. до.. (больше восьми символов - есть шанс не дождаться конца перебора)
Набор символов. Язык. Обычно набор символов [a-zA-Z0-9] т.е. все латинские буквы в нижнем регистре, в верхнем и цифры. Реже могут быть дополнительно использованы [ _] (пробел и нижняя черта). Набор [{}:"|<>?`±!@#$%^&*()_+] - спец. символы. Пароль со спец. символами подобрать за разумное время обычно не возможно.
Из каких слов или частей их состоит пароль?
Маска пароля. Т.е. если Вы помните какие-то символы и знаете где они стоят. Например (Pa..wo.d)
II. Необходимо подготовить программное обеспечение.
Определяем разрядность операционой системы. Ее можно узнать - Пуск -> Панель управления -> Система. В разделе "Система" смотрим на строчку "Тип системы"
Качаем - 3.14.by. Выбираем SSE2 версию под разрядность Вашей системы. !!!CUDA и Brook НЕ качаем!!! если не знаем как заставить работать.
Распаковываем архив на "Рабочий стол"
Открываем командную строку - Пуск -> Все программы -> Стандартные -> Командная строка
III. Начинаем брут паролей
Перетягиваем файл EXE распакованный из архива (он должен быть единственным) в окно Командной строки
Получаем что-то наподобие:
Код
C:\Users\Equilibrious\Desktop\BarsWF_SSE2_x32.exe
Далее дописываем или копируем и вставляем команду (в Командной строке вставить можно только через ПКМ -> Вставить) чтобы получить например:
После -h (пробел) задаем MD5 хэш. Туда надо вставить свой. После -с (пробел) задаем набор символов a - латинские буквы в нижнем регистре, A - латинские буквы в верхнем регистре, 0 - цифры, ~ (тильда) - спец. символы. После -С (пробел) пожно указывать свой набор символов. Например:
Прервать процесс перебора можно в любой момент сочетанием Ctrl+C (вот почему встатвить можно через мышку). Продолжить перебор с места на котором прервались можно командой:
Теперь можно идти и заниматься своими делами. Компьютер в момент перебора малопригоден даже для интернета. Не говоря уже об играх.
Для поднаторевших
Ключи BarsWF(вольный перевод).
-? - Вывести Help (собственно то что ниже и есть он с примерами от разработчика)
-r - Продолжить предыдущую работу из файла barswf.save (о нем подробнее будет написано ниже). BarsWF обновляет его каждые 5 минут или при выходе (Control+C например).
-h 1b0e9fd3086d90a159a1d6cb86f11b4c - Задать хэш для атаки/перебора
-c 0aA~ - Задать символы. 0 - цифры, a - маленькие латинские буквы, A - большие латинские буквы, ~ - спец. символы
-C "abc23#" - Добавить свой набор символов для атаки.
-X "0D0A00" - Добавить свой набор символов в hex для атаки.
-min_len 3 - Минимальная длинна подбираемого пароля. По умолчанию 0. Максимальное 15!!! :-] (Ждать этого предела можно на текущий момент до второго прешествия)
Формат файла barswf.save Файл является текстовым, располагается в каталоге C:\Users\<Имя_Пользователя> и имеет следующий вид:
02: b9b57aae83585e17ede4570dcede353c - атакуемый hash указанный в ключе -h
03: md5 - указание на hash алгоритм (видимо задумка была больше и шире )
04: 7 - текущее число символов в переборе (растет по мере перебора). По сути количество счетчиков для строки 05
05: 0 0 0 6 1 12 20 последний "пароль". Количество чисел должно совпадать с числом в строке 04. Разделитель пробел. Числа показывают порядковый номер символа из набора в строке 07. Т.е. по сути это состояние счетчиков в цикле перебора по массиву.
06: 26 - количество символов для перебора, указанное ключами -c, -C и -X. По сути максимальное значение счетчика для цикла.
07: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - номера символов для перебора в таблице ASCII. Набор определяется ключами -с, -C и -X. Количество чисел должно совпадать с числом из строки 06. Разделитель пробел. По сути, это массив по которому перебирают циклами.
Личное мнение о данной структуре, что оно оптимизированно на простоту и скорость. Взяли значения и присвоили их "As Is" на выполнении. Для пользователя тут не предусмотрели ровно ничего. В принципе пользователя тут быть и не должно
P.S. Буду благодарен если кто напишет мне как он ставил CUDA и Brook для BarsWF чтобы внести в инструкцию. С сохранением авторства естественно. А то у меня времени нет сейчас на опыты. Нужна железная тачка с соответствующими видюхами для них, а не виртуалка с Виндой.
Изменено: Equilibrious - 21.08.2012 01:06:38(исправление ошибок и дополнение)
Версия CUDA работает так же, без дополнительной настройки, и очень существенно увеличивает скорость перебора. Естественно, нужно чтобы видеокарта поддерживала CUDA и были установлены драйверы.
Ключи командной строки немного другие, приведу список только тех, что отличаются (из оригинального хелпа):
--cpu_n arg (=-1) Number of CPU cores --gpu_mask arg (=-1) 1 enables first GPU, 2 - second, 15 - first 4, e.t.c --grid_n arg (=-1) Grid count for nVidia --thread_n arg (=-1) Thread count for nVidia --gpu_time arg (=100) How long GPU core is allowed to run --min_len arg (=1) Minimal password length
Обратите внимание что -min_len в CUDA-версии пишеться с двумя минусами! Чтобы сохранить результаты подбора, чтобы потом продолжить с места остановки, нужно в программе нажать любую клавишу. Если нажимать Ctrl+C или просто закрыть программу, текущий сейв не будет сохранен!!!
Что касается сейв-файла, то первая строка принимает значение "0" пока ключ не найден, и "1" когда будет найден .
Кстати автор прекратил работу над проектом, но выложил исходники на своем сайте, так что кто разбирается может продолжить