В этой статье пойдет речь о популярных словарях для тестирования на проникновение. Читатели узнают, какие списки слов лучше всего использовать при пентестинге.
Введение
С тех пор как началась эволюция тестирования на проникновение, одной из привычных вещей стало получение злоумышленником пароля цели и использование ее аккаунта. В большинстве случаев атаки в фильмах и сериалах часто показываются как простое и быстрое действие, которое занимает всего несколько минут. Независимо от того, насколько простой взлом паролей следует выполнить, он всегда становится проклятием для веб-приложений. Сегодня есть некоторое подобие контроля над безопасностью веб-проектов с помощью CAPTCHA или ограничения скорости передачи данных, но все же многие атаки остаются возможными для выполнения. Одними из самых популярных среди них являются нападения на базе wordlists («списков слов» или «словарей»).
Что собой представляет wordlist?
Wordlist – это файл (в большинстве случаев текстовый, но не всегда), содержащий набор значений, которые злоумышленник использует для проверки корректности учетных данных. Всякий раз, когда хакер сталкивается с процессом аутентификации, он пытается обойти его, но если это невозможно, то ему нужно попробовать угадать и подобрать нужный вариант данных пользователя. У хакера есть список широко используемых учетных данных, чем и является wordlist . И вместо того, чтобы вручную вводить значения одно за другим, злоумышленник использует инструмент или скрипт для автоматизации данного процесса. Аналогично, в случае взлома хэш-значений специальная программа применяет списки слов и кодирует их записи в один и тот же хэш, а затем использует функцию сравнения строк для сопоставления полученных хэшей. Если совпадение найдено, то хэш считается взломанным. Следует сказать, что правильно подобранный wordlist является огромной угрозой для безопасности веб-приложения.
Словари Kali Linux
Поскольку Kali Linux был специально создан для проведения тестирования на проникновение, в системе есть всевозможные словари. Это происходит из-за того, что различные инструменты уже установлены в ОС для выполнения атак брутфорс для получения логинов, каталогов и не только. Теперь следует познакомиться с некоторыми из словарей из огромного арсенала wordlists, доступного на Kali Linux.
Wordlists находятся в каталоге «/usr/share» . Здесь нужно найти другой каталог «dirb » со списком слов, которые будут использоваться при применении инструмента drb для перебора каталогов. Кроме того, у пользователя есть dirbuster , который является аналогичным инструментом и способен выполнить такую же атаку брутфорс, но с некоторыми дополнительными опциями. Каталог «fern-wifi » поможет хакеру сломать аутентификацию Wi-Fi. Есть Metasploit , который использует словари для выполнения различных атак. Затем есть wordlist от nmap , который содержит слова, что можно применить при сканировании уровня безопасности конкретных служб. Стоит также отметить, что есть словарь «rockyou ». По умолчанию информация в нем сжата, нужно извлечь ее перед использованием этого списка слов. Он очень большой, содержит около 1,44,42,062 различных вариантов паролей, актуальных для многих учетных записей пользователей в Интернете. Наконец, есть каталог «wfuzz », словари в котором можно использовать вместе с инструментом wfuzz .
Расположение: /usr/share/wordlists
Словари Dirb
Чтобы поближе рассмотреть один из каталогов, пользователь вводит команду «tree » для перечисления всех списков слов внутри каталога dirb . Здесь есть разные словари, которые отличаются друг от друга по своему размеру и языкам. Существует также wordlist расширений, так что злоумышленник может использовать этот каталог для выполнения атаки брутфорс на каталоги. Есть словари для конкретных приложений, такие как apache.txt или sharepoint.txt .
Расположение: /usr/share/wordlists/dirb
Словарь Rockyou
Rockyou.txt – это набор скомпрометированных паролей для социальных сетей от разработчика приложений, также известного как RockYou . Он разработал виджеты для приложения Myspace . В декабре 2009 года компания столкнулась с утечкой данных, в результате чего было раскрыто более 32 миллионов учетных записей пользователей. Это случилось главным образом из-за политики компании, связанной с хранением паролей в незашифрованном виде.
Расположение: /usr/share/wordlists
При первой загрузке Kali Linux wordlist будет сжат в файл формата gz . Чтобы распаковать содержимое файла, следует выполнить команду, приведенную ниже. Словарь будет распакован и готов к использованию с любой атакой, которую захочет выполнить хакер.
gzip -d /usr/share/wordlists/rockyou.txt.gz
Словари Wfuzz
Инструмент Wfuzz был разработан для выполнения атак брутфорс на веб-приложения. Он также может быть использован для перечисления веб-приложений. Программа способна перечислять каталоги, файлы, скрипты. Она может изменить запрос с GET на POST. Это полезная функция в целом ряде сценариев, таких как проверка на наличие SQL-инъекций. Wfuzz имеет набор предопределенных словарей. Они предназначены для использования вместе с инструментом, но могут быть применены и с другой программой. Списки слов делятся на такие категории, как general, injections, stress, vulns, web services.
Расположение: /usr/share/wordlists/wfuzz
Заглянув в каталог инъекций, можно увидеть, что есть словарь «All_attack.txt ». Это общий список слов для тестирования на наличие инъекций. Затем есть конкретный wordlist для SQL, обхода каталогов, XML, XSS-инъекций. Пользователь также видит «big.txt » и «common.txt », что также является списком слов по умолчанию во многих инструментах из-за небольшого размера. Более того, здесь можно увидеть «extensions_common.txt », который содержит словари общих слов расширений для перечисления определенных файлов. Есть также словарь «http_methods.txt ». Он содержит HTTP-методы, такие как POST, GET, PUT. Это можно использовать во время тестирования, если в целевом приложении активны какие-либо неправильно настроенные методы или создатели забыли отключить их на уровне приложения и сервера. Словарь «mutations_common.txt » содержит кучу необычных расширений, которые помогут провести перечисление редких артефактов.
У пользователя также есть список слов «spanish.tx » для перечисления испанских слов/имен/паролей. Другой каталог содержит общие словари, которые могут быть использованы для извлечения имен пользователей или паролей, когда человек забыл свои учетные данные. Далее нужно перейти к каталогу «stress ». Он содержит словари, предназначенные для стресс-тестирования механизма аутентификации. Есть списки слов, которые содержат буквы, цифры, специальные символы и шестнадцатеричные коды для выполнения атаки. В каталоге «vulns » пользователь находит словари, специально созданные для тестирования конкретной уязвимости. Есть такие, как apache wordlist, CGI wordlist, directory wordlist, iis wordlist, oracle9 wordlist, SharePoint wordlist, tomcat wordlist . Пользователь будет использовать эти списки слов в конкретном сценарии, когда он имеет информацию о фреймворке и его версии. Он применяет словарь для нацеливания на определенную точку входа.
Онлайн-словари
Словари GitHub
На Kali Linux есть огромная коллекция словарей. Но иногда даже этого недостаточно. Это может произойти в сценарии, в котором применяется атака нулевого дня. В имеющихся словарях не будет никаких полезных записей. Именно здесь нужно отправиться на поиск wordlists в Интернете, однако это занимает огромное количество времени. Следует заглянуть на GitHub , там другие люди могут создать нужный пользователю словарь. Поиск на GitHub поможет найти новые или конкретные wordlists , которые необходимы для фуззирования определенного фреймворка.
Ссылка: GitHub Wordlists
Seclists
Seclists – это сборник нескольких типов словарей, которые могут быть использованы во время тестирования на проникновение или оценки уязвимости. Эти словари содержат имена пользователей, пароли, URL-адреса, шаблоны конфиденциальных данных, полезные нагрузки fuzzing, веб-оболочки. Для установки на Kali Linux следует использовать команду «apt », за которой следует «seclists », как показано на рисунке ниже.
GitHub: Seclists
apt install seclists
После установки будет создан каталог по имени «Seclists » внутри каталога «/usr/share». Просматривая содержимое, пользователь может увидеть различные категории словарей, такие как Discovery, Fuzzing, IOCs, Misc, Passwords, Pattern Matching, Payloads, Usernames и Web-Shells.
Assetnode Wordlists
Assetnode Wordlists представляют собой словари для целого ряда областей, таких как обнаружение поддоменов и специальных артефактов. Самое приятное, что они обновляются 28-го числа каждого месяца в соответствии с политикой сайта. Это лучший вариант онлайн-словарей, которые были опубликованы с момента появления Seclists. Чтобы скачать все списки слов сразу, любой желающий может воспользоваться следующей командой wget .
Ссылка: Assetnote Wordlists
wget -r --no-parent -R "index.html*" https://wordlists-cdn.assetnote.io/ -nH
PacketStrom Wordlists
Packet Storm Security – это веб-сайт об информационной безопасности, на котором представлены инструменты, эксплойты и рекомендации по защите в сети. Им руководит группа энтузиастов, которые публикуют новости о безопасной разработке веб-приложений и предлагают инструменты для тестирования в различных целях. Помимо этого, на этом ресурсе можно найти различные словари. Любой пользователь, который создал определенный список слов, может выложить его этом сайте.
Ссылка: Pack Strom Security Wordlists
Cleaning Wordlists
До сих пор пользователь знакомился со словарями, которые содержат тысячи записей внутри них. Для тестирования на проникновение на уязвимом сервере или любом CTF, это, возможно, нормально, поскольку слова предназначены для обработки такого рода атаки брутфорс. Однако если речь идет о реальном сценарии, все становится немного сложнее. Как и в реальной жизни, ни одна команда разработчиков или владелец сайта не позволит хакеру выполнять тысячу словесных брутфорсов. Это ухудшит качество обслуживания других клиентов. Таким образом, нужно уменьшить количество записей в словаре. Это звучит контрпродуктивно, но, на самом деле, является правильным решением. Списки слов могут содержать некоторые полезные нагрузки, которые немного превышают размер в 100 символов. Если у пользователя есть полезные нагрузки, которые похожи друг на друга, и он заменит любую из них другой, результат останется тем же. Jon Barber создал скрипт, который может удалять ненужные charters, такие как «! ( , %».
GitHub : CleanWordlist.sh
./clean_wordlists.sh HTML5sec-Injections-Jhaddix.txt
Пользователь может проверить строки, которые были удалены из списка слов инъекции HTML5, используя команду «diff ».
diff HTML5sec-Injections-Jhaddix.txt_cleaned < (sort HTML5sec-Injections-Jhaddix.txt) | more
Создание словарей
CeWL
CeWL – это приложение Ruby, которое паучит заданный URL-адрес на заданную глубину, необязательно следуя внешним ссылкам, и возвращает пользователю список слов, которые могут быть использованы для взломщиков паролей, таких как John the Ripper . CeWL также имеет соответствующее приложение командной строки FAB (Files Already Bagged) , которое применяет такие же методы извлечения метаданных для создания списков авторов/создателей из уже загруженных файлов. В данном примере пользователь нацеливается на определенный URL-адрес и сохраняет выходные данные в словарь под названием «dict.txt ».
GitHub: CeWL – Custom Word List generator
Crunch
Crunch – это генератор списка слов, для которого пользователь может указать стандартный или определенный набор символов. Crunch способен сгенерировать все возможные комбинации цифр, букв и знаков. В данном примере пользователь использовал инструмент для создания списка слов с минимумом 2 и максимумом 3 символами для записи выходных данных внутри списка слов по имени «dict.txt».
Cupp
Слабый пароль может быть очень коротким или включать в себя только буквы и цифры, что и упрощает его расшифровку. Он также может быть легко угадан кем-то, кто следит за пользователем, например, знает его день рождения, прозвище, адрес, имя домашнего животного или родственника. Есть вероятность, что для пароля сработает простое слово, что-то типа «любовь», «деньги» или тот же «пароль». Cupp используют в таких ситуациях, как юридические тесты на проникновение или судебные расследования преступлений. Пользователь будет создавать специальный словарь для взлома человека по имени Raj. Хакер вводит нужные данные, и после отправки у него есть список слов, который генерируется в зависимости от предоставленной информации.
GitHub: CUPP – Common User Passwords Profiler
Pydictor
Pydictor – это один из тех инструментов, которые смогут по праву оценить как новички, так и профессионалы. Это программа для создания словаря, который очень удобно иметь в своем арсенале при работе с тестами на надежность паролей. Она имеет множество функций, которые можно использовать для создания идеального словаря практически для любой тестовой ситуации. В данном примере пользователь установил длину пароля равной 5, а затем – создал список слов. Словарь содержит варианты паролей, соответствующих установленным параметрам.
GitHub: pydictor
Bopscrk
Bopscrk – это инструмент для создания огромных специализированных списков слов для проведения целевых атак. Он является частью Black Arch Linux на протяжении уже многих лет. Пользователь вводит личную информацию, связанную с целью, в то время как инструмент объединяет каждое слово друг с другом и преобразует их в возможные пароли. Он также содержит модуль lyric pass , который дает ему возможность искать тексты песен, связанные с любимым исполнителем цели, а затем включать их в списки слов.
GitHub: Bopscrk
На данном изображении видно, что список слов, который был получен из предоставленных пользователем данных, является точным и с большой вероятностью подойдет для взлома Raj.
BEWGor
BEWGor предназначен для обеспечения безопасности паролей. Это скрипт на Python , который запрашивает у пользователя биографические данные о человеке, называемом «субъектом ». Эти данные затем используются для создания вероятных паролей для этого субъекта. BEWGor в значительной степени основан на технологиях Cupp, но инструменты отличаются друг от друга в некоторых аспектах. BEWGor предоставляет детализированную информацию о человеке, включая учет произвольного числа членов семьи и домашних животных пользователя. Хакеры могут использовать перестановки символов для генерации всевозможных паролей. Кроме того, BEWGor способен генерировать огромное количество паролей, создавать верхние/нижние/обратные вариации введенных значений, сохранять необработанные введенные значения в файл терминов до того, как будут сгенерированы сами вариации, устанавливать верхние и нижние пределы длины выходной строки и проверять правильность введенной информации о дне рождении.
GitHub: BEWGor – Bull’s Eye Wordlist Generator
Спустя некоторое время хакер видит, что у него есть точный список слов для пользователя Raj. Теперь словарь может быть использован для того, чтобы взломать его аккаунт.
Слияние словарей: DyMerge
Простой, но мощный инструмент, написанный исключительно на Python , берет заданные списки слов и объединяет их в один динамический словарь, который затем может быть использован в качестве оружия для успешной атаки на основе словарей (или проведения атаки брутфорс).
GitHub: DyMerge – Dynamic Dictionary Merger
У пользователя есть два списка слов: «1.txt» и «2.txt». Оба содержат по 5 записей в каждом. Человек будет использовать DyMerge для объединения словарей в один.
Пользователь запускает DyMerge, делает словарь «result.txt » результатом слияния двух списков слов «1.txt» и «2.txt». При этом можно заметить, что «result.txt » имеет 10 записей в конечном итоге, как и предполагалось.
Создание словарей: Mentalist
Это инструмент с графическим интерфейсом для создания пользовательских списков слов. Он использует общечеловеческие парадигмы на основе имеющихся в базе паролей для создания новых словарей. Инструмент может предоставить пользователю полный список слов с паролями, кроме того он также способен создать правила, совместимые с Hashcat и John the Ripper.
Mentalist генерирует пароли, соединяя узлы, которые, в свою очередь, принимают форму цепочки. Начальный узел в цепочке называется узлом базовых слов . Каждое базовое слово передается следующему узлу в цепочке по мере его обработки. Именно так слова изменяются во всех списках. После окончания работы над цепочкой он, наконец, записывает результат в указанный файл или преобразует его в определенные правила в соответствии с запросом пользователя.
Hashcat/John Rules
Для оффлайн-взлома иногда полный список слов является слишком большим, чтобы выводить его целиком. В этом случае имеет смысл выводить возможные варианты в правила, чтобы Hashcat или John могли программно сгенерировать словарь.
GitHub: Mentalist
Человек использует в данном случае ОС Windows, чтобы продемонстрировать возможности Mentalist. В качестве базы он выбирает словари английских слов . Программа подсчитывает, что 235 886 возможных ключевых слов можно ввести в качестве пароля, взяв за основу английские словари. Затем хакер настраивает некоторые дополнительные опции, такие как регистр, если он хочет заменить определенные записи или добавить символы.
После запуска инструмента в течение некоторого времени он создавал текстовый файл с именем «dict.txt ». В нем содержатся все пароли, которые можно было сгенерировать, опираясь на введенные данные.
ЧИТАТЬ ВСЕ СТАТЬИ НА САЙТЕ | ПОДПИСЫВАЙТЕСЬ НА НАШ TELEGRAM КАНАЛ