На текущий момент пароли остаются самыми популярным методом аутентификации. Атака перебора паролей по словарю также стара как мир и существует множество механизмов защиты от подобного вида атак. Однако возможны ситуации, когда брутфорс (bruteforce) весьма эффективен. Словарей паролей для брута можно найти огромное количество на просторах Интернета. Однако в них в большинстве случаев в них будут англоязычные слова, редко применяемые в России, например названия городов США, баскетбольных команд, американских имен и т.д.
Для успешной атаки нам необходимо учитывать территориально-лингвистические особенности использования паролей. Предположим, что мы провели разведку по открытым источникам и нашли резюме системного администратора компании ООО “Ромашка” Владимира Ягодичкина из города Томск, в дальнейшем изучив его страницу в соц. сети соберем небольшой словарь исходя из полученной информации. Очень часто пользователями задают пароли по названиям хобби, любимых животных, футбольных команд, городов, имен т.д. Анализируя фотографии, аудиозаписи, публикации, а также членство в сообществах мы выяснили информацию о объекте исследования и теперь формализуем ее в заготовки для будущей базы паролей:
- Имя – Владимир -> Vladimir, Volodya, Vovka. Vova.Vovchik, Vov4ik
- Живет в городе Томск -> Tomsk, компания ООО “Ромашка” -> Romashka, LLCRomashka
- Его жену зовут зовут Лариса – Larisa, детей – Игорь и Глеб -> Igor,igorek, Gleb ,Glebushka собаку зовут Шерри -> Sherry, Sher, Sherra
- Объект подписан на фан клуб любителей автомобилей Lada -> Lada, Vaz, Sedan, Vesta, Largus, Granta
- Судя по публикациям, болеет за ФК Локомотив -> FCLokomotiv, Lokomotiv, Paravoz, Loko, Syomin, Smolov, Barinov, Miranchuk, Gilerme
- Политические взгяды объекта исследования указаны как коммунистические -> Lenin, Stalin, Marks, USSR, Сommunism, KPRF,KPSS, KGB, Zyuganov
В результате из полученных данных составляем список:
Vladimir Volodya Vovka Vova Vovchik Vov4ik Tomsk Romashka LLCRomashka Larisa Igor igorek Gleb Glebushka Sherry Shery Sherka Shera Lada Vaz Sedan Vesta Largus Granta FCLokomotiv Lokomotiv Paravoz Loko Syomin Smolov Barinov Miranchuk Gilerme Lenin Stalin Marks USSR Сommunism KPRF KPSS KGB Zyuganov
Учитывая тот факт, что пароли могут задаваться “русскими буквами в английской расскладке” дублируем уже составленный список на основе указанного критерия:
Dkflbvbh Djkjlz Djdrf Djdf Djdxbr Djd4br Njvcr Hjvfirf JJJHjvfirf Kfhbcf Bujh bujhtr Ukt, Ukt,eirf Ithhb Iths Ithrf Ithf Kflf Dfp Ctlfy Dtcnf Kfhuec Uhfynf ARKjrjvjnbd Kjrjvjnbd Gfhfdjp Kjrj C`vby Cvjkjd <fhbyjd Vbhfyxer Ubkthvt Ktyby Cnfkby Vfhrc ECCH Rjvveybpv RGHA RGCC RU< P.ufyjd
Далее объединяем оба списка в один и сохраняем wordlist.txt. Стоит отметить, что наш словарь составил лишь 84 слова и создан для примера. Понятно, что для эффетивного словаря необходимо куда большее колличество слов, например если словарь создается под определенную организацию необходимо указать все города присутсвия, выпускаемую продукцию, наименование используемых сервисов, структурных подразделений, список имен в соответствии с территориальным расположением (например в республике Башкортостан, помимо русских имен популярны такие как: Эмир, Амир, Шариф, Тагир, Самир, Рамазан), также крылатые фразы, профессиональный слэнг, текущие тренды, (например COVID19) и т.д.
Для дальнейшей модификации созданного wordlist.txt в более эффективный словарь в соответствии с парольной политикой и возможной замены некоторых символов букв на спец символы (например a=@) воспользуемся программным обеспечением Mentalist. https://github.com/sc0tfree/mentalist. Mentalist является графическим инструментом для создания словарей для брута. Он использует общие человеческие парадигмы для создания паролей и формирует из них список слов, а также правила, совместимые с Hashcat и John the Ripper. Возможна как установка на Linux, так и запуск на Python Windows.
Для примера снова вновь созданного wordlist.txt , в котором после слова идёт от 2 до 4 цифр и в котором буквы замены на специальные символы.
После запуска, в первую очередь необходимо заменить дефолтный список английских слов нашим подготовленным набором слов. Удаляем English Dictionary, нажимает “+” справа от Base Words, выбираем Custom fileи выбираем файл worklist.txt
Затем жмём на “+” справ от кнопки Process и выбираем Append. Затем на появившемся блоке нажимаем на “+” , выберем Number -> User Defined…
В появившемся окне зададим значения от 1 до 9999 с нулями в каждой ячейке, чтобы в конце слова добилось 4 цифры
Добавим начало слов специальные символы “!“,“#“,“*“. Для этого справа от Prepend выберем Special Characters…
И в появившемся окне выберем необходимые символы:
Теперь заменим буквы на специальные символы, а именно a=”@”, s=“$“, o=“0“, i=“1“, для этого справа от кнопки Process нажмем “+” и выбираем Substitution, затем жмем на “+” на новом блоке и выбираем Replace All Instances…
Далее указываем интересующие нас символы:
Если указать параметр One at a time, меняться будет первый символ из слова и потом это слово будет отправляться далее по конвейеру, затем будет делаться замена во следующем символе и слово вновь будет отправлено далее по конвейеру. Если указать All together то все буквы из слова преобразуются в специальные символы, его мы и укажем. Стоит сразу отметить, что замена букв в специальные символы относительно второго блока слов (“русскими буквами в английской раскладке”) не эффективна, однако мы преследуем сугубо академические цели, поэтому применим наши правила ко всему списку.
После конфигурирования всех нужных правил нажимаем на кнопку Process, выбираем Full Wordlist и куда сохранить результаты формирования словаря. В результате получаем словарь из 2 519 748 слов, размером 31 MB.
Сформированный словарь можно использовать для получения доступа к информационным системам, которые, например, администрирует и сопровождает наш объект исследования Владимир Ягодичкин (в целях аудита информационной безопасности конечно же). Сразу отметим, что рассмотрены не все возможности указанного инструмента. Для более подробного ознакомления: https://github.com/sc0tfree/mentalist/wiki
Люби ИБ, уважай ИТ!
¯_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.