Несколько способов применения HTTP-аутентификации

Дата: 19.08.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Несколько способов применения HTTP-аутентификации

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

Знакомство с HTTP Basic Authentication

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

Реализация HTTP Basic Аuthentication (BA) — это самый простой способ для обеспечения контроля доступа к веб-ресурсам, поскольку он не требует файлов cookie, идентификаторов сеансов или специальных страниц для входа в систему; скорее, HTTP Basic Аuthentication использует стандартные поля в заголовке HTTP, устраняя необходимость в проведении рукопожатий.

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

Требования к установке лаборатории:

  • Сервер Apache (Ubuntu 14.04)
  • Машина для пентестинга (Kali Linux)

Настройка аутентификации по вводу пароля

Установка пакета утилит Apache

Пора начинать.

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

sudo apt-get install apache2 apache2-utils
Несколько способов применения HTTP-аутентификации

Создание файла паролей

Теперь необходимо ввести команду htpasswd для создания файла паролей, который Apache будет использовать для аутентификации пользователей. Применение скрытого файла “htpasswd » в каталоге конфигурации /etc/apache2 поможет хранить конфиденциальные данные юзеров в безопасности.

sudo htpasswd -c /etc/apache2/.htpasswd raj
cat /etc/apache2/.htpasswd
Несколько способов применения HTTP-аутентификации

Настройка контроля доступа внутри виртуального хоста

Пользователь сохранит следующую конфигурацию в виде 000-default.conf файла.

gedit etc/apache2/sites-enabled/000-default.conf
<Directory "/var/www/html">
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Directory>
Несколько способов применения HTTP-аутентификации

Настройка контроля доступа с помощью файлов .htaccess

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

sudo gedit /etc/apache2/apache2.conf
ServerName localhost
Несколько способов применения HTTP-аутентификации

После этого пользователь включит обработку .htaccess путем изменения директивы AllowOverride “None” на “All” в блоке для каталога /var/www, а затем сохранит файл и перезапустит службу Аpache.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Несколько способов применения HTTP-аутентификации

Затем ему нужно будет добавить файл htaccess в каталог, который он хочет защитить. Здесь, к примеру, пользователь желает ввести ограничение на весь веб-сайт, что может быть сделано через /var / www / html. Однако человек также имеет возможность поместить этот файл в любой другой каталог, где он хочет ограничить доступ для иных юзеров:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
sudo service apache2 restart

Во время настройки файла .htaccess пользователь добавил несколько опций в отношении каталога блоков. Стоит посмотреть, что несет в себе эта новая конфигурация:

  • AuthType Basic: позволит настроить базовую аутентификацию для сайта пользователя.
  • AuthName «Restricted Contents»: покажет имя аутентификации в приглашении.
  • AuthUserFile /etc/apache2/.htpasswd: сможет показать расположение файла аутентификации.
  • Require Valid-user: будет использоваться одним пользователем, который подтвердил свою аутентификацию и которому разрешен доступ к веб-сайту.
Несколько способов применения HTTP-аутентификации

Подтверждение проверки паролем

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

Несколько способов применения HTTP-аутентификации

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

Несколько способов применения HTTP-аутентификации

Если человек является реальным пользователем и пытается получить доступ к защищенному паролем веб-сайту с помощью настоящих учетных данных, например, он создал учетную запись с raj: 123 для доступа к HTTP-сервису Аpache, то ему необходимо выполнить следующее:

Несколько способов применения HTTP-аутентификации

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

Несколько способов применения HTTP-аутентификации

Использование HTTP-аутентификации

xHydra

Это графическая версия для применения атаки через FTP-порт с помощью словарей для взлома системы. Чтобы этот метод работал, следует сделать следующее:

Пользователю нужно открыть xHydra на его машине Kali. Он выберет опцию Single Target и там введет IP-адрес компьютера-жертвы. После этого стоит указать HTTP в поле «Параметры протокола» и установить номер порта 80.

Несколько способов применения HTTP-аутентификации

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

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

Несколько способов применения HTTP-аутентификации

После этого следует открыть вкладку Пуск и нажать на соответствующую кнопку слева.

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

Несколько способов применения HTTP-аутентификации

Hydra

Hydra является популярным инструментом среди хакеров. Он может выполнять быстрые атаки с помощью словарей против более чем 50 протоколов, включая Тelnet, FTP, HTTP, Нttps, SMB, несколько баз данных и многое другое.

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

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

hydra -L user.txt -P pass.txt 192.168.0.105 http-get
  • L: обозначает путь для списка имен пользователей
  • P: обозначает путь к списку паролей

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

Несколько способов применения HTTP-аутентификации

Ncrack

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

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

ncrack -U user.txt -P pass.txt http://192.168.0.105

Здесь:

  • U: обозначает путь к списку имен пользователей
  • P: обозначает путь к списку паролей

Как можно заметить на картинке, пользователь успешно захватил HTTP-имя пользователя как raj и пароль как 123.

Несколько способов применения HTTP-аутентификации

Medusa

Medusa предназначена для быстрого, массового, параллельного, модульного взлома логинов. Инструмент поддерживает множество протоколов: AFP, CVS, FTP, HTTP, IMAP, rlogin, SSH, Subversion и VNC.

Пользователю необходимо выполнить следующую команду:

medusa -h 192.168.0.105 -U user.txt -P pass.txt -M http -f

Здесь:

  • U: обозначает путь к списку имен пользователей
  • P: обозначает путь к списку паролей

Как можно заметить на картинке, пользователь успешно захватил HTTP-имя пользователя как raj и пароль как 123.

Несколько способов применения HTTP-аутентификации

Metasploit

Этот модуль пытается аутентифицироваться в службе HTTP. Пользователю нужно открыть терминал Kali типа msfconsole и затем ввести:

use auxiliary/scanner/http/http_login
msf auxiliary(scanner/http/http_login) > set user_file user.txt
msf auxiliary(scanner/http/http_login) > set pass_file pass.txt
msf auxiliary(scanner/http/http_login) > set rhosts 192.168.0.105
msf auxiliary(scanner/http/http_login) >  set stop_on_success true
msf auxiliary(scanner/http/http_login) > exploit
Несколько способов применения HTTP-аутентификации

Burp Suite

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

Несколько способов применения HTTP-аутентификации

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

Теперь настало время, чтобы сгенерировать закодированные значения для проверки подлинности внутри Burp Suite. Следует нажать на вкладку «Действие» и отправиться в HTTP Fuzzing attack.

Несколько способов применения HTTP-аутентификации

После этого необходимо открыть фрейм Intruder и нажать на позицию. Нужно настроить такую позицию, при которой полезная нагрузка будет добавлена в запрос. Тип атаки определяет способ, которым полезная нагрузка назначается в отношении позиции полезной нагрузки. Теперь пользователь выберет «Тhe Еncoded Value of Authentication» для позиции полезной нагрузки и нажмет на кнопку «Добавить» в левой части экрана.

Несколько способов применения HTTP-аутентификации

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

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

blank

Но он хочет отправить запрос в закодированном значении полезной нагрузки. Чтобы закодировать ее, пользователю следует нажать на кнопку «Добавить», находящуюся в разделе Обработка полезной нагрузки.

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

blank

Это запустит лобовое нападение, что попытается сопоставить строку для аутентификации пользователя. На скриншоте человек может наблюдать статус «200 OK» и длину выделенного значения «11788», отличающуюся от остальных значений. Это означает, что пользователь может применить это закодированное значение для обхода аутентификации, которая исходит из запроса №5. Теперь следует проверить имя пользователя и пароль на 5-й строке в словаре.

В словаре были найдены данные raj: 123, что имеют соответствующую аутентификацию.

Пользователь также может использовать это закодированное значение Auth для обхода страницы аутентификации Apache HTTP с помощью перехваченных данных Вurp Suite.

blank

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

blank

Отлично!! Пользователь успешно получил доступ к содержимому веб-сайта.

blank

Автор переведенной статьи: AArti Singh.

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

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *