как ускорить перебор паролей в kali linux
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Взлом рукопожатий в Pyrit — самый быстрый способ с использованием графических процессоров и предварительного расчёта хешей
Преимущества использования Pyrit
Взлом захваченных рукопожатий — это единственный способ взлома WPA/WPA2 паролей. Производится он методом брутфорса (перебора паролей).
Кстати, если вы ещё не знакомы с техникой захвата рукопожатий, то обратитесь к статье «Захват рукопожатий (handshake) в Kali Linux».
Поскольку использование брутфорса не гарантирует положительного результата, придумано несколько техник, которые позволяют существенно повысить шансы на успех. К ним относятся:
В Pyrit можно использовать все эти техники — поэтому он является самым быстрым взломщиком WPA/WPA2 паролей, либо входит в двойку сильнейших наравне с oclHashcat.
Другие программы также реализуют эти техники. Например и в oclHashcat и в coWPAtty реализован перебор по словарю. В coWPAtty реализован предварительный расчёт хешей (но отсутствует поддержка использования графических карт). oclHashcat позволяет использовать мощь видеокарт, но не делает предварительный расчёт хешей. Забегаю вперёд, отмечу, что в oclHashcat можно реализовать предварительный расчёт хешей и полученные данные неоднократно использовать для одной точки доступа, для проверки нескольких рукопожатий без увеличения времени на расчёт хешей, как это сделать будет описано позже. Aircrack-ng перебирает по словарю и эффективно использует многоядерные процессоры, но не использует другие «ускорения».
На моей системе oclHashcat делает перебор для взлома WPA/WPA2 паролей со скоростью 31550 H/s, а Pyrit рассчитывает хеши со скоростью 38000-40000 PMKs. Дальнейшая проверка рукопожатий занимает меньше секунды. Из этого видно, что даже при проверке одного хендшейка мы увеличиваем скорость примерно на треть, а если мы хотим проверить несколько рукопожатий для одной ТД, то с oclHashcat всё нужно начинать заново. В Pyrit же каждое новое рукопожатие занимает доли секунды.
Самый быстрый взлом WPA/WPA2 паролей
Мои исходные данные:
Словарь для взлома WPA/WPA2
Я буду использовать словарь rockyou, который поставляется с Kali Linux. Для обучения этого вполне достаточно, а для практических атак могу порекомендовать сгенерированные словари номеров телефонов, сгенерированные словари для конкретных ТД вида имя_ТД+цифры, которые заполняют парольную фразу до восьми символов.
Давайте скопируем лучший файл словаря в каталог root.
Поскольку, согласно требованиям, минимальный пароль WPA2 может быть в 8 символов, давайте пропарсим файл, чтобы отфильтровать любые пароли, которые менее 8 символов и более 63 (на самом деле, вы можете просто пропустить эту строчку, это полностью на ваше усмотрение). Таким образом, мы сохраним этот файл под именем newrockyou.txt.
Давайте посмотрим, как много паролей содержит этот файл:
В нём целых 9606665 паролей.
Оригинальный файл содержит ещё больше.
Там 14344392 паролей. Итак, мы сделали этот файл короче, что означает, мы можем протестировать ТД в более сжатый срок.
Наконец, давайте переименуем этот файл в wpa.lst.
Создаём ESSID в базе данных Pyrit
Сейчас нам нужно создать ESSID в базе данных Pyrit
ВНИМАНИЕ: Если в названии ТД есть пробел, например, “NetComm Wireless”, тогда ваша команда будет вроде этой:
Шикарно, теперь у нас есть ESSID, добавленный в базу данных Pyrit.
Импортируем словарь в Pyrit
Сейчас, когда ESSID добавлен в базу данных Pyrit, давайте импортируем наш словарь паролей.
Используйте следующую команду для импорта предварительно созданного словаря паролей wpa.lst в базу данных Pyrit.
Создайте таблицы в Pyrit, используя пакетный (batch) процесс
Это просто, просто наберите следующую команду
Так как данная операция выполняется на ноуте, я имею 38000-40000 PMKs. Это далеко не предел — настольные компьютеры с хорошей графической картой помогут вам значительно увеличить скорость этих вычислений.
Вы должны быть осторожны, насколько большой ваш файл словаря и насколько ГОРЯЧИЕ ваш процессор и графическая карта. Используйте дополнительное охлаждение, чтобы избежать повреждения.
Процесс взлома с Pyrit
Мы будем применять атаку на рукопожатие (handshake), используя базу данных предварительно посчитанных хешей. После того, как мы выполнили все необходимые шаги по подготовке, запустить атаку стало совсем легко. Просто используйте следующую команду для начала процесса взлома.
Вот и всё. Весь процесс, включающий предварительный расчёт хешей, занял несколько минут. Чтобы пройти по всей таблице базы данных для получения пароля, если он присутствует в словаре, понадобилось меньше секунды. У меня скорость достигла 6322696 PMKs. Это, безусловно, быстрее всего.
Если пароль подобрать не удалось, то сразу пробуем опцию —all-handshakes. Суть её в том, что проверяется не одно (самое лучшее рукопожатие), а вообще все имеющиеся. Дело в том, что даже самое лучшее рукопожатие может оказаться неверно реконструированным. Это приведёт к тому, что пароль присутствует в словаре, но программа не сможет это выявить. Поэтому для проверки всех доступных рукопожатий делаем так:
Это занимает секунды — поэтому всегда стоит использовать, если пароль не найден.
Атака на рукопожатие (handshake) со словарём в Pyrit без использования предварительно посчитанных таблиц
Если вам не хочется создавать базу данных, а хочется напрямую копошиться в файле словаря (что много медленнее), вы можете сделать следующее
Скорость этого способа? 17807 PMKs в секунду. На мой вкус намного медленнее.
Очищаем Pyrit и базу данных
Наконец, если нужно, вы можете удалить ваш essid и сделать очистку.
Это высвободит довольно много места на диске.
Для продолжения своего знакомства с Pyrit читайте «Продвинутое использование Pyrit».
Связанные статьи:
Рекомендуется Вам:
7 комментариев to Взлом рукопожатий в Pyrit — самый быстрый способ с использованием графических процессоров и предварительного расчёта хешей
Добрый день! Правильно ли я поняла, что однажды рассчитаные хэши паролей можно использовать для подбора к разным хэндшейкам? тогда возможно в Инете уже есть файлы, с рассчитанными хэшами.. их можно будет использовать?
Хендшейки могут быть разными, но должны быть от одной Точки Доступа. В противном случае, для каждой Точки Доступа нужно считать хеши заново.
Я правильно понял, что атака на рукопожатие (handshake) со словарём в Pyrit без использования предварительно посчитанных таблиц проводиться сразу после импорта словаря и до «pyrit batch»
Самой ресурсозатратной операцией является вычисление хешей, которое начинается после ввода pyrit batch.
Без CAL++ замедлиться только вычисление хешей?
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как в Linux взламывать пароли видеокартой и центральным процессором
Драйверы и программы для взлома на графической карте и центральном процессоре в hashcat
В этой статье показано, какие драйверы и программы установить для того, чтобы hashcat и аналогичные программы для брут-форса могли использовать видеокарту и процессор для взлома паролей.
В настоящее время hashcat использует OpenCL. Как написано в Википедии, OpenCL (англ. Open Computing Language — открытый язык вычислений) — фреймворк для написания компьютерных программ, связанных с параллельными вычислениями на различных графических и центральных процессорах, а также FPGA. В OpenCL входят язык программирования, который основан на стандарте языка программирования Си C99, и интерфейс программирования приложений. OpenCL обеспечивает параллелизм на уровне инструкций и на уровне данных и является осуществлением техники GPGPU. OpenCL является полностью открытым стандартом, его использование не облагается лицензионными отчислениями.
Цель OpenCL состоит в том, чтобы дополнить открытые отраслевые стандарты для трёхмерной компьютерной графики и звука OpenGL и OpenAL возможностями GPU для высокопроизводительных вычислений. OpenCL разрабатывается и поддерживается некоммерческим консорциумом Khronos Group, в который входят много крупных компаний, включая AMD, Apple, ARM, Intel, Nvidia, Sony Computer Entertainment и другие.
То есть благодаря такой универсальности OpenCL, программы для выполнения вычислений, в том числе и hashcat, запускают свои задачи универсальным способом на любых устройствах, поддерживающих OpenCL.
OpenCL поддерживают видеокарты AMD, NVIDIA, а также Intel GPU.
Информацию о поддерживаемых процессорах Intel вы найдёте на странице https://github.com/intel/compute-runtime (поддержка «Intel Graphics Compute Runtime for oneAPI Level Zero and OpenCL» появилась с Gen8) и https://www.intel.ru/content/www/ru/ru/support/articles/000005524/graphics-drivers.html (поддержка OpenCL разными поколениями и моделями процессоров).
Видеокарты AMD, NVIDIA также в большинстве поддерживают OpenCL, кроме совсем старых.
Для работы OpenCL необходима установка драйвера и инструментов взаимодействия с OpenCL. Данная статья посвящена установке OpenCL в Linux. Аналогичные инструкции для Windows даны в статье «Инструкция по hashcat: запуск и использование программы для взлома паролей» (смотрите раздел «Драйверы для hashcat»).
Итак, требования для работы hashcat с OpenCL следующие:
Для устаревших процессоров (до Broadwell) используется «OpenCL 2.0 GPU Driver Package for Linux» (Iris, Iris Pro).
В этой статье будет показано, как установить всё необходимое для использования OpenCL на видеокартах NVIDIA и современных процессорах Intel. Инструкции будут даны на примере Kali Linux (также должны подходить для Debian, Linux Mint, Ubuntu и их производных) и Arch Linux (BlackArch).
Как включить OpenCL на Kali Linux (Debian, Linux Mint, Ubuntu) для hashcat
Включение OpenCL для NVIDIA
Начните с полного обновления системы и затем перезагрузитесь:
После того, как мы обновили систему, нужно проверить модули ядра nouveau (свободные драйвера Nvidia, они будут конфликтовать с проприетарными)
Если предыдущая команда хоть что-то вывела, например:
это означает, что они включены. Поэтому необходимо добавить их в чёрный список:
После изменения параметров ядра, нам нужно обновить наши initramfs и перезагрузиться.
После перезагрузки и проверки, что модули nouveau не загружены, мы переходим к установке загрузчика OpenCL ICD, драйверов и набора инструментов CUDA.
Во время установки драйверов система создаёт новые модули ядра, поэтому требуется ещё одна перезагрузка.
Проверка установленных драйверов
Теперь наша система должна быть готова, нам нужно проверить, что драйверы корректно загружены. Мы можем быстро в этом убедиться запустив инструмент nvidia-smi.
Вывод показывает, что наш драйвер и GPU в порядке — можно приступать к взлому паролей. Перед продолжением, давайте ещё раз сделаем проверку и убедимся, что hashcat и CUDA работают вместе.
Если вы получили ошибку clGetDeviceIDs(): CL_DEVICE_NOT_FOUND с отметкой Platform ID Vendor: Mesa, то запустите:
Продолжим запуском теста производительности. Бенчмарк
Включение OpenCL для Intel
Если ваш центральный процессор поддерживает OpenCL, то установите следующие пакеты:
Просмотрим список устройств ещё раз (должно добавиться новое устройство):
И выполним бенчмар ещё раз:
Как включить OpenCL на Arch Linux (BlackArch) для hashcat
Включение OpenCL для NVIDIA
Удалите xf86-video-nouveau есть он есть:
Установите проприетарный драйвер NVIDIA:
Установите драйвер CUDA и другие необходимые пакеты, а также hashcat:
Включение OpenCL для Intel
Теперь проверим список устройств:
Пакет beignet
beignet — это реализация OpenCL для Intel IvyBridge и Haswell iGPUs. В настоящее время этот пакет считается устаревшим и его должен заменить intel-compute-runtime. У меня в системе установить beignet, то появляется дополнительное устройство OpenCL — как на Kali Linux, где также видно 3 устройства OpenCL. Но это устройство работает нестабильно с Hashcat.
Вы можете протестировать, как себя ведёт beignet на вашей системе. Возможно, для более старых процессоров это единственная опция.
OpenCL для AMD
Если вы владелец AMD карты, то поделитесь вашим опытом установки драйвера AMD с поддержкой OpenCL. Пишите ваши команды для установки в комментариях — и я добавлю в статью новый раздел. Если есть возможность, сделайте скриншоты и/или бенчмарки.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Базовое и продвинутое использование oclHashcat (Hashcat) для взлома WPA/WPA2 паролей из хендшейков
Общая информация о oclHashcat (Hashcat)
Варианты Hashcat
Hashcat поставляется в двух вариантах:
Многие алгоритмы, поддерживаемые Hashcat, могут быть взломаны в более короткое время, при использовании хорошо документированных возможностей GPU. Для этого и предназначена программа oclHashcat, при её использовании достигается значительный прирост в таких алгоритмах как MD5, SHA1 и других. Тем не менее, не все алгоритмы могут быть ускорены использованием GPU. Bcrypt — хороший этому пример. Из-за таких факторов как ветвление зависимостей данных, сериализация и память (упомянуты только некоторые), oclHashcat не является всеобъемлющей заменой для Hashcat.
oclHashcat и Hashcat доступны для Linux, OSX и Windows. Причём если мы говорим о скорости взлома с использованием графического процессора, то скорость перебора хешей на одном компьютере на разных ОС (на Linux и Windows) будут идентичными, поскольку на рабботу GPU система не влияет.
Hashcat предустановлена в Kali Linux. Для установки oclHashcat ознакомьтесь с разделом «Как установить oclHashcat в Kali Linux 2».
oclHashcat, как скромно замечают сами авторы, это самый быстрый инструмент по восстановлению паролей, использующий графический процессор. Программа бесплатна, хотя она содержит проприетарную кодовую базу. Доступны версии для Linux, OSX и Windows, есть варианты для использования центрального вычислительного процессора и для использования графического процессора. oclHashcat в настоящее время поддерживает огромное количество алгоритмов хеширования, включая Microsoft LM Hashes, MD4, MD5, семейство SHA, форматы Unix Crypt, MySQL, Cisco PIX и многие другие (их там сотни). Чуть меньше, но достаточно много алгоритмов поддерживает Hashcat.
Типы атак oclHashcat
Hashcat предлагает множество моделей атак для получения эффективного и комплексного покрытия пространства хешей. Есть следующий режимы:
Традиционную атаку перебором можно считать устаревшей, и команда разработчиков Hashcat рекомендует атаку по маске в качестве полного заменителя.
Взлом WPA/WPA2 паролей в oclHashcat (Hashcat)
Зачем использовать oclHashcat для взлома файлов рукопожатий WPA WPA2?
Pyrit самый быстрый, когда нам нужно взломать файлы рукопожатий WPA2 WPA. Так почему мы используем oclHashcat (Hashcat) для взлома файлов рукопожатий WPA2 WPA?
Потому что мы можем?
Потому что oclHashcat (Hashcat) позволяет нам настроить атаку с заданными правилами и масками. oclHashcat (Hashcat) позволяет нам использовать встроенные наборы символов для атаки на файл рукопожатия WPA2 WPA.
Более того, есть сообщения, что в системах с большим количеством видеокарт Pyrit оказывается медленнее чем oclHashcat. Автор отчёта говорит о плохой масштабируемости Pyrit. Я не могу это подтвердить или опровергуть.
Подробное описание все атак, доступных в oclHashcat (Hashcat) дано в статье «Виды атак oclHashcat (Hashcat)». Поэтому если вам что-то непонятно в составлении масок, то обратитесь к ней.
Я буду показывать на примере файла с захваченным рукопожатием Narasu_3E-83-E7-E9-2B-8D.cap.
В моём случае команда выглядит так:
Нам нужно конвертировать этот файл в формат, понятный oclHashcat.
Обратите внимание -J это заглавная J, а не маленькая j.
В моём случае команда следующая:
Атака по словарю на рукопожатие:
Атака брутфорсом на рукопожатие:
Продвинутые трюки с oclHashcat
Проверка множества WPA рукопожатий в oclHashcat за раз
Для систем Linux / OSX вам следует использовать команду наподобие этой:
а для систем Windows эту:
В этом конкретном примере файл multi.hccap будет состоять из всех сетей, файлы которых были в каталоге single_hccaps/.
Примечание: под Windows x64 cap2hccap постоянно вылетает, программа совершенно нерабочая.
На Windows этот файл расположен в той же директории, где и исполняемые файлы oclHashcat, его название — oclHashcat.pot. Типичное содержимое файла:
Причина этого в том, например, что в противном случае выводной файл (—outfile, -o) мог бы содержать вывод одних и тех же идентичных хешей снова и снова (если разные атаки ведут к одинаковым кандидатам в пароли, которые дают совпадающие результаты).
Это также имеет эффект на взлом хешей с солью. Если oclHashcat замечает, что все взломанные хеши связанны с определённой солью, то безопасно не создавать новые предположение для этой соли. Это означает, например, если вы имеете 2 хеша с различными солями и один взломан, скорость удваивается. Теперь если вы по каким-либо причинам перезапустите сессию, профиль помечает один взломанный хеш в качестве взломанного, а, следовательно, соль помечается как взломанная. Поэтому ваш запуск удвоит скорость угадывания.
Вы можете полностью отключить поддержку potfile используя —potfile-disable. Тем не менее, настоятельно рекомендуется не отключать его. Если вы имеете, к примеру, огромный список хешей с солью, и вы не используете —remove и по каким-либо причинам вы должны перезапустить сессию взлома, все ваши бонусы по скорости угадывания теряются.
Теперь вы будете иметь оба: оригинальный список и список оставшихся.
Также безопасно копировать (или добавлять) данные из одного профиля в другой.
Вы можете конвертировать файлы hashcat WPA/WPA2 hccap обратно в файлы (p)cap. В этом нам поможет программа hccap2cap. Официальный её сайт: https://github.com/philsmd/hccap2cap
Если у вас нет под рукой файл hccap, то можете скачать пример:
Запуск программы для конвертации файла:
Распределённое вычисление с oclHashcat (Hashcat)
Справка oclHashcat имеет следующие опции для распределённого (на разных компьютерах) вычисления:
Не очень много, но, на самом деле, если вы немного умеете писать Bash скрипты и знакомы с SSH, то вы вполне способны реализовать распределённый взлом с oclHashcat.
Если вы не готовы к самостоятельному программированию, то есть готовые бесплатные решения:
polycat
PassCrackNet
Hashtopus
Disthc
Дополнительные подсказки по oclHashcat (Hashcat) смотрите в следующей заметке: «Подсказки и ответы на частые вопросы по использованию oclHashcat (Hashcat)». Либо ищите всю доступную информацию по тегу oclHashcat (Hashcat).
Инструменты Kali Linux
Список инструментов для тестирования на проникновение и их описание
Hashcat
Hashcat — это самый быстрый в мире восстановитель (взломщик) паролей.
В настоящее время, Hashcat объединила в себе две ранее существовавшие отдельные ветки программы. Одна так и называлась Hashcat, а вторая называлась oclHashcat (а ещё раньше oclHashcat была разделена на собственно oclHashcat и cudaHashcat). В настоящее время абсолютно все версии слиты в одну, которая при восстановлении паролей использует центральный процессор и видеокарту.
Справка по Hashcat
Опции и справочная информация:
Руководство по Hashcat
Страница man отсутствует.
Примеры запуска Hashcat
Взлом WPA2 WPA рукопожатий с Hashcat
В моём случае команда выглядит так:
Нам нужно конвертировать этот файл в формат, понятный oclHashcat.
В моём случае команда следующая:
Атака по словарю на рукопожатие:
Атака брутфорсом на рукопожатие:
Установка Hashcat
Программа предустановлена в Kali Linux.
Установка Hashcat в другие Linux
Далее перейдите на официальный сайт и скачайте архив.
Запустите файл hashcat64.bin или hashcat32.bin в зависимости от битности вашей системы.
Установка в Windows
Скачайте архив с официального сайта, распакуйте его.
Для запуска используйте файл hashcat64.exe или hashcat32.exe в зависимости от битности вашей системы.
Программу нужно запускать в командной строке. Для этого откройте окно командной строки (Win+X – выберите «Командная строка») и перетащите туда исполняемый файл.
Либо в открывшемся окне командой строки перейдите в требуемую папку:
Brute-force атаки с использованием Kali Linux
Brute-force (атака полным перебором) – метод решения математических задач, сложность которого зависит от количества всех возможных решений. Сам же термин brute-force обычно используется в контексте хакерских атак, когда злоумышленник пытается подобрать логин/пароль к какой-либо учетной записи или сервису.
Рассмотрим инструменты, которые можно использовать для выполнения brute-force атак на SSH и WEB-сервисы, доступные в Kali Linux (Patator, Medusa, Hydra, Metasploit), а также BurpSuite.
Все материалы, предоставленные в рамках данной статьи, предназначены для использования исключительно в учебных целях. Использование материалов в противоправных и противозаконных запрещено.
Brute-force SSH
Для примера возьмем тестовую машину 192.168.60.50 и попробуем подобрать пароль пользователя test по SSH. Мы будем использовать популярные пароли из стандартного словаря rockyou.txt.
Patator
Для подбора пароля средствами Patator используем команду:
где:
ssh_login — необходимый модуль
host – наша цель
user – логин пользователя, к которому подбирается пароль или файл с логинами для множественного подбора
password – словарь с паролями
-x ignore:mesg=’Authentication failed’ — команда не выводить на экран строку, имеющую данное сообщение. Параметр фильтрации подбирается индивидуально.
Hydra
Для подбора пароля используя Hydra выполним команду:
где:
-V – показывать пару логин+пароль во время перебора
-f – остановка как только будет найден пароль для указанного логина
-P – путь до словаря с паролями
ssh://192.168.60.50 – указание сервиса и IP-адрес жертвы
Medusa
Для подбора пароля с использованием Medusa выполним команду:
где:
-h – IP-адрес жертвы
-u – логин
-P – путь к словарю
-M – выбор модуля
-f – остановка после нахождения валидной пары логин/пароль
-v – настройка отображения сообщений на экране во время процесса подбора
Metasploit
Произведем поиск инструмента для проведения brute-force атаки по SSH:
search ssh_login и получили ответ:
Указание необходимых параметров производится через команду «set«.
set rhosts 192.168.60.50
set username test
set userpass_file /root/wordlist
set stop_on_success yes
set threads 4
set rport 22
Указав необходимые параметры набираем команду «run» и ждем.
Противодействие
Ограничить количество устанавливаемых соединений с использованием межсетевого экрана. Пример настройки iptables:
Такое правило установит ограничение доступа к SSH для каждого IP-адреса до 1 соединения в секунду, значительно усложнив перебор. Также эффективным решением может быть использование двухфакторной аутентификации (например, используя eToken) или аутентификации с использованием ключевой пары, а также использование ACL на основе IP-адресов.
Brute-force WordPress
Рассмотрим другой пример — подбор пароля окна авторизации веб-формы.
Для примера будем подбирать пароль от учетной записи администратора wordpress.
BurpSuite
Для начала нам необходимо понять, как происходит процесс авторизации. Для этого мы будем использовать BurpSuite. Нам необходимо попробовать авторизоваться с любым паролем и логином, чтобы посмотреть какие запросы проходят через BurpSuite.
Отлично, мы увидели POST запрос для авторизации с ним мы и будем работать.
В BODY указано какой логин и пароль проверялись, а значит, мы можем попробовать самостоятельно подставить нужные нам значения.
Передаем этот запрос в Intruder и там выбираем необходимые параметры для атаки. В пункте Payload Positions тип атаки оставляем sniper, но для проверки оставляем только параметр pwd. Таким образом, при атаке будет изменяться только этот параметр.
Загружаем необходимый словарь и начинаем атаку.
Из поведения веб-приложения мы видим, что неверный пароль возвращает код ответа 200. После перебора словаря, видим, что один из паролей дал ответ с кодом 302 — он и является верным.
Данный метод перебора занимает намного больше времени, чем при использовании Patator, Hydra, Medusa и т.д. Даже с учетом того, что мы взяли небольшой словарь, BurpSuite перебирал словарь около 40 минут.
Hydra
Попробуем подобрать пароль с помощью Hydra.
Как мы уже знаем, при неверной авторизации возвращается код 200, а при успешной – 302. Попробуем использовать эту информацию.
Для запуска используем команду:
Здесь мы указываем обязательные параметры:
-l – имя пользователя
-P – словарь с паролями
-t – количество потоков
http-post-form – тип формы, у нас POST.
/wp-login.php – это URL страницы с авторизацией
^USER^ — показывает куда подставлять имя пользователя
^PASS^ — показывает куда подставлять пароль из словаря
S=302 – указание на какой ответ опираться Hydra. В нашем случае, ответ 302 при успешной авторизации.
Patator
Как мы уже знаем, при неудачной авторизации возвращается код 200, а при удачной – 302. Будем использовать тот же принцип, что и с Hydra:
Запуск производится командой:
http_fuzz – модуль для brute-force атаки http
url – адрес страницы с авторизацией
FILE0 — путь до словаря с паролями
body – информация, которая передается в POST запросе при авторизации
-t — количество потоков
-x – В данном случае мы указали команду не выводить на экран сообщения строки, содержащие параметр с кодом 200
accept_cookie – сохранение параметра cookie и передачи его в следующий запрос
Как итог – нам удалось подобрать пароль.
Nmap
Утилита Nmap позволяет в том числе производить подбор паролей для веб-форм авторизации, если использовать скрипт http-wordpress-brute с соответствующими аргументами:
—script-args – добавление аргументов
user или userdb – логин или файла с логинами
pass или passdb — указание пароля или словаря
thread – количество потоков
firstonly=true – выводить результат после первого же правильного пароля
Противодействие
Усложнить задачу перебора можно используя следующие методы:
— Применение межсетевого экрана и прочего ПО для ограничения количества обращений к защищаемому сервису. О том, как мы используем машинное обучение для выявления подобных атак (в том числе распределенных), можно почитать в статье.
— Использование средств, препятствующих быстрой проверке корректности ключа (например, Captcha).
Заключение
В данной статье мы поверхностно рассмотрели некоторые популярные инструменты. Сократить риск подбора пароля можно, следуя следующим рекомендациям:
— используйте устойчивые к подбору пароли;
— не создавайте пароли, используя личную информацию, например: дату рождения или имя + дата рождения или мобильный телефон;
— регулярно меняйте пароль;
— на всех аккаунтах применяйте уникальные пароли.
Подобные рекомендации (как и рекомендации по безопасной веб-разработке) мало кто соблюдает, поэтому необходимо использовать различные программные решения, позволяющие:
— ограничить подключение по IP-адресу, или, если это невозможно, ограничить одновременное количество соединений с сервисом (средствами iptables, nginx и прочими);
— использовать двухфакторную аутентификацию;
— выявлять и блокировать подобные атаки средствами SIEM, WAF или другими (например, fail2ban).