Введение
В этой лабораторной работе вы научитесь обрабатывать ситуации, когда Gobuster сталкивается с ошибками TLS-сертификата, в частности, при работе с самоподписанными или недействительными сертификатами. По умолчанию Gobuster, как и многие другие инструменты, выполняет строгую проверку TLS-сертификата для обеспечения безопасной связи. Однако в определенных сценариях тестирования вам может потребоваться обойти эту проверку. Эта лабораторная работа проведет вас через идентификацию такой цели, наблюдение за ошибкой по умолчанию и затем использование флага -k для отключения проверки сертификата, что позволит продолжить сканирование. Наконец, мы обсудим последствия отключения проверки TLS для безопасности.
Определение цели с использованием самоподписанного или недействительного TLS-сертификата
На этом этапе вы определите URL-адрес цели, который использует самоподписанный или иной недействительный TLS-сертификат. Для целей этой лабораторной работы мы будем использовать общедоступный тестовый сайт, известный своими проблемами с сертификатами, которые Gobuster будет отмечать. Это позволит нам надежно продемонстрировать проблему и ее решение.
Откройте терминал и используйте curl для попытки доступа к URL-адресу цели. Вы должны увидеть ошибку сертификата, указывающую на то, что сертификат не является доверенным для вашей системы. Это именно тот сценарий, с которым Gobuster также столкнется с проблемами.
Выполните следующую команду:
curl https://self-signed.badssl.com/
Вы должны увидеть вывод, похожий на этот, указывающий на проблему с сертификатом:
curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.haxx.org/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about such a situation and
how to fix it, please consult the relevant articles in the links above.
Этот вывод подтверждает, что цель https://self-signed.badssl.com/ представляет сертификат, которому по умолчанию не доверяют, что именно нам и нужно для этой лабораторной работы.
Попытка сканирования и наблюдение ошибки сертификата
На этом этапе вы попытаетесь запустить Gobuster против определенной цели, не отключая проверку TLS-сертификата. Как и ожидалось, Gobuster столкнется с самоподписанным сертификатом и завершит работу с ошибкой, аналогичной той, что показал curl. Это демонстрирует поведение Gobuster по умолчанию, которое заключается в строгой проверке сертификатов.
Выполните следующую команду Gobuster:
gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -q
dir: Указывает, что мы выполняем сканирование методом перебора директорий/файлов.-u https://self-signed.badssl.com/: Устанавливает URL цели.-w /usr/share/wordlists/dirb/common.txt: Указывает список слов (wordlist) для использования при переборе.-q: Подавляет баннер и другой необязательный вывод, делая ошибку более наглядной.
Вы должны увидеть вывод, похожий на этот, указывающий на ошибку TLS-соединения (TLS handshake error):
[!] GoBuster is unable to connect to the target: Get "https://self-signed.badssl.com/": x509: certificate signed by unknown authority
Это сообщение об ошибке подтверждает, что Gobuster не смог установить соединение из-за недоверенного сертификата, что препятствует продолжению сканирования.
Повторное сканирование с флагом -k
На этом этапе вы повторно запустите сканирование Gobuster, но на этот раз включите флаг -k. Флаг -k (сокращение от --no-tls-validation) предписывает Gobuster пропустить проверку TLS-сертификата. Это полезно в контролируемых средах или при тестировании целей с самоподписанными сертификатами, когда вы явно доверяете цели, несмотря на предупреждение сертификата.
Выполните следующую команду Gobuster, добавив флаг -k:
gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -k -q
-k: Это ключевой флаг, который отключает проверку TLS-сертификата.
На этот раз Gobuster не должен немедленно завершиться с ошибкой сертификата. Вместо этого он начнет процесс перебора директорий. Вы можете не увидеть немедленного вывода, если список слов большой и директории не будут найдены быстро, но отсутствие предыдущей ошибки указывает на успех.
Наблюдение за продолжением сканирования
На этом шаге вы убедитесь, что сканирование Gobuster теперь активно выполняется и обрабатывает список слов благодаря флагу -k. Поскольку флаг -q использовался для подавления большей части вывода, вы можете не видеть много активности, если только не будет найдена директория. Чтобы сделать прогресс более наглядным, мы удалим флаг -q и позволим Gobuster работать в течение короткого периода времени.
Снова выполните следующую команду, но на этот раз без флага -q, чтобы вы могли видеть прогресс:
gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -k
Теперь вы должны увидеть обычный вывод Gobuster, указывающий на то, что он активно сканирует цель. Вывод покажет прогресс и любые обнаруженные директории или файлы. Например:
===============================================================
Gobuster vX.X.X -- by OJ <@_odejim> & @Neohapsis
===============================================================
[+] Url: https://self-signed.badssl.com/
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirb/common.txt
[+] Status codes: 200,204,301,302,307,401,403,405
[+] User Agent: gobuster/X.X.X
[+] Timeout: 10s
[+] Allow redirects: false
[+] Follow new location: false
[+] No TLS validation: true
===============================================================
2023/10/27 10:30:00 Starting gobuster in directory enumeration mode
/admin (Status: 301)
/login (Status: 301)
...
Вы можете нажать Ctrl+C, чтобы остановить сканирование, как только убедитесь, что оно выполняется. Ключевой момент заключается в том, что сканирование началось успешно, без предыдущей ошибки сертификата.
Понимание последствий отключения проверки безопасности
На этом заключительном этапе мы обсудим последствия отключения проверки TLS-сертификатов. Хотя флаг -k полезен для конкретных сценариев тестирования, крайне важно понимать, почему его следует использовать с осторожностью и только при необходимости.
Когда вы отключаете проверку TLS-сертификатов, вы, по сути, говорите Gobuster (или любому другому инструменту) доверять любому сертификату, представленному сервером, независимо от того, является ли он действительным, просроченным, самоподписанным или выданным недоверенным центром. Это открывает двери для ряда рисков безопасности:
- Атаки типа «человек посередине» (Man-in-the-Middle, MitM): Злоумышленник может перехватить ваше соединение с легитимным сервером и представить свой собственный поддельный сертификат. Если проверка отключена, ваш инструмент будет неосознанно подключаться к серверу злоумышленника, позволяя ему прослушивать или манипулировать вашим трафиком.
- Выдача себя за другое лицо: Вы можете случайно подключиться к вредоносному серверу, выдающему себя за вашу предполагаемую цель. Без проверки сертификата нет криптографической гарантии того, что вы общаетесь с подлинным сервером.
- Компрометация целостности и конфиденциальности данных: Если злоумышленнику удастся успешно провести атаку MitM, он потенциально сможет читать, изменять или вставлять данные в ваше общение, компрометируя как конфиденциальность, так и целостность.
Когда допустимо использовать -k?
- Контролируемые среды тестирования: Когда вы тестируете приложение или сервер в лабораторной среде, где вы явно контролируете сервер и осведомлены о его самоподписанных или недействительных сертификатах.
- Внутренние сети: Для внутренних инструментов, взаимодействующих в пределах доверенной сети, где у вас есть полный контроль над всеми конечными точками и вы понимаете риски.
- Отладка: Временно для целей отладки, но всегда включайте проверку обратно для продакшн-систем или конфиденциальных операций.
Лучшая практика: Всегда отдавайте приоритет надежной проверке TLS-сертификатов. Отключайте ее только при крайней необходимости и с полным пониманием связанных с этим рисков. Для продакшн-систем всегда убедитесь, что используются действительные, доверенные сертификаты.
На этом завершается лабораторная работа по отключению проверки TLS-сертификатов в Gobuster. Вы узнали, как идентифицировать цель с проблемами сертификатов, наблюдать за поведением Gobuster по умолчанию, а затем обойти проверку с помощью флага -k, а также поняли критические последствия для безопасности.
Резюме
В этой лабораторной работе вы успешно научились управлять проверкой TLS-сертификатов в Gobuster. Вы начали с идентификации цели с самоподписанным сертификатом с помощью curl, что продемонстрировало типичную ошибку сертификата. Затем вы наблюдали, как Gobuster по умолчанию не может сканировать такую цель из-за строгой проверки TLS. Основная часть лабораторной работы заключалась в использовании флага -k с Gobuster для обхода проверки сертификатов, что позволило продолжить сканирование. Наконец, вы получили представление о значительных последствиях отключения проверки TLS для безопасности, подчеркнув ее осторожное использование только в контролируемых или специфических сценариях тестирования. Эти знания имеют решающее значение для эффективного и безопасного использования инструментов веб-сканирования.
