Брутфорс: что это такое и как он работает

Двухэтапная авторизация

Защита файлов и директорий паролем в cPanel

Можно установить защиту паролем на любую директорию на сервере средствами встроенного модуля веб-сервера. Для хостинга на базе панели cPanel нужно нажать в панели Файлы — Конфиденциальность каталога.

На следующем экране выберите папку, которую вы хотите защитить (/home/username/public_html/wp-admin). При нажатии на иконку слева происходит открытие каталога, при нажатие на название каталога — выбор.

Далее укажите логин и пароль и включите защиту. Вы же помните, что пароли должны отвечать критериям из пункта 1? Ну и, конечно, не устанавливайте одинаковые пароли на различные формы ввода.

В результате этих действий в папке wp-admin будет создан файл .htaccess с такими настройками:

AuthType Basic
AuthName "Autorize"
AuthUserFile "/home/username/.htpasswds/domain.com/passwd"
require valid-user

К сожалению, интерфейс панели управления не предусматривает защиту файла wp-login.php. Потому нужно скопировать фрагмент выше и вставить его в основной файл .htaccess в папке вашего сайта (обычно это /home/username/public_html) таким образом:

<FilesMatch "wp-login.php">
AuthType Basic
AuthName "Autorize"
AuthUserFile "/home/username/.htpasswds/domain.com/passwd"
require valid-user
</FilesMatch>

Защита файлов и директорий паролем в Apache

Если у вас панель управления не cPanel, или вообще нет панели управления на сервере, то можно просто добавить такие строки, как указано выше. После чего нужно сгенерировать сам файл доступа (прописан в строке AuthUserFile). Пароли в данный файл записываются в зашифрованном виде. Для шифрования пароля можно использовать сервис (тип кодировки нужно указать MD5). Полученные строчки нужно вписать в файл паролей, который в примере записан как /home/username/.htpasswds/domain.com/passwd

Содержимое файла passwd должно выглядеть примерно так:

admin:$apr1$jO5DLVTA$/KiKawt4F52ZNnTISPC1y/
editor:$apr1$BsN/.Ddj$zSgP0RrJpvgazIS4D23Ce/

Защита файлов и директорий паролем в Nginx

И в случае использования только веб-сервера Nginx — добавьте такие строчки в файл конфигурации для сайта (в блоке server):

location   ~* ^/(wp-admin|wp-login.php)
{
auth_basic "Unauthorized";
auth_basic_user_file "/home/username/.htpasswds/domain.com/passwd";
}

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

Для проверки правильности конфигурационного файла Nginx и перезагрузки веб-сервера в командной строке нужно выполнить:

~# nginx -t
~# systemctl restart nginx

Путь к файлу, который выше указан как «/home/username/.htpasswds/domain.com/passwd» может быть любой. Главное, чтобы пользователь, от имени которого работает Nginx, имел права на его чтение. Содержимое данного файла формируется точно так же, как и при настройке для веб-сервера Apache.

Rainbow Crack

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

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

Тогда как это может произойти?

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

Теперь предположим, что вы разработали программу для разблокировки пароля, которая пробует 1000 комбинаций в секунду. Время сокращается до 7 тысяч лет. Это сделать все равно невозможно, поэтому нужен суперкомпьютер.

Если машина сможет попробовать 1 × 109 попыток в секунду, то всего за 22 секунды все 218 триллионов попыток будут протестированы. Вычислительные ресурсы такого рода недоступны для простых людей. Однако хакеры не являются обычными пользователями. Они могут собирать вычислительные ресурсы различными способами, например путем разработки мощного вычислительного механизма с помощью программного обеспечения и тому подобное.

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

Но что, если его длина составляет 10 или 100 символов? Вот почему очень важно иметь дополнительные уровни безопасности для обнаружения и отклонения попытки взлома

John the Ripper

Это еще один потрясающий инструмент, который не нуждается в какой-либо инструкции. Он часто применяется для долгого брутфорса паролей. Это бесплатное программное обеспечение было первоначально разработано для систем Unix. Позже авторы выпустили его для других платформ. Теперь программа поддерживает 15 различных систем, включая Unix, Windows, DOS, BeOS и OpenVMS. Ее можно использовать либо для определения уязвимости, либо для взлома паролей и нарушения аутентификации.

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

В принципе, программа для брутфорса может выполнять грубую атаку со всеми возможными паролями, комбинируя текст и цифры. Тем не менее ее также можно использовать со словарем.

Aircrack-нг

Это популярный беспроводной инструмент для взлома паролей, доступный бесплатно. Он поставляется с WEP/WPA/WPA2-PSK взломщиком и инструментами анализа для выполнения атаки на WI-Fi 802.11. Aircrack NG может использоваться для любого сетевого адаптера, который поддерживает режим необработанного мониторинга.

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

Приложение доступно для брутфорса Windows и Linux. Кроме того, оно перенесено на платформы iOS и Android.

Виды «атак грубой силы»

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

Вот почему так важно не использовать одинаковый пароль для нескольких аккаунтов!

Атака по словарю В данном типе атаки хакер попытается использовать слова из словаря. Очень часто люди применяют в качестве паролей имена, города, объекты и т.д

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

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

Как защитить себя?

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

  • Используйте 2-х факторную аутентификацию. Без доступа к вашему устройству, злоумышленник не сможет войти в ваш аккаунт.
  • Увеличьте длину и сложность пароля, используя как буквы, так и цифры, а также заглавные и строчные буквы или даже символы. Если вы не знаете, как создавать сложные пароли, воспользуйтесь генератором случайных паролей.
  • Регулярно меняйте пароли.
  • Не используйте одинаковые пароли на разных аккаунтах, т.к. это сделает вас уязвимым к атакам.
  • Храните свои пароли в безопасности с помощью менеджера паролей. Он будет хранить их в зашифрованном хранилище и предложит дополнительные возможности, такие как автозаполнение. Тогда вам больше не нужно будет беспокоиться или помнить все свои пароли.

Софт

Сейчас хешкрекинг в основном производится на видеопроцессорах (GPU). На обычных процессорах (CPU) брутятся только те алгоритмы, которые не реализованы под GPU. Для брута на GPU фактичeски уже стандартом стало использование программы oclHashcat, имеющей сборки как для Windows, так и для Linux, а также поддерживающей все современные видеопроцессоры — и NVIDIA, и AMD. Совсем недавно ее автор перевел программу в разряд Open Source, и теперь она доступна на GitHub, так что каждый желающий может присоединиться к работе над ее новыми версиями.

Для распределения работы этой программы между несколькими компьютерами используется оболочка hashtopus. Другим популярным GPU-брутфорсером остается нестареющий John the Ripper (JtR) в сборке Jumbo, который также имеет множество алгоритмов под все видеокарты, но для получения максимальной эффективности его желательно все-таки пересобирать под каждую конкретную конфигурацию железа.

Для работы на CPU программ гораздо больше, но самыми функциональными остаются все те же hashcat и JtR. Еще можно к ним добавить программу Hash Manager, которая больше заточена под обработку хешей в «промышленных масштабах», то есть очень крупных списков, которые не удается загрузить в другие программы. Все эти программы бесплатные, и каждый решает сам, что выбрать себе для ежедневной работы, только практика показывает, что желательно уметь владеть всем этим софтом — как правило, профессиональные хешкрекеры используют ту или иную программу в зависимости от конкретной ситуации.

Еще нужно учесть, что все эти программы консольные, не имеют встроенного GUI и, чтобы использовать их максимально эффективно, нужно уметь работать в консоли (см. врезку). А в идеале еще нужно уметь программировать командные файлы (BAT или CMD), чтобы максимально гибко настраивать работу программ. Тогда можно однократно составить для себя комплект командных файлов для разных атак, а потом, когда все настроено, весь хешкрекинг сведется к заполнению файла нужными хешами и запуску того или иного командного файла c определенными параметрами.

Консоль — райский дом хешкрекера

Самый продвинутый хешкрекерский софт — консольный и управляется либо через параметры командной строки, либо через редактирование файлов конфигурации. Но тенденция такова, что пользователи все дальше и дальше уходят от консоли, требуют графического интерфейса и наиболее популярный вопрос с форумов по работе с такими программами звучит так: «Я запустил программу, выскочило черное окно и закрылось. Что делать?» Ответ очевиден — изучать консоль.

Скорее всего, линуксоиды и так владеют навыками работы в консоли, а вот для пользователей Windows лучшим выбором будет программа FAR Manager. С ее помощью очень удобно работать со списками хешей и другими файлами. А если ее объединить с дополнительными инструментами (например, из состава программы Hash Manager), то получится просто убойный комплект, позволяющий обрабатывать любые файлы буквально за секунды.

Для этого нужно через пользовательское меню (по нажатию F2) на нужные клавиши назначить самые часто используемые инструменты — отсортировать файл, извлечь пароли из файла результатов, подсчитать количество строк в файле и так далее. После этого вся работа с нужным файлом сведется к трем действиям — встать на него курсором, вызвать F2 и нажать горячую клавишу.

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

Description

A brute force attack can manifest itself in many different ways, but
primarily consists in an attacker configuring predetermined values,
making requests to a server using those values, and then analyzing the
response. For the sake of efficiency, an attacker may use a dictionary
attack (with or without mutations) or a traditional brute-force attack
(with given classes of characters e.g.: alphanumeric, special, case
(in)sensitive). Considering a given method, number of tries, efficiency
of the system which conducts the attack, and estimated efficiency of the
system which is attacked the attacker is able to calculate approximately
how long it will take to submit all chosen predetermined values.

Отключение xmlrpc.php

Атаки путем запросов к файлу xmlrpc.php очень популярны, поскольку таким образом за один запрос возможно перебрать десятки тысяч комбинаций различных логинов и паролей. Поэтому очень важная часть защиты админ-панели — это отключение или ограничение доступа к данному файлу. В WordPress протокол XML-RPC используется для взаимодействия движка с различными внешними приложениями, например, Jetpack. Как показывает практика, в 99% сайтов файл xmlrpc.php не используется вообще. Если вы сомневаетесь, используется он у вас или нет, то создайте резервную копию файлов, которые вы будете изменять перед выполнением дальнейших инструкций.

Отключение xmlrpc.php при помощи плагинов

Для отключения xmlrpc.php можно использовать различные плагины, которых на данный момент уже достаточно много. Просто напишите в поиске в маркетплейсе плагинов «xmlrpc»:

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

Запрет доступа к  xmlrpc.php при помощи .htaccess

Первый вариант:

<IfModule mod_alias.c>
RedirectMatch 403 (?i)/xmlrpc.php
</IfModule>

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

Второй вариант:

<Files xmlrpc.php>
Require all denied
Require ip 127.0.0.1 #разрешить локальные подключения
Require ip 23.45.67.89 #один адрес
Require ip 10.20.30.40 #еще один адре
</Files>

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

Запрет доступа к  xmlrpc.php при помощи Nginx

Если на вашем сервере не используется Apache, то запрет доступа через Nginx будет выглядеть так:

location /xmlrpc.php
{
allow 23.45.67.89; #один адрес
allow 123.123.123.0/24; #блок адресов
deny all; #запрет всем остальным
}

Отключение xmlrpc.php при помощи пользовательской функции

Еще один вариант защиты связан с добавлением пользовательской функции в файл вашей темы сайта. В конце functions.php вашей темы добавьте код:

function shapeSpace_disable_xmlrpc_multicall($methods) {
unset($methods);
return $methods;
}
add_filter('xmlrpc_methods', 'shapeSpace_disable_xmlrpc_multicall');

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

Алгоритмы хеширования

С одной стороны, набор актуальных алгоритмов хеширования почти не меняется со временем. Причины просты — алгоритмы хеширования паролей пользователей ОС не меняются годами, да и в интернете сотни тысяч ресурсов все еще базируются на устаревших движках, и обновление версий не происходит, несмотря на то что все новые версии форумов и CMS уже поддерживают более надежное хеширование — например, в IPB версии 4 уже сразу стоит алгоритм bcrypt. С другой стороны, небольшие изменения все-таки происходят — все больше начинает попадаться очень тяжелых алгоритмов — различные варианты PBKDF2 и тот же bcrypt, которые брутятся с мизерной скоростью даже на фермах.

Всего же известны уже сотни алгоритмов, примеры их хешей можно посмотреть здесь. Подавляющее большинство алгоритмов хеширования базируется на каком-либо из стандартных алгоритмов — MD5, SHA-1, SHA-256 и SHA-512 или на их комбинациях. Брутфорсеры давно уже поддерживают десятки таких алгоритмов в GPU-версиях и сотни алгоритмов в CPU-версиях.

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

Ну а если так и не удается определить алгоритм, то можно спросить на форуме — например, здесь. Вдруг кто-то уже сталкивался с такими хешами?

Случайные величины в форме входа

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

Конкретная величина прописана в JavaScript коде:

getObj("Frm_Logintoken").value = "2";

И она меняется время от времени. Если передавать строку с неверно установленным токеном Frm_Logintoken, то роутер не примет даже правильный пароль. Это ещё одна защита от брутфорса. К счастью, patator имеет встроенный механизм обхода такой защиты.

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

Для брут-форса исследуемого роутера нужно предварительно получить тот же адрес на котором вводятся данные, то есть before_urls=58.11.48.84.

Пример поиска по регулярному выражению: before_egrep=’_N1_:getObj\(«Frm_Logintoken»\).value = «(\w+)»‘

Здесь переменной _N1_ присваивается значение обратной ссылки — выражения в скобках. \w+ обозначает главные составные символы, это синоним для «]»

Ещё раз — обратите внимание на скобки — это обратная ссылка. При этом в исходном фрагменте кода также присутствуют скобки — их нужно экранировать.

Также меняется передаваемая строка:

body='frashnum=&action=login&Frm_Logintoken=_N1_&Username=FILE0&Password=FILE1'.

Теперь в ней используется _N1_ для присвоения значения параметру Logintoken.

Дополнительные примеры, в том числе для сразу двух величин, смотрите на странице https://kali.tools/?p=269.

Если роутер (или веб-приложение) устанавливает кукиз со случайным значением, то достаточно использовать before_urls в паре с accept_cookie=1 (принимать кукиз для последующей передачи).

Полная команда для брут-форса формы входа, с учётом всех нюансов исследуемой модели роутера, выглядит так:

patator http_fuzz url="58.11.48.84" method=POST body='frashnum=&action=login&Frm_Logintoken=_N1_&Username=FILE0&Password=FILE1' 0=users.txt 1=passwords.txt accept_cookie=1 header='Cookie: _TESTCOOKIESUPPORT=1' -t 1 -x quit:code=302 -x ignore:code=200 --rate-limit=61 before_urls=58.11.48.84 before_egrep='_N1_:getObj\("Frm_Logintoken"\).value = "(\w+)"'

По другую сторону баррикады

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

Иногда для этого достаточно перейти на самую свежую версию движка и выбрать алгоритм, самый медленный по скорости брута. Но если обновление движка не планируется, а администратор хочет максимально обезопасить пароли своих пользователей от подбора, то есть другой вариант — пропатчить код проверки пароля так, чтобы у всех вновь зарегистрированных пользователей (или сменивших свои пароли после определенной даты) пароли хешировались по-другому. Как?

Конечно, можно использовать любой стандартный тяжелый алгоритм из Linux-функции crypt() — sha512crypt или bcrypt. Но если удастся заполучить такие хеши, то хешкрекер по сигнатурам сразу определит алгоритм и сможет ломать хеши (хоть и медленно). Вывод — нужно хешировать пароли так, чтобы хешкрекер не мог однозначно определить алгоритм по виду хеша, а это делается только нестандартными методами.

Например, можно подмешивать к паролю статическую соль (пусть даже одинаковую для всех, но очень длинную — 200–500 символов) и хешировать обычной PHP-функцией md5. Этой соли в БД форума нет (как, например, в движках vBulletin или osCommerce), она прошита только в PHP-коде, доступ к которому получить гораздо сложнее, чем к хешам. Но даже если заполучить эту соль, то почти нет брутфорсеров, поддерживающих работу с такой длинной солью (во всяком случае, на GPU — точно нет).

Другой вариант — циклически хешировать обычный MD5 от пароля этак 50–100 тысяч раз. На скорости авторизации пользователей это почти не скажется, но скорость брута таких хешей будет мизерной (при условии, что еще удастся выяснить количество итераций — опять же, только из PHP-кода). А если не удастся — то их вообще не сбрутить.

Еще можно взять более длинный хеш от другого алгоритма (например, SHA-256 или SHA-512) и вместо цельного хеша хранить в БД его фрагмент размером 32 символа из середины хеша (да еще и байты можно переставить). Хешкрекер, увидев такой хеш, будет уверен, что это MD5 (или его модификация), и будет пытаться сбрутить его, но бесполезно.

В общем, тут фантазия безгранична — автор за годы работы с хешами сталкивался с массой различных хитроумных видов хеширования, но факт налицо — очень много дампов от самописных CMS, или от коммерческих CMS без доступных исходников, или от пропатченных (по-видимому) форумов, и CMS остаются до сих пор несломанными. Что там внутри намешано при хешировании — неизвестно.

И нестареющий совет всем пользователям: самый надежный вариант защитить свой аккаунт от взлома, даже если был получен доступ к хешу от вашего пароля, — использовать длинный пароль, состоящий из случайных символов. Такие пароли не ломаются!

Классификация и способы выполнения брутфорс-атаки

Существует несколько видов атаки методом «грубой силы»:

  • Персональный взлом. В этом случае брутфорс направлен на получение доступа к личным данным конкретного пользователя: аккаунтам социальных сетей, почте, сайту. Во время общения через интернет, в том числе используя мошеннические схемы, злоумышленник старается узнать логин, персональные сведения и другую информацию, которая понадобится для подбора пароля. Далее взломщик прописывает в специальную программу адрес ресурса, к которому нужен доступ, логин учетной записи, подключает словарь и подбирает пароль. Если пароль пользователя основан на личной информации и состоит из малого количества символов, то попытка злоумышленника может принести успех даже за короткое время.
  • «Брут-чек». Этот вид брутфорса означает охоту на пароли в больших количествах. Соответственно, цель — завладеть данными не одного пользователя, а множества разных аккаунтов на нескольких веб-ресурсах. К хакерской программе подключается база логинов и паролей каких-либо почтовых сервисов, а также прокси-лист, чтобы замаскировать узел, не дав веб-сервисам почты обнаружить атаку. При регистрации на сайте, в социальной сети или в игре пользователь заполняет поле с адресом своей почты, на который приходят данные для входа в соответствующий аккаунт. В опциях брутфорса прописывается список названий сайтов или других ключевых слов, по которым программа будет искать в почтовых ящиках именно эти письма с логинами и паролями, вынимать и копировать информацию в отдельный файл. Так киберпреступник получает сотни паролей и может использовать их в любых целях.
  • Удаленный взлом операционной системы компьютерного устройства. Брутфорс в комбинации с другими взламывающими утилитами применяется для получения доступа к удаленному ПК. Взлом такого вида начинается с поиска сетей, подходящих для атаки. Адреса пользователей добываются особыми программами или берутся из баз. Словари перебора и списки IP-адресов вводятся в настройках brute force. В случае успешного подбора пароля сохраняются IP-адрес машины жертвы и данные для входа, которые далее используются злоумышленником — например, с целью полного управления ПК через утилиту Radmin или другую подобную программу.

Brute force attack definition

So, what is brute force exactly? Brute force definition can be given as such — it is a type of cryptanalytic attack that uses a simple trial and error, or guessing method. In other words — a criminal gains access to a user’s account by guessing the login credentials.

Sometimes, brute force attacks are still done by hand, meaning that there’s an actual person sitting in some basement and playing a guessing game with your credentials. But, more often than not these days, the hackers use a brute force algorithm, or brute force password cracker, which is, basically, a bot that submits infinite variations of username/password combination and notifies the hacker when it gets in.

Examples

Brute-force attacks are often used for attacking authentication and
discovering hidden content/pages within a web application. These attacks
are usually sent via GET and POST requests to the server. In regards to
authentication, brute force attacks are often mounted when an
is not in place.

Example 1

A web application can be attacked via brute force by taking a word list
of known pages, for instance from a popular content management system,
and simply requesting each known page then analyzing the HTTP response
code to determine if the page exists on the target server.

DirBuster
is a tool that does exactly this.

Other tools for this type of attack are as follows:

— dirb
— WebRoot

dirb is capable of:

— setting cookies
— adding any HTTP header
— using PROXY
— mutating objects which were found
— testing http(s) connections
— seeking catalogues or files using defined dictionaries and templates
— and much much more

The simplest test to perform is:

In the output the attacker is informed that directory was
found. The attacker has now found a potential directory of interest
within this application. In dirb’s templates there are, among others, a
dictionary containing information about invalid httpd configurations.
This dictionary will detect weaknesses of this kind.

The application
WebRoot.pl, written by
CIRT.DK, has embedded mechanisms for parsing server responses, and based
on the phrase specified by the attacker, measures if the server response
is expected.

For example:

Np.

Another example is to examine ranges of the variable’s values:

Road Blocks:

One of the main issues with tools like dirb/dirbuster consist in the
analysis of server responses. With more advanced server configuration
(e.g. with mod_rewrite) automatic tools are sometimes unable to
determine “File not found” errors due to the server response being an
HTTP response code 200 but the page itself indicates “File not found”.
This can lead to false positives if the brute force tool is only relying
on HTTP response codes.

Suite](http://portswigger.net/), can be used to parse specific parts of
the page returned, looking for certain strings in an effort to reduce
false positives.

Example 2

In regards to authentication, when no password policy is in place an
attacker can use lists of common username and passwords to brute force a
username or password field until successful authentication.

Заключение

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

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

Как сломать хеш, если под руками нет ни железа, ни софта?

Для этого можно проверить свой хеш в онлайн-базах хешей типа www.cmd5.ru. Или сразу на сервисах типа www.hashchecker.de, которые проверяют хеш массово в десятках баз, и, может быть, тебе повезет.

Но у таких сервисов есть недостаток — в основном они содержат хеши от искусственно сгенерированных паролей. Пока единственный сервис, где собраны только реальные хеши и пароли пользователей, — Hash Finder. На нем уже накоплено более 500 миллионов таких хешей и паролей — все они были кем-то когда-то реально использованы, поэтому процент найденных паролей на нем гораздо выше, чем на других сервисах.

Еще вариант — разместить свой хеш (или список хешей) на одном из хешкрекерских форумов, где всегда можно получить помощь. Самые популярные форумы:

  • forum.insidepro.com;
  • forum.hashkiller.co.uk;
  • forum.antichat.ru/forums/76.

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

Заключение

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

В целом алгоритм всегда примерно одинаковый:

Анализ передаваемых данных. Это удобно делать с помощью Burp Suite

Особое внимание следует уделить произвольно меняющимся полям, кукиз, значению реферера и значению user-agent (это всё передаётся в HTTP заголовках)

Анализ возвращаемых данных и поиск самых характерных маркеров и событий, свидетельствующих о правильности или неправильности логина и пароля

Перед запуском брут-форса следует сделать проверку на методы противодействия брут-форсу

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

Некоторым видам защит (например, блокировка после нескольких неправильных попыток) невозможно противодействовать, но можно оптимизировать процесс атаки различными способами

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий