Использование Basic HTTP Authentication в Gobuster

Beginner
Практиковаться сейчас

Введение

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

Определение цели, защищенной Basic HTTP Auth

На этом шаге вы определите каталог веб-сервера, защищенный Basic HTTP Authentication. Мы настроили локальный веб-сервер Apache с защищенным каталогом /protected_area. При попытке доступа к этому каталогу без учетных данных сервер запросит имя пользователя и пароль.

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

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

curl http://localhost/protected_area/

Вы должны увидеть вывод, похожий на этот, указывающий на ответ 401 Unauthorized и заголовок WWW-Authenticate:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested. Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
<hr>
<address>Apache/2.4.52 (Ubuntu) Server at localhost Port 80</address>
</body></html>

Этот вывод подтверждает, что /protected_area защищен Basic HTTP Authentication.

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

curl http://localhost/protected_area/secret.txt

Вы получите аналогичный ответ 401 Unauthorized. Это подтверждает, что любой ресурс в /protected_area требует аутентификации.

Получение имени пользователя и пароля

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

Имя пользователя: labexuser, а пароль: labexpassword.

Вы можете проверить эти учетные данные, используя curl с флагом -u, который позволяет напрямую указать имя пользователя и пароль.

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

curl -u labexuser:labexpassword http://localhost/protected_area/

Теперь вы должны увидеть успешный ответ, вероятно, пустой список каталогов или страницу индекса по умолчанию, если она существует. Поскольку в /protected_area нет index.html, вы можете увидеть 403 Forbidden или список каталогов, если включены Indexes. Главное, что вы не получили ошибку 401 Unauthorized.

Теперь попробуйте получить доступ к файлу secret.txt в защищенном каталоге, используя учетные данные:

curl -u labexuser:labexpassword http://localhost/protected_area/secret.txt

Теперь вы должны увидеть содержимое файла secret.txt:

This is a secret file.

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

Использование флага -U для имени пользователя

На этом шаге вы узнаете, как указать имя пользователя для Basic HTTP Authentication в Gobuster с помощью флага -U. Этот флаг имеет решающее значение, когда вы знаете имя пользователя, но, возможно, брутфорсите пароль или просто вам нужно предоставить имя пользователя как часть процесса аутентификации.

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

Создайте простой файл списка слов с именем common.txt в вашем каталоге ~/project:

echo -e "admin\nuser\nprotected_area\nsecret.txt" > ~/project/common.txt

Теперь запустите Gobuster против http://localhost, используя этот список слов, но без аутентификации:

gobuster dir -u http://localhost -w ~/project/common.txt

Вы заметите, что Gobuster, вероятно, сообщит о 401 Unauthorized для записи /protected_area, указывая, что он не может получить к ней доступ без учетных данных.

/protected_area       (Status: 401) [Size: 399]

Теперь давайте используем флаг -U для указания имени пользователя labexuser. Мы пока опустим пароль, чтобы продемонстрировать эффект только имени пользователя.

gobuster dir -u http://localhost -w ~/project/common.txt -U labexuser

Даже при указании имени пользователя Gobuster по-прежнему будет получать ответ 401 Unauthorized, поскольку пароль также требуется. Этот шаг в основном демонстрирует синтаксис для предоставления имени пользователя.

/protected_area       (Status: 401) [Size: 399]

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

Использование флага -P для пароля

На этом шаге вы узнаете, как указать пароль для Basic HTTP Authentication в Gobuster с помощью флага -P. Этот флаг в сочетании с флагом -U позволяет Gobuster выполнять аутентифицированные сканирования.

Продолжая с предыдущего шага, мы знаем, что имя пользователя labexuser, а пароль labexpassword. Теперь давайте добавим флаг -P для указания пароля.

Выполните следующую команду Gobuster, включая флаги имени пользователя (-U) и пароля (-P):

gobuster dir -u http://localhost -w ~/project/common.txt -U labexuser -P labexpassword

Внимательно наблюдайте за выводом. На этот раз, когда Gobuster встретит /protected_area, он сможет успешно аутентифицироваться и сообщить статус 200 OK или 403 Forbidden (в зависимости от настроек списка каталогов), а не 401 Unauthorized.

/protected_area       (Status: 403) [Size: 277]

Статус 403 Forbidden указывает на то, что доступ был предоставлен (аутентификация прошла успешно), но сервер настроен так, чтобы запрещать списки каталогов. Это успешная аутентификация, в отличие от 401 Unauthorized, которую мы видели ранее.

Это демонстрирует, что, предоставляя как имя пользователя, так и пароль, Gobuster может успешно аутентифицироваться с помощью Basic HTTP Authentication и продолжить брутфорс каталогов.

Выполнение сканирования и доступ к защищенным ресурсам

На этом заключительном шаге вы выполните полное сканирование Gobuster в защищенной области, убедившись, что оно сможет обнаружить файл secret.txt. Это демонстрирует практическое применение Basic HTTP Authentication с Gobuster для обнаружения скрытых ресурсов.

Мы изменим целевой URL, чтобы сканировать конкретно в /protected_area, и будем использовать список слов, который включает secret.txt.

Сначала убедимся, что наш список слов common.txt содержит secret.txt. Если вы создали его на Шаге 3, он уже должен там быть.

Теперь запустите Gobuster, нацелившись на http://localhost/protected_area/ с правильным именем пользователя и паролем:

gobuster dir -u http://localhost/protected_area/ -w ~/project/common.txt -U labexuser -P labexpassword

После завершения сканирования вы должны увидеть вывод, похожий на этот, указывающий, что secret.txt был найден со статусом 200 OK:

/secret.txt           (Status: 200) [Size: 21]

Это подтверждает, что Gobuster успешно аутентифицировался и обнаружил файл secret.txt в защищенном каталоге.

Теперь вы можете проверить содержимое обнаруженного файла с помощью curl с учетными данными:

curl -u labexuser:labexpassword http://localhost/protected_area/secret.txt

Вы должны увидеть:

This is a secret file.

На этом лабораторная работа завершена. Вы успешно научились использовать Gobuster с Basic HTTP Authentication для обнаружения защищенных веб-ресурсов.

Резюме

В этой лабораторной работе вы получили практический опыт использования Gobuster для перечисления каталогов и файлов на веб-серверах, защищенных Basic HTTP Authentication. Вы начали с определения защищенной цели и понимания ответа 401 Unauthorized. Затем вы узнали, как передавать необходимые имя пользователя и пароль в Gobuster с помощью флагов -U и -P. Наконец, вы успешно выполнили аутентифицированное сканирование, продемонстрировав способность Gobuster обнаруживать скрытые ресурсы, такие как secret.txt, в защищенной области. Этот навык имеет решающее значение для пентестеров и специалистов по безопасности при работе с веб-приложениями, использующими механизмы базовой аутентификации.