September 19, 2018

Обучение взлому и защите веб-приложений. Часть 2.(1) Словарная атака. Метод BrutForce.

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

Взлом пароля может занять много времени, поэтому на практике такие атаки, зачастую, безуспешны.

Авторизация методом HTTPauth (на веб сервере Apache).

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

Если вы размещаете такой файл в директории, к которой у веб-сервера есть доступ, то все файлы в нем станутзащищены по логину (id) и паролю пользователя.

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

Программа - notepad++

Для того, чтобы создать в Apache файл с логинами и паролями набираем в командной строке

\apache\bin\htpasswd.exe

здесь вы видите синтаксис для вызова этой команды

Пишем -c pass.htpasswd "имя пользователя без кавычек"

жмем enter и нам будет предложено ввести пароль для этого пользователя.

Имя целевого файла - pass

Файлы с расширением Htpasswd и Htacces защищены сервером по умолчанию и пользователи не могут получить к нимдоступ, однако лучше размещать эти файлы вне дерева документов веб-сервера.

Файл был создан!

Теперь перейдем к практике.

Стоит упомянуть про LiveHttpHeaders. Это приложение позволяет нам в живую увидеть общение между браузером и сервером.

Как мы видим на веб-сервере установлен специальный заголовок

"www-authenticate" 

Он дает браузеру инструкцию авторизовать пользователя.

Введем неправильный пароль и посмотрим результат:

Как мы можем видеть, браузер кодирует логин и пароль по схеме Base 64 и задаетспециальный http заголовок. Сервер декодирует эту строку и сравнивает сданными, сохраненными в htacces

Теперь отправим корректные логин и пароль:

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

Теперь попробуем запустить атаку, направленную наэтот метод авторизации. Для этого запустим HYDRA - приложение, осуществляющее словарные атаки на многие вещи, включая httpauth и веб формы.

Теперь мы видим описание параметров для вызова HYDRA.

Для параметра L давайте укажем файл, содержащий список имен пользователей.

-L..\dict_user.txt

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

dict_user.txt

Такой же файл есть и для паролей.

dict_pass.txt

Эти файлы имеют расширение .txt (то есть их можно открыть и в обычном блокноте)

Далее мы указываем файл, содержащий словарь паролей, а также адрес веб-сервера (который мы будеманализировать), имя атаки, а также путь к ресурсам, которые требуют авторизацию

-P..\dict_pass.txt localhost http-get /security/3/httpauth

Запускаем команду:

Как мы видим, атака была проведена успешно.

Возможно, стоит упомянуть еще одну схему авторизации:

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

Чтобы авторизоваться, пользователь должен написать логин admin и пароль root

Посмотрим как работает эта схема:

при отправлении неправильного логин/пароль будет отображаться Error, если же дана правильная пара - мы увидим logged in.