- Создание и нормализация словарей. Выбираем лучшее, убираем лишнее
- Инструменты
- Когда под рукой нет утилит
- Инструменты Kali Linux
- Список инструментов для тестирования на проникновение и их описание
- Списки слов (словари)
- Словарь rockyou
- Словари BruteX
- Словари DIRB
- Словари DirBuster
- Словарь Fern Wifi Cracker
- Списки слов от Metasploit
- Словари для перебора баз данных (таблиц, полей и прочего)
- Словари Ncrack
- Списки слов Nmap
- Словари Wfuzz
- Словари дефолтных учётных записей для роутеров
- Словари паролей
- Утёкшие пароли
- Популярные пароли длиной 10 и более символов
- Словари для поиска панелей управления (админок, административных панелей)
- Прочее, не-хакерские словари
- Списки Facebook
- Коллекция английских слов, разделённых на различные тематические категории.
- Коллекция некоторых популярных списков слов для брут-форса, таких как RDP пароли, список имён пользователя, SSH пароли.
- Разное
- Генерация словарей
Создание и нормализация словарей. Выбираем лучшее, убираем лишнее
Использование подходящих словарей во время проведения тестирования на проникновение во многом определяет успех подбора учетных данных. В данной публикации я расскажу, какие современные инструменты можно использовать для создания словарей, их оптимизации для конкретного случая и как не тратить время на перебор тысяч заведомо ложных комбинации.
Инструменты
Пожалуй, один из самых известных инструментов для быстрого создания словарей. Он по умолчанию входит в популярный дистрибутив для проведения пентеста Kali Linux.
Инструмент работает в нескольких режимах:
Создание словаря, состоящего из перечисленных символов, например чисел
Создается словарь длиной от четырех до пяти цифр.
Создание словаря по шаблону
Сперва указывается длина пароля — 10 символов. Затем перечисляются наборы символов: буквы в нижнем регистре, буквы в верхнем регистре, цифры и спецсимволы. Ключ -t задает шаблон, где
- ^ — спецсимволы
- @ — буквы в нижнем регистре
- , — буквы в верхнем регистре
- % — цифры
И третий режим работы crunch — перестановки.
Словарь состоит из всех возможных комбинаций слов Alex, Company и Position.
Подробнее изучить инструмент можно через стандартные man страницы, они достаточно подробные.
Иногда требуется указать не только наборы под конкретный тип символов, а вообще свой набор, включающий и буквы, и цифры, и спецсимволы. В этом случае можно воспользоваться утилитой maskprocessor от брутфорсера hashcat. Скачать ее можно с официального гитхаба hashcat.
Вы можете задать до четырех собственных наборов символов и использовать готовые наборы
Или можно задать набор из цифр, но добавить к нему еще несколько спецсимволов так
Получаем такой результат
John the Ripper
Популярный брутфорсер John the Ripper (JTR) тоже позволяет генерировать словари на основе правил. Делается это при помощи ключа —rules, а сами правила описываются в файле john.conf
Вот так выглядит стандартное правило, используемое для взлома NTLM хэша
В первой строчке сказано, что нужно изменить регистр символа на нулевой позиции (T0), символ Q позволяет не допустить дубликатов в результирующем словаре. Во второй строке символ на первой позиции меняет свой регистр, затем скобки задают препроцессор, чтобы были сгенерированы пароли и с измененным нулевым символом и так далее.
Предположим, вы успешно провели брутфорс LM хэша и получили значение QWERTY123, так как для LM регистр не важен.
Но для авторизации вам нужно провести брутфорс NTLM хэша, где регистр имеет значение. Воспользовавшись правилом, описанным выше, можно получить следующий словарь
JTR по умолчанию содержит множество готовых правил, но можно написать и свои, либо взять за основу уже написанное и скорректировать под текущую ситуацию.
Подробно про синтаксис правил можно почитать здесь.
Еще одним полезным инструментом является набор утилит от популярного брутфорсера hashcat.
Рассмотрим некоторые их них. Описания всех утилит на английском языке можно найти тут.
combinanor.bin — позволяет генерировать словарь из слов, входящих в два других словаря.
combinanor3.bin делает то же самое, но на вход принимает три файла, вместо двух.
combipow.bin — создает все возможные комбинации из слов, перечисленных в файле (похоже на ключ -p в crunch)
cutb.bin — обрезает слова в словаре до указанной длины. Можно указывать смещение (offset)
expander.bin — получает на ввод слова, разбирает их на символы, комбинирует и отправляет в STDOUT
permute.bin — создает словарь, который используется hashcat при атаке типа Permutation attack. Перед использованием словарь нужно пропустить через утилиту prepare.
gate.bin — разбивает словарь на несколько частей для параллельной обработки несколькими ядрами или несколькими машинами. В примере ниже мы разбиваем стандартный словарь JTR на две части. В первую часть попадают слова под номером 0, 2, 4, 6,…. Во вторую 1, 3, 5, 7,…
len.bin — оставляет в словаре только слова определенной длины от min до max
mli2.bin — объединяет два словаря.
req-include.bin — крайне полезный инструмент, который убирает из словаря все, что не подходит под заданные правила. Например, вы знаете, что по парольной политике в пароле обязательно присутствует буква в верхнем регистре, цифра и спецсимвол.
Число выбрано исходя из таблицы
Если таким образом нормализовать известный словарь rockyou, то можно сократить его размер в 270 раз! и не тратить ресурсы на заведомо ложные комбинации.
req-exclude.bin делает то же самое, что req-include, но с точностью до наоборот.
rli.bin — эта утилита удаляет значения из первого словаря, если они встречаются во втором. Полезно использовать, если вы создаете один словарь из нескольких.
Когда под рукой нет утилит
Может оказаться так, что воспользоваться набором hashcat-utils или crunch нет возможности, а нужно срочно создать словарь или нормализовать его. Некоторые алгоритмы довольно сложны в реализации, но базовые операции можно выполнить просто в командной строке.
Простой словарь с датами можно создать серией подобных команд
Если нужно разбить словарь на части для параллельной обработки, можно воспользоваться командой split
Быстро объединить два словаря можно так
Чтобы сделать заглавной первую или последнюю буквы в каждом слове, нужно выполнить, соответственно, команды
Для перевода регистра в нижний нужно заметить «u» на «l»
Дописать что-то в начало каждого слова из словаря можно так
А так можно дописать слово в конец
Следующей командой можно добавить в начало число от 0 до 99 к каждому слову в словаре
Можно очистить словарь от значений, в которых не присутствует хотя бы 2 числа так
Это лишь некоторые примеры. Можно писать более сложные обработки на Python и других скриптовых языках. Но всегда нужно помнить, что создание качественного словаря и его нормализация под целевой протокол — важный этап при проведении тестирования на проникновение.
Источник
Инструменты Kali Linux
Список инструментов для тестирования на проникновение и их описание
Списки слов (словари)
Атака по словарю значительно ускоряет и в целом повышает шансы успешности взлома пароля методом перебора. Не может быть одного самого лучшего словаря – под разные ситуации требуются разные словари.
Словарь rockyou
Словарь от создателей rockyou является универсальным словарём, хорошо подходящим, например, для атаки на пароль Wi-Fi или веб-службы. В Kali Linux данный пароль размещён в (сжатом) файле /usr/share/wordlists/rockyou.txt.gz
На любую другую систему его можно установить командой:
Словарь rockyou нужно оптимизировать и очищать для использования под конкретные нужды. Например, если мы знаем, что длина пароля в веб службе составляет от 8 до 30 символов и что обязательно должны использоваться символы как минимум из двух групп (большие буквы, маленькие буквы, цифры, знаки), то очистка rockyou с помощью PW-Inspector будет выглядеть так:
Оптимизация для взлома Wi-Fi будет выглядеть следующим образом. Считываем в стандартный вывод пароли из файла rockyou.txt (cat rockyou.txt), сортируем их (sort), и удаляем повторяющиеся (uniq), из оставшихся паролей выбираем те, которые 8 или более символов, но менее 63 символов (-m 8 -M 63), полученный список сохраняем в файл newrockyou.txt (> newrockyou.txt):
Словари BruteX
Программа BruteX поставляется с подборкой словарей для брут-форса удалённого входа в различные службы и веб-приложения. Посмотреть доступные словари можно здесь: https://github.com/1N3/BruteX/tree/master/wordlists
Там имеются словари:
- ftp-default-userpass.txt
- mssql-default-userpass.txt
- mysql-default-userpass.txt
- namelist.txt
- nameslist.txt
- oracle-default-userpass.txt
- password.lst
- password_medium.txt
- password_weak.txt
- postgres-default-userpass.txt
- simple-users.txt
- snmp-strings.txt
- windows-users.txt
Словари DIRB
DIRB — это сканер веб-контента. Он ищет существующие (возможно, скрытые) веб-объекты. В основе его работы лежит поиск по словарю, он формирует запросы к веб-серверу и анализирует ответ.
Т.е. словари DIRB предназначены, в первую очередь, для поиска разнообразных файлов и папок веб-сайтов и веб-приложений, веб-серверов.
Словари DirBuster
DirBuster — это многопотоковое Java приложение, предназначенное для брутфорса имён директорий и файлов веб-приложений и веб-серверов. DirBuster пытается найти скрытые каталоги и файлы.
В Kali Linux словари располагаются в директории /usr/share/wordlists/dirbuster/. В BlackArch словари располагаются в директории /usr/share/dirbuster/.
Описание словарей, поставляемых с программой DirBuster
- directory-list-2.3-small.txt — (87650 слов) — Директории/файлы которые были найдены как минимум на трёх разных хостах
- directory-list-2.3-medium.txt — (220546 слов) — Директории/файлы которые были найдены как минимум на двух разных хостах
- directory-list-2.3-big.txt — (1273819 слов) — Все директории/файлы которые были найдены
- directory-list-lowercase-2.3-small.txt — (81629 слов) — Версия не чувствительная к регистру для directory-list-2.3-small.txt
- directory-list-lowercase-2.3-medium.txt — (207629 слов) — Версия не чувствительная к регистру для directory-list-2.3-medium.txt
- directory-list-lowercase-2.3-big.txt — (1185240 слов) — Версия не чувствительная к регистру для directory-list-2.3-big.txt
- directory-list-1.0.txt — (141694 слов) — Оригинальный список без изменения порядка
- apache-user-enum-1.0.txt — (8916 имён пользователей) — Используется для предположения имён пользователей apache на котором включён модуль userdir, основывается на набранных именах пользователей (неупорядоченный)
- apache-user-enum-2.0.txt — (10341 имён пользователей) — Используется для предположения имён пользователей apache на котором включён модуль userdir, основывается на
XXXXX найденном во время генерации списка (упорядоченный)
Словарь Fern Wifi Cracker
Словарь, поставляемый с программой Fern Wifi Cracker предназначен для взлома Wi-Fi. Это очень небольшой словарь, но тем не менее, он нуждается в очистке, поскольку содержит слова короче 8 символов, которые точно не подходят для пароля Wi-Fi.
Списки слов от Metasploit
Названия словарей имеют говорящие названия. В основном эти словари предназначены для брут-форса удалённого входа в различные службы, имеются неплохие универсальные словари с именами пользователей и паролями.
Словари для перебора баз данных (таблиц, полей и прочего)
C sqlmap поставляются заточенные для баз данных словари, они размещены по пути /usr/share/sqlmap/txt/
Список словарей sqlmap
- common-columns.txt
- common-outputs.txt
- common-tables.txt
- keywords.txt
- smalldict.txt
- user-agents.txt
- wordlist.txt
Словари Ncrack
Программа Ncrack имеет качественные списки слов для брутформа удалённых служб. Словари располагаются в директории /usr/share/ncrack/ и разделены на имена пользователей и пароли.
Списки слов Nmap
Nmap поставляется с несколькими списками, среди которых имеется словарь с паролями. На Kali Linux все они размещены в папке /usr/share/nmap/nselib/data/.
Словари Wfuzz
Wfuzz – это ещё один бурт-форсер веб-приложений. В папке /usr/share/wfuzz/wordlist/ можно найти разные подборки, в том числе слова, которые могут быть именами или паролями.
Словари дефолтных учётных записей для роутеров
Заводские (стандартные) имена пользователей и паролей встречаются на роутерах очень часто.
Программа Router Scan by Stas’M содержит хорошие подборки для digest и basic аутентификации.
Ещё есть много сайтов, где можно найти заводские пароли для роутеров. Например, можно воспользоваться этим. А этот сайт позволяет легко парсить дефолтные пароли под разные устройства.
Словари паролей
Эти словари поставляются с инструментами/червями и т.п., предназначены для взлома паролей.
Имя | Название файла / ссылка на скачивание | Примечание |
---|---|---|
John the Ripper | john.txt.bz2 (10,934 bytes) | Простой, очень хороший, предназначен для модификаций |
Cain & Abel | cain.txt.bz2 (1,069,968 bytes) | Довольно всеобъемлющий, не упорядоченный |
Червь Conficker | conficker.txt.bz2 (1411 bytes) | Использовался червём Conficker для распространения — низкого качества |
500 самых плохих паролей | 500-worst-passwords.txt.bz2 (1868 bytes) | |
370 паролей, запрещённых в Twitter | twitter-banned.txt.bz2 (1509 bytes) |
Утёкшие пароли
Утёкшие или украденные с сайтов пароли. Из списков намеренно удалены имена / почтовые адреса и т.д.
Лучшее их применение – это генерация или тестирования списков словарей.
Примечание: Даты приблизительные.
Имя | Название файла / ссылка на скачивание | Дата | Примечание |
---|---|---|---|
Rockyou | rockyou.txt.bz2 (60,498,886 bytes) | 2009-12 | Лучший из доступных списков; огромный, украдены в незашифрованном виде |
Rockyou со счётчиком | rockyou-withcount.txt.bz2 (59,500,255 bytes) | ||
phpbb | phpbb.txt.bz2 (868,606 bytes) | 2009-01 | Отсортированы по частоте использования Взломаны Brandon Enright из md5 (покрытие 97%+) |
phpbb со счётчиком | phpbb-withcount.txt.bz2 (872,867 bytes) | ||
phpbb с md5 | phpbb-withmd5.txt.bz2 (4,117,887 bytes) | ||
MySpace | myspace.txt.bz2 (175,970 bytes) | 2006-10 | Получены фишингом |
MySpace — со счётчиком | myspace-withcount.txt.bz2 (179,929 bytes) | ||
Hotmail | hotmail.txt.bz2 (47,195 bytes) | Неизвестно | Не до конца понятно, как они были украдены |
Hotmail со счётчиком | hotmail-withcount.txt.bz2 (47,975 bytes) | ||
Faithwriters | faithwriters.txt.bz2 (39,327 bytes) | 2009-03 | Религиозные пароли |
Faithwriters — со счётчиком | faithwriters-withcount.txt.bz2 (40,233 bytes) | ||
Elitehacker | elitehacker.txt.bz2 (3,690 bytes) | 2009-07 | Часть из zf05.txt |
Elitehacker — со счётчиком | elitehacker-withcount.txt.bz2 (3,846 bytes) | ||
Hak5 | hak5.txt.bz2 (16,490 bytes) | 2009-07 | Часть из zf05.txt |
Hak5 — со счётчиком | hak5-withcount.txt.bz2 (16,947 bytes) | ||
Älypää | alypaa.txt.bz2 (5,178 bytes) | 2010-03 | Финские пароли |
alypaa — со счётчиком | alypaa-withcount.txt.bz2 (6,013 bytes) | ||
Facebook (Pastebay) | facebook-pastebay.txt.bz2 (375 bytes) | 2010-04 | Найдены на Pastebay; судя по всему, украдены зловредным ПО. |
Facebook (Pastebay) — со счётчиком | facebook-pastebay-withcount.txt.bz2 (407 bytes) | ||
Unknown porn site | porn-unknown.txt.bz2 (30,600 bytes) | 2010-08 | Найдены на angelfire.com. Неизвестно, откуда они, но определённо с порно сайта. |
Unknown porn site — со счётчиком | porn-unknown-withcount.txt.bz2 (31,899 bytes) | ||
Ultimate Strip Club List | tuscl.txt.bz2 (176,291 bytes) | 2010-09 | Спасибо Mark Baggett за находку! |
Ultimate Strip Club List — со счётчиком | tuscl-withcount.txt.bz2 (182,441 bytes) | ||
[Facebook Phished] | facebook-phished.txt.bz2 (14,457 bytes) | 2010-09 | Спасибо Andrew Orr за наводку |
Facebook Phished — со счётчиком | facebook-phished-withcount.txt.bz2 (14,941 bytes) | ||
Carders.cc | carders.cc.txt.bz2 (8,936 bytes) | 2010-05 | |
Carders.cc — со счётчиком | carders.cc-withcount.txt.bz2 (9,774 bytes) | ||
Singles.org | singles.org.txt.bz2 (50,697 bytes) | 2010-10 | |
Singles.org — со счётчиком | singles.org-withcount.txt.bz2 (52,884 bytes) | ||
Unnamed financial site | (reserved) | 2010-12 | |
Unnamed financial site — со счётчиком | (reserved) | ||
Gawker | (reserved) | 2010-12 | |
Gawker — со счётчиком | (reserved) | ||
Free-Hack.com | (reserved) | 2010-12 | |
Free-Hack.com со счётчиком | (reserved) | ||
Carders.cc (second time hacked) | (reserved) | 2010-12 | |
Carders.cc со счётчиком (second time hacked) | (reserved) |
Популярные пароли длиной 10 и более символов
Данный список содержит 2344 пароля. Он используется в качестве стоп-слов платформой Discourse.
Словари для поиска панелей управления (админок, административных панелей)
Словарь возможных адресов страниц, через которые может осуществляться вход в панель управления. Он собран из нескольких источников: список из jSQL Injection, а также из программы DW Admin and Login Finder v1.1.
Прочее, не-хакерские словари
Это списки слов (и т.п.), не паролей. Они могут пригодиться при определённых обстояотельствах.
Имя | Название файла / ссылка на скачивание | Примечание |
---|---|---|
English | english.txt.bz2 (1,368,101 bytes) | Сборка из списков от Andrew Orr, Brandon Enright и Seth |
German | german.txt.bz2 (2,371,487 bytes) | Собрал Brandon Enright |
American cities | us_cities.txt.bz2 (77,081 bytes) | Сгенерировал RSnake |
«Porno» | porno.txt.bz2 (7,158,285 bytes) | Самая большая коллекция порно паролей! Создал Matt Weir |
Honeynet | honeynet.txt.bz2 (889,525 bytes) | Из приманки, запущенной Joshua Gimer |
Honeynet — со счётчиком | honeynet-withcount.txt.bz2 (901,868 bytes) | |
File locations | file-locations.txt.bz2 (1,724 bytes) | Потенциальное размещение лог файлов (для локального внедрения файлов и т.п.). Спасибо Seth! |
Fuzzing strings (Python) | fuzzing-strings.txt.bz2 (276 bytes) | Спасибо Seth! |
PHPMyAdmin locations | phpmyadmin-locations.txt.bz2 (304 bytes) | Потенциальное размещение phpMyAdmin. Спасибо Seth! |
Web extensions | web-extensions.txt.bz2 (117 bytes) | Популярные расширения для веб-файлов. Спасибо dirb! |
Web mutations | web-mutations.txt.bz2 (177 bytes) | Популярные «мутации» для веб-файлов Спасибо dirb! |
Списки Facebook
Для разных целей, все списки отсортированы по частоте встречаемости.
Имя | Название файла / ссылка на скачивание | Дата | Примечание |
---|---|---|---|
Full names | facebook-names-unique.txt.bz2 (479,332,623 bytes) | 2010-08 | |
Full names — w/ count | facebook-names-withcount.txt.bz2 (477,274,173 bytes) | ||
First names | facebook-firstnames.txt.bz2 (16,464,124 bytes) | 2010-08 | |
First names — w/ count | facebook-firstnames-withcount.txt.bz2 (73,134,218 bytes) | ||
Last names | facebook-lastnames.txt.bz2 (21,176,444 bytes) | 2010-08 | |
Last names — w/ count | facebook-lastnames-withcount.txt.bz2 (21,166,232 bytes) | ||
First initial last names | facebook-f.last.txt.bz2 (67,110,776 bytes) | 2010-08 | |
First initial last names — w/ count | facebook-f.last-withcount.txt.bz2 (66,348,431 bytes) | ||
First name last initial | facebook-first.l.txt.bz2 (37,463,798 bytes) | 2010-08 |
Коллекция английских слов, разделённых на различные тематические категории.
Альтернативный вариант (версия может оказаться более свежей):
Коллекция некоторых популярных списков слов для брут-форса, таких как RDP пароли, список имён пользователя, SSH пароли.
Альтернативный вариант (версия может оказаться более свежей):
Разное
В Kali Linux имеется директория /usr/share/dict/, в ней также имеются ещё парочка словарей.
Генерация словарей
Для генерации собственных словарей можно использовать программы Hashcat, crunch, statsprocessor, maskprocessor, PACK и другие.
Источник