Брутфорс-атаки — что это и как защититься от полного перебора brute force

Что такое брутфорс: какие у него цели и кому это нужно

Рассказываем про распространенные атаки полным перебором и о методах противодействия им.

Изображение записи

С каждым годом число и разнообразие атак на персональные аккаунты, сайты и внутренние системы растет. Мошенники охотятся за персональными и конфиденциальными данными, с помощью которых можно ударить по репутации компании или заняться денежным вымогательством. Пока одни злоумышленники занимаются хищением данных путем сложных схем, таких как социальная инженерия или написание специального ПО, другие используют банальный перебор паролей. 

Brute force-атака — что это

Брутфорс, или атака полным перебором, — это метод атаки с угадыванием паролей, учетных данных для входа в систему, ключей шифрования и прочей информации. Основная цель брутфорса — получить несанкционированный доступ к данным, системам или сетям. Это метод проб и ошибок, цель которого — перебрать все возможные комбинации для получения правильного пароля.  

Атака перебором автоматически и систематически пытается угадать правильное имя пользователя и личную комбинацию для службы. Ей нужно найти правильные логины и использовать их для получения доступа к сети с целью извлечения конфиденциальных данных, таких как хэши паролей и токены. 

Когда вы запускаете функцию Brute force, она пробует каждую пару учетных данных на каждой цели и пытается угадать правильное имя пользователя и личную комбинацию. Если Brute force удается аутентифицироваться в службе с помощью определенного мандата, мандат сохраняется в проекте и создается логин для службы. Brute force продолжает итерации по списку учетных данных до тех пор, пока все учетные данные не будут опробованы или пока не будет достигнут заданный пользователем предел.

Брутфорс-атаки обычно осуществляются ботами, которые создают большие армии зараженных компьютеров по всему миру, известные как ботнеты. Злоумышленники используют бот-сеть для многократных попыток входа в учетные записи, используя длинный список или «словарь» слов и цифр в качестве паролей.

Классификация брутфорса: персональный взлом, «брут-чек», удаленный взлом ОС компьютера

Брутфорс-атаки существуют столько же, сколько и пароли. С тех пор их популярность только растет — фактором влияния здесь стал переход на удаленную работу.

К видам брутфорс-атак относятся:

  • простая атака методом перебора,
  • атака по словарю,
  • вброс учетных данных,
  • обратная атака грубой силы,
  • гибридная атака грубой силы.
  • распыление паролей,
  • ботнеты.

Рассмотрим эти виды. 

Простая брутфорс-атака

Простая брутфорс-атака использует автоматизацию и скрипты для угадывания паролей. Типичные брутфорс-атаки делают несколько сотен угадываний каждую секунду. Простые пароли — например, те, в которых отсутствует сочетание заглавных и строчных букв, или те, что используют распространенные выражения типа «123456» или «пароль» — могут быть взломаны за несколько минут. 

Однако существует возможность увеличить скорость взлома на порядки. Еще в 2012 году исследователь использовал компьютерный кластер для угадывания до 350 миллиардов паролей в секунду.

Атака по словарю

При атаке по словарю используются комбинации обычных слов и фраз. Первоначально в словарных атаках использовались слова из словаря, а также цифры, но сегодня в словарных атаках также используются пароли, которые стали известны в результате утечки данных. Эти пароли доступны для продажи в даркнете, а некоторые базы можно найти в открытом доступе в сети. 

Подстановка учетных данных

Атака с использованием подстановки учетных данных использует украденные комбинации логинов на множестве сайтов. Подстановка учетных данных работает, потому что люди склонны многократно использовать свои логины и пароли. Если хакер получает доступ к какому-либо из аккаунтов человека, есть большая вероятность, что эти же учетные данные обеспечат ему доступ к другим аккаунтам.

Обратная брутфорс-атака 

Обратная брутфорс-атака — это тип брутфорс-атаки, при которой злоумышленник использует общий пароль для нескольких имен пользователей в попытке получить доступ к сети. Брутфорс-атаки и обратные брутфорс-атаки используются для получения доступа к веб-сайту, закрытия сайта, кражи данных или осуществления дополнительных атак.

Гибридная брутфорс-атака

Гибридная брутфорс-атака сочетает в себе атаку по словарю и обычную брутфорс-атаку. Люди часто добавляют серию цифр — обычно четыре — в конец своего пароля. Эти числа, как правило, представляют собой значимый для них год — например, год рождения, окончания школы и т.д. Злоумышленники используют эту склонность и задают в качестве первой цифры, начинающие тысячелетие, — 1 или 2.

Перебор паролей

Традиционные атаки методом перебора пытаются угадать пароль для одной учетной записи. Перебор паролей использует противоположный подход и пытается применить один общий пароль ко многим учетным записям. 

Такой подход позволяет избежать блокировки, ограничивающей количество попыток ввода пароля. Перебор паролей обычно используется против целей с единым входом в систему (SSO) и облачных приложений, использующих федеративную аутентификацию (FIM).

Персональный взлом

При данной процедуре злоумышленник вытягивает из жертвы максимальное количество личной информации, которая может ему пригодиться при взломе данных. 

Брут-чек

Из первого способа вытекает второй — «брут-чек». При доступе к электронной почте злоумышленник может запустить программу проверки на наличие писем, содержащих пароли от различных сайтов и служб. Для полного доступа к компьютеру жертвы злоумышленник может использовать удаленное подключение. Путем социального инжиниринга или поиска уязвимого соединения с последующей передачей программы для осуществления удаленного доступа.

Ботнеты

Брутфорс-атака — это игра с числами, и для ее масштабного выполнения требуется много вычислительной мощности. Для этого злоумышленники заражает компьютеры других пользователей, получают доступ к ним и объединят в одну ботнет-сеть.

Развертывая сети захваченных компьютеров для выполнения алгоритма атаки, злоумышленники могут избавить себя от затрат и хлопот, связанных с запуском собственных систем. Кроме того, использование ботнетов добавляет дополнительный уровень анонимности. Ботнеты могут быть использованы в любом типе брутфорс-атак.

Методы выполнения брутфорс-атак и противодействие brute force

Существует несколько способов выполнения брутфорс-атак. Рассмотрим их подробнее.

Brute force SSH

Перед началом любой атаки грубой силы необходимо определить начало порта, на котором работает SSH. Вы можете просто выполнить сканирование порта с помощью Nmap, чтобы проверить, открыт он или нет. Укажите номер одного порта с помощью флага -p, а не сканируйте все порты по умолчанию:

$ nmap [IP address] -p [port number]
$ nmap 192.168.1.112 -p 22

Ниже приведем некоторые инструменты и их команды для инициирования брутфорс-атаки на SSH-сервера.

Hydra

Hydra — это инструмент с открытым исходным кодом для перебора практически всего. Это один из любимых инструментов в наборе инструментов злоумышленника. Hydra позволяет выполнять различные типы атак методом перебора, используя списки слов. По умолчанию она поставляется с дистрибутивами Linux с большим количеством функциональных возможностей, которые можно отобразить с помощью:

$ hydra -h

Однако в случае перебора ssh используются следующие основные флаги:

  • -l — указать имя пользователя при атаке,
  • -L — указать список слов имени пользователя, который будет использоваться во время атаки,
  • -p — указать пароль при атаке,
  • -P — указать список слов пароля, который будет использоваться во время атаки,
  • -t — задает значение 4, которое устанавливает количество параллельных задач (потоков) для запуска.

Стандартный синтаксис команды hydra выглядит следующим образом:

$ hydra -L users.txt -P passwords.txt ssh://IP-адрес -t 4

Через некоторое время она завершается и отображает количество найденных успешных логинов. Параллельная обработка Hydra полезна и дает инструменту преимущества при большом количестве потенциальных учетных данных.

Чтобы получить хороший список паролей, вы можете либо использовать инструмент crunch для генерации пользовательских паролей, либо использовать предопределенные списки, такие как rockyou.txt, который уже есть, если вы работаете на Kali Linux.

Статус работы скрипта

Также во время работы выводится статус работы скрипта:

[STATUS] 67.05 tries/min, 2950 tries in 00:44h, 53 to do in 00:01h, 8 active

Metasploit

Второй метод, или инструмент, который вы можете использовать, — это вспомогательный сканер Metasploit. Его также можно найти в качестве предустановленных программ в Kali Linux. 

Работа начинается с инициализации базы данных PostgreSQL с помощью следующей команды:

$ sudo service postgresql start

Запустите Metasploit, набрав в терминале msfconsole:

$ msfconsole

После приветствия вы можете найти соответствующий модуль с помощью команды поиска:

msf > search ssh

Дополните модуль ssh-login командой use для работы внутри нужного пространства:

msf > use auxiliary/scanner/ssh/ssh_login

Теперь вы можете ввести параметры, чтобы отобразить доступные настройки для сканера.

msf auxiliary(scanner/ssh/ssh_login) > options

Вот доступные параметры, которые вы можете установить:

Доступные параметры для установки в Metasploit

Теперь необходимо установить несколько параметров для правильной работы. Во-первых, RHOSTS — это IP-адрес цели.

msf auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.1.112
rhosts => 192.168.1.112

Далее STOP_ON_SUCCESS остановит работу после определения действительных учетных данных:

msf auxiliary(scanner/ssh/ssh_login) >  set stop_on_success true
stop_on_success => true

USER_FILE — это список имен пользователей:

msf auxiliary(scanner/ssh/ssh_login) > set user_file users.txt
user_file => users.txt

PASS_FILE — это список паролей:

msf auxiliary(scanner/ssh/ssh_login) > set pass_file passwords.txt
pass_file => passwords.txt

Наконец, VERBOSE отобразит все попытки:

msf auxiliary(scanner/ssh/ssh_login) > set verbose true
verbose => true

Поскольку вы используете опцию verbose, вы можете увидеть все попытки:

msf6 auxiliary(scanner/ssh/ssh_login) > run
[*] IP-address - Starting bruteforce
[-] IP-address - Failed: 'root:password0000'

Запуск может занять некоторое время в зависимости от количества имен пользователей и комбинаций паролей. При обнаружении действительных учетных данных будет выведено сообщение об успехе. Ниже приведен результат тестирования:

Результат тестирования в 
Metasploit

Теперь, когда у вас есть правильные учетные данные, вы можете либо войти в систему с помощью обычной команды ssh, либо использовать Metasploit, чтобы сделать это за вас автоматически с помощью команды sessions в msf:

msf6 auxiliary(scanner/ssh/ssh_login) > sessions -i 1
Вывод команды sessions в msf

Есть несколько вещей, которые вы можете сделать, чтобы сократить количество атак и уменьшить вероятность того, что ваша система будет скомпрометирована ими. Например, достаточно сложный пароль практически невозможно взломать при современном уровне технологий. 

Другой пример – противодействие через SSH. Настройте SSH на прослушивание порта, отличного от 22. Например, вы можете настроить его на прослушивание порта 1138. Для этого просто измените строку Port в файле /etc/ssh/sshd_config, указав новый номер порта, который вы хотите использовать. Не забудьте использовать этот номер порта при подключении с удаленной системы.

Блокировка портов может быть использована для обеспечения дополнительного уровня безопасности и для того, чтобы обычные злоумышленники не смогли даже узнать, что у вас открыт порт SSH. OpenSSH позволяет использовать аутентификацию на основе ключей вместо парольной аутентификации, что может еще больше ограничить попытки атак, как и брандмауэр, настроенный на запрет попыток SSH-соединения от всех клиентов, кроме внесенных в белый список.

Brute force WordPress

Как и любой другой сайт, все сайты WordPress имеют страницу входа, где администратор может ввести имя пользователя и пароль для получения доступа к панели администратора. По умолчанию URL-адрес страницы входа администратора на сайте WordPress выглядит так: www.yourwebsite.com/wp-admin. Хакеры могут легко найти вашу страницу входа, если вы не изменили URL-адрес администратора.

Хакеры используют базу данных наиболее часто используемых паролей для проведения атаки методом перебора с помощью ботов и автоматизированных инструментов. Список распространенных паролей показывает, что большинство пользователей по-прежнему используют такие пароли, как 1234, 123456, qwerty и т. д. Это значительно облегчает хакерам задачу.

Даже если хакеру не удастся проникнуть на ваш сайт, тысячи попыток входа в систему могут обрушить сервер вашего сайта. Это означает, что использование только надежных учетных данных не может защитить ваш сайт от атак методом перебора.

Для ограничения (усложнения) атак «грубой силы» на веб-приложения можно использовать iptables (аналогично SSH) и инструменты nginx.

Прочитайте, как укрепить nginx-сервер → 

Для противодействия для WordPress необходимо создать зону ограничений:

...
limit_req_zone $binary_remote_addr zone=req_limits:10m rate=30r/s;
...

и использовать ее:
location / {
...
limit_req zone=req_limits burst=10;
limit_req_status 429;
...
}

Эти настройки позволят вам ограничить количество запросов с одного IP-адреса до 40 в секунду.

Вы можете усложнить задачу поиска, используя следующие методы защиты:

  • Брандмауэр и другое программное обеспечение для ограничения количества запросов к защищенной службе.
  • Инструменты, препятствующие быстрой проверке правильности ключа (например, Captcha).

Программы для использования брутфорса: Brutus, Brute Forcer, Metasploit, Burp Suite

Самыми популярными являются следующие программы:

  • Brutus;
  • Brute Forcer;
  • Metasploit;
  • Burp Suite.

Brutus

Это многофункциональная программа для взлома паролей в интернете. Программа написана только для Windows, но позволяет использовать несколько различных типов перебора аутентификации, включая:

  • HTTP (базовая аутентификация),
  • HTTP (HTML Form/CGI),
  • POP3 (Post Office Protocol v3),
  • FTP (протокол передачи файлов),
  • SMB (блок серверных сообщений),
  • Telnet.

Хотя HTTP Basic является самой распространенной программой в интернете сегодня, HTTP Form не отстает от нее. Чтобы использовать Brutus для перебора стандартной страницы HTTP Basic, нам нужно только ввести цель в поле Target, выбрать HTTP (Basic Authentication) в поле Type, а затем выбрать тип Authentication Options. По умолчанию он будет использовать наиболее распространенные имена пользователей и пароли.

Интерфейс в Brutus

Brute Forcer

Это клиент-серверное многопоточное приложение для перебора паролей. Чем больше клиентов подключено к серверу, тем быстрее происходит взлом.

Клиент основан на плагинах. Это означает, что сам BruteForcer — это просто программа сегментации, и ей все равно, какой тип файла вы пытаетесь взломать. Приложение просто отправляет сгенерированные пароли в плагин, а плагин проверяет правильность пароля. У этой концепции большой потенциал в будущем — любой программист может написать плагин на языке, который может компилировать stdcall dll. И не только для файлов — это применимо к любому типу перебора паролей.

Интерфейс BruteForcer Client

Metasploit 

Проект по компьютерной безопасности, который предоставляет данные об уязвимостях безопасности и помогает проводить тестирование на проникновение. Он принадлежит американской компании Rapid7, специализирующейся на кибербезопасности. Известным подпроектом Metasploit является Metasploit Framework с открытым исходным кодом – инструмент, используемый для разработки и запуска кода эксплойта на удаленных целевых системах. В рамках данной статьи он рассматривался выше.

Burp или Burp Suite

Набор инструментов, используемых для тестирования веб-приложений на проникновение. Он разработан компанией Portswigger. 

BurpSuite — это универсальный набор инструментов, возможности которого могут быть расширены путем установки дополнений, BApps. Набор состоит из различных инструментов, таких как прокси-сервер, робот-индексатор, инструмент для взлома, сканер уязвимостей и ретранслятор HTTP.

Опасность брутфорс-атак и защита от них

Как и большинство всех других атак, брутфорсы могут дать доступ злоумышленнику к учетным данным пользователей, а также нарушить работу сайтов из-за постоянных запросов. 

Если вы обычный пользователь, для защиты от брутфорса необходимо следовать нескольким несложным правилам: 

  • Использовать сложные и длинные (от 8-12 символов) пароли, содержащие в себе цифры, маленькие и заглавные буквы, а также спецсимволы. Идеально, если пароль сгенерирован при помощи генераторов паролей. 
  • Генерировать разные пароли для разных сайтов, серверов, систем и т.п. Запомнить все пароли не получится, поэтому стоит воспользоваться менеджером паролей. 
  • Менять пароль 2 раза в месяц (или хотя бы раз в год), так как вы не знаете, когда ваш пароль попадет в руки злоумышленникам.
  • Включить двухфакторную аутентификацию там, где это возможно. 

Если же вы владелец сайта, то защититься от брутфорса можно, ограничив количество запросов на авторизацию для одного аккаунта и с одного IP-адреса. Помните, что боты меняют IP-адреса и могут использовать обратный брутфорс. Следуя этим простым правилам, можно существенно снизить вероятность стать целью атак и их жертвой.