Создаём "правильные" словари для ****а хэшей. Предисловие. Многие из Вас пользовались программой PasswordsPro для ****а хэшей, скачивали словари часто употребляеммых в качестве паролей слов, использовали их и в который раз убеждались что эффективность использования их достаточно мала - множество хэшей остаются не расшифрованными. Тогда многие переходили к ****у полным перебором и так же убеждались в том, что полный перебор эффективен только в случае короткого пароля и использования ограниченного набора символов, в остальных случаях на обычном компьютере, при скорости перебора 5млн. паролей в сек **** достаточно сложного и длинного пароля может длиться столетиями. У многих наверно возникала мысль, а не сгенирировать ли нам свои словарики? типа lamerwords ? Ну тут сразу встаёт вопрос по каким правилам их генерить? Если полный перебор - это опять же - не хватит места на диске чтоб всё добро это хранить. В этой статье я расскажу как правильно генерировать свои словарики, чтоб процент попадания в них реальных паролей был достаточно высок. Начнём с устоявшихся правил и человеческой психологии: 1.Всё знают и все админы говорят используйте одновременно в пароле буквы и цифры, а ещё лучше и спец символы. 2.Не делайте слишком короткий пароль! Обычный не далёко продвинутый юзер сделает пароль вида lamer_2007 - и что? он не нарушил устоявшихся правил - есть буквы и цифры и длинна 9 символов - что уже не мало (с точки зрения PasswordsPro полный перебор паролей этого диапазона займёт более 10 тыс. дней) Другой возьмёт и использует в пароле номер своей (чужой мобилы) например 9XX-XXXXXXX, что тоже для PasswordsPro является длительной задачей. Многие поняли к чему я клоню. Вроде как определённые правила соблюдаются (длинный пасс, буквы и символы) но пароль для юзера остаётся простым для запоминания и использования и в тоже время недостижимым для PasswordsPro в плане подбора полным перебором. 1. Оцениваем психологию юзверей (или правила продвинутых ламеров в выборе пароля) а) Кому-то лень придумывать пароль и он использует в качестве пароля ник, не забудем про это. б) Более продвинутый ламер использует пароль никxxxx (ник_xxxx, ник-xxxx) - где xxxx - цифры (обычно от 4 до 6 знаков) в) Ещё более продвинутый ламер использует пароль wordxxxx (word_xxxx, word_xxxx) - где word - легко запоминающееся слово, xxxx цифры (обычно от 4 до 6 знаков). г) Многим юзверям просто лень переключать регистр клавиатуры несколько раз и максимум на что они способны - сделать это в начале, т. е. первая буква в пассе (как и у ника) может быть заглавной (но редко). (Word_xxxx) д) Отдельный интерес представляют юзвери, набирающие пароль в латинице но в русской раскладке т. е например kfvth_2007 (т.е. ламер_2007) не будем забывать и про таких. Вывод, как мы видим типичный пароль продвинутого ламера представляет следующую конструкцию xyz, где: x - слово, ник и т.п. от 4 до 8 символов у - спецсимвол, чаше всего "-", "_" а может и совсем отсутствовать. z - число от 4 до 6 знаков (в качестве 4-х цифр чаще может быть использован год рождения или год регистрации), в качестве 6 например дата рождения (в формате ДДММГГ или ГГММДД) Всё изложенное в п.1 о тех, кто придумывал пароли сам для лёгкого запоминания, не пользовался менеджерами и генераторами паролей (или в тот момент у них небыло их под рукой). 2. Подготовка. Ставим задачу сгенерировать словари, удовлетворяющие этим условиям, которые могут содержать потенциальные пароли продвинутых ламеров. а) Начнём пожалуй с третей части пасса, т. е. с цифр. Если ламер использовал год то, имхо есть смысл ограничится годами его возможного рождения или регистрации. Выбираем возростной порог юзверя 40 лет к примеру. В этом случае диапазон годов рождения будет 1967-2007 и составит всего 41 возможное значение. Далее если дата рождения в формате ДДММГГ диапазон дат составит 010167 - 020307 и возможных значений тут будет больше - 14671. Отдельно тут надо упомянуть о незначащем нуле в начале. Вряд ли кто будет его кто-то использовать в наборе своей даты рождения, так что есть смысл его опустить (в этом случае получим пятизначную цифренную часть пасса). Вообщем путём несложных манипуляций с Exel и обычным блокнотом, я за 5 мин. получаю все возможные мне значения (кто неумеет пользоваться может написать прогу генерирующую нужные даты): А именно: четырёхзначные в формате ГГГГГ (41 значение) Пятизначные в формате ДММГГ (4340 значений) Шестизначные в формате ДДММГГ (10331 значений) Шестизначные в формате ГГММДД (14671 значений) по поводу нуля перед годом, имхо отбрасывать не стоит - редко кто пишет год одной цифрой. Предложенные мной варианты числовой части пасса - сугубо моё личное представление, наиболее, как мне кажется лучше отвечающее реальности (вы можете генерировать любые, всё зависит от вашей фантазии, главное чтоб в цифрах была хоть какая-то логика) Итого получаем 41+4340+10331+14671=29383 значение возможной третей части пасса. Записываем их построчно (копи-пастим конечно ;-)) в блокнот, сохраняем в файл и получаем файл z.txt размером всего 226 Кб. - он содержит даты рождения или даты регистрации юзверя возрастом до 40 лет в предложенных мной форматах. Ах, да, не забудем про дубли (вполне возможно они присутствуют так как инвертировали формат даты). Для очистки дублей (да и не только) я воспользуюсь утилитой V-ListmakeR (вообще-то она для генерации листов для ****а асек вида UIN;PASS, но там есть модуль работы со словарями и джоинер). Итого после убиения дублей остается 19052 значения, а размер сокращается до 144КБ. б) Ну а с первой частью всё понятно - берём все имеющиеся у вас пассы или ники и режем их до 8 символов (при необходимости, или отфильтровываем то что больше восьми). Хочу заметить что вам нужно будет собрать их в один файл, так как потом нам потребуется склейка с третьей частью. И хочу обратить внимание не переборщите с количеством значений в этом файле, так как при склейке размер у нас будет расти в геометрической прогрессии. Я для примера беру ники Ачатовцев, кто в онлайн в данный момент, убираю запятые, загоняю в файл, получается всего 59 значений :D , обзываю x.txt. Всё готово для генерации словарей. 3. Сборка словарей. Генерим (склеиваем) с помощью того же V-ListmakeR (оказывается от клеит не только номер;пасс, а всё что угодно). Выбираем вкладку JoineR Load Unins File грузим Ваш x.txt, Load Pass File грузим z.txt. В качестве сепаратора (разделитель) выбираем любой спецсимвол, я взял "_". Клацаем Save To xyz.txt, нажимаем Start и ждём. Итого у меня получился словарь состоящий из потенциально возможных паролей ачатовцев ;-) (включающий ник и дату рождения). Всего 1124068 слов (значений). Размер файла 17,1 МБ Используя разные сепараторы вы можете наделать себе сколь угодно много таких словарей. Заключение Многие скажут, зачем такой гимор ведь всё есть в PasswordsPro (они имеют ввиду комбинированную атаку по словарям). Им отвечу: во-первых посмотрите на скорость работы при такой атаке. Во вторых там идёт много перестановок слов из словарей, что нам не требуется! Также нам не всегда подойдёт то, что может сгенирировать генератор словарей, а также генератор паролей, даже если использовать генерацию по маске "символы(8):спецсимвол(1):число(6)" (то есть маска ?l?l?l?l?l?l?l?l?s?d?d?d?d?d?d) Вы получите кучу отличных паролей и ИМХО врядли туда попадёт хоть один наш продвинутого ламера! (Собственно для этого генератор и сделан ;-), чтоб генерировать хорошие пароли, а вот словари из него я не уверен что хорошие будут). Кстати таким же образом делаем словарик, включающий все возможные номера известных операторов сотовой связи (большой наверно будет). Пример пример -=lebed=-_010100 -=lebed=-_010101 -=lebed=-_010102 -=lebed=-_010103 -=lebed=-_010104 -=lebed=-_010105 -=lebed=-_010106 -=lebed=-_010107 -=lebed=-_010167 -=lebed=-_010168 -=lebed=-_010169 -=lebed=-_010170 -=lebed=-_010171 -=lebed=-_010172 -=lebed=-_010173 -=lebed=-_010174 -=lebed=-_010175 -=lebed=-_010176 .............................. Дрэгги_91290 Дрэгги_91291 Дрэгги_91292 Дрэгги_91293 Дрэгги_91294 Дрэгги_91295 Дрэгги_91296 Дрэгги_91297 Дрэгги_91298 Дрэгги_91299 Егорыч+++_010100 Егорыч+++_010101 Егорыч+++_010102 Егорыч+++_010103 Егорыч+++_010104 Егорыч+++_010105 Егорыч+++_010106 Егорыч+++_010107 Егорыч+++_010167 Егорыч+++_010168 #моястатья