Добро пожаловать обратно, начинающие кибервоины!
Способность эффективно картировать, сканировать и анализировать веб-приложения может стать решающим фактором между успешным вмешательством и необнаружением критических уязвимостей, способных поставить под угрозу безопасность всей организации. Традиционные инструменты сканирования служили нам верой и правдой на протяжении многих лет, но поскольку веб-приложения становятся всё более сложными благодаря современным JavaScript-фреймворкам, одностраничным приложениям и сложным механизмам аутентификации, нам нужны инструменты, способные идти в ногу с этими технологическими достижениями.
Представляем Katana — фреймворк нового поколения для сканирования и анализа веб-страниц, разработанный специалистами по безопасности ProjectDiscovery. Katana отличается от традиционных решений для сканирования благодаря своей современной архитектуре и подходу к анализу веб-приложений. В то время как предыдущие инструменты разрабатывались для более простых веб-приложений, активно использующих серверный рендеринг и традиционные HTML-структуры, Katana понимает и ориентируется в сложной экосистеме современной веб-разработки.
Одной из самых впечатляющих особенностей Katana является её способность обрабатывать выполнение JavaScript и динамический рендеринг контента. Традиционные поисковые роботы часто упускают критически важные функции, поскольку не могут выполнять JavaScript или понимать, как современные веб-приложения динамически генерируют контент. Katana решает это ограничение, внедряя возможности headless-браузера, которые позволяют полностью отображать страницы, выполнять JavaScript и обнаруживать контент, который иначе остался бы скрытым.
Давайте рассмотрим, как загрузить, установить и использовать этот мощный разведывательный инструмент для улучшения возможностей тестирования безопасности веб-приложений.
Сначала проверьте, установлен ли Go:
версия kali> go
Установите Katana с помощью менеджера пакетов Go:
kali> перейти на установку github.com/projectdiscovery/katana/cmd/katana@latest
Проверьте установку:
кали> катана -версия
Режимы сканирования
Katana поддерживает два основных режима сканирования, каждый из которых адаптирован для различных типов веб-приложений и вариантов использования.
Стандартный режим разработан для скорости и простоты, что делает его идеальным для традиционных веб-сайтов. Он использует встроенную HTTP-библиотеку Go для обработки запросов и ответов, анализируя необработанные HTTP-ответы без выполнения JavaScript и рендеринга DOM. Этот облегченный подход обеспечивает высокую производительность, но может привести к пропуску конечных точек в более сложных приложениях, использующих события браузера.
В отличие от этого, режим Headless Mode обеспечивает более тщательное сканирование, имитируя реальную среду браузера. Этот режим особенно полезен для современных приложений с обширным использованием JavaScript, поскольку он захватывает как необработанный, так и отрисованный контент. Имитируя легитимный отпечаток браузера (включая заголовки TLS и user-agent), он улучшает охват и обнаружение динамических элементов.
Вы можете включить Headless Mode с помощью -headlessфлага и настроить его дальше с помощью нескольких опций:
кали> катана -u https://example-target.com -d 5 -c 10 -o target-crawl-results.txt
-u : указывает целевой URL
-d 5 : Устанавливает максимальную глубину сканирования 5 уровней.
-c 10 : Использует 10 одновременных потоков для более быстрого сканирования
-o : Сохраняет все обнаруженные URL-адреса в файле
kali> katana -u https://angular-app.com -js-crawl -headless -timeout 30 -delay 2 -o angular-results.json
-js-crawl : включает выполнение JavaScript во время сканирования для обработки контроллеров и директив AngularJS.
-headless : использует headless Chrome для рендеринга шаблонов AngularJS и выполнения циклов дайджеста.
-timeout 30 : устанавливает 30-секундный тайм-аут для загрузки страницы, чтобы обеспечить загрузку AngularJS.
-delay 2 : добавляет 2-секундную задержку между запросами, чтобы разрешить переходы маршрутизации AngularJS.
Обратите внимание, что для обеспечения полного обнаружения всех известных файлов в целевом приложении требуется минимальная глубина 3.
Возможности фильтрации
Katana предлагает мощные функции фильтрации, которые помогают пользователям точно обрабатывать, уточнять и управлять результатами сканирования. Эти возможности позволяют легко выделять ценные данные, устранять шум и адаптировать результаты к конкретным целям.
Пользователи могут фильтровать вывод по определённым полям, включать или исключать URL-адреса на основе расширений или регулярных выражений и даже определять настраиваемые поля с помощью файла конфигурации YAML. Эта гибкость критически важна для обработки зачастую больших объёмов данных, генерируемых в ходе сканирования, позволяя пользователям сосредоточиться на наиболее релевантной информации.
Некоторые основные параметры фильтрации включают в себя:
чтобы извлечь только .jsURL-адреса (включая те, которые содержат параметры запроса) и сохранить их полные URL-адреса в файле, можно выполнить:
кали> катана -u -match-regex “\.js” -f url -sf url -o js-files.txt
Краткое содержание
Независимо от того, проводите ли вы тесты на проникновение, исследования программ вознаграждения за обнаружение уязвимостей или масштабные операции в кибервойне, расширенные возможности и современная архитектура Katana делают его незаменимым дополнением к вашему набору хакерских инструментов.
Способность эффективно картировать, сканировать и анализировать веб-приложения может стать решающим фактором между успешным вмешательством и необнаружением критических уязвимостей, способных поставить под угрозу безопасность всей организации. Традиционные инструменты сканирования служили нам верой и правдой на протяжении многих лет, но поскольку веб-приложения становятся всё более сложными благодаря современным JavaScript-фреймворкам, одностраничным приложениям и сложным механизмам аутентификации, нам нужны инструменты, способные идти в ногу с этими технологическими достижениями.
Представляем Katana — фреймворк нового поколения для сканирования и анализа веб-страниц, разработанный специалистами по безопасности ProjectDiscovery. Katana отличается от традиционных решений для сканирования благодаря своей современной архитектуре и подходу к анализу веб-приложений. В то время как предыдущие инструменты разрабатывались для более простых веб-приложений, активно использующих серверный рендеринг и традиционные HTML-структуры, Katana понимает и ориентируется в сложной экосистеме современной веб-разработки.
Одной из самых впечатляющих особенностей Katana является её способность обрабатывать выполнение JavaScript и динамический рендеринг контента. Традиционные поисковые роботы часто упускают критически важные функции, поскольку не могут выполнять JavaScript или понимать, как современные веб-приложения динамически генерируют контент. Katana решает это ограничение, внедряя возможности headless-браузера, которые позволяют полностью отображать страницы, выполнять JavaScript и обнаруживать контент, который иначе остался бы скрытым.
Давайте рассмотрим, как загрузить, установить и использовать этот мощный разведывательный инструмент для улучшения возможностей тестирования безопасности веб-приложений.
Установка Катаны
Существует несколько способов установки инструмента. В этой статье я сосредоточусь на установке с использованием языка программирования Go.Сначала проверьте, установлен ли Go:
версия kali> go
Установите Katana с помощью менеджера пакетов Go:
kali> перейти на установку github.com/projectdiscovery/katana/cmd/katana@latest
Проверьте установку:
кали> катана -версия
Режимы сканирования
Katana поддерживает два основных режима сканирования, каждый из которых адаптирован для различных типов веб-приложений и вариантов использования.
Стандартный режим разработан для скорости и простоты, что делает его идеальным для традиционных веб-сайтов. Он использует встроенную HTTP-библиотеку Go для обработки запросов и ответов, анализируя необработанные HTTP-ответы без выполнения JavaScript и рендеринга DOM. Этот облегченный подход обеспечивает высокую производительность, но может привести к пропуску конечных точек в более сложных приложениях, использующих события браузера.
В отличие от этого, режим Headless Mode обеспечивает более тщательное сканирование, имитируя реальную среду браузера. Этот режим особенно полезен для современных приложений с обширным использованием JavaScript, поскольку он захватывает как необработанный, так и отрисованный контент. Имитируя легитимный отпечаток браузера (включая заголовки TLS и user-agent), он улучшает охват и обнаружение динамических элементов.
Вы можете включить Headless Mode с помощью -headlessфлага и настроить его дальше с помощью нескольких опций:
- -sc/ -system-chrome: Использовать локально установленный Chrome
- -sb/ -show-browser: Показывать окно браузера во время выполнения
- -ho/ -headless-options: Передача пользовательских параметров Chrome
- -nos/ -no-sandbox: Отключить песочницу Chrome (полезно для пользователей root)
- -cdd/ -chrome-data-dir: Укажите пользовательский каталог данных Chrome
- -scp/ -system-chrome-path: Укажите конкретный путь к исполняемому файлу Chrome
- -noi/ -no-incognito: Отключить режим инкогнито
Базовая разведка веб-сайта
Начнём с фундаментального сценария разведки, в котором нам нужно отобразить структуру целевого веб-сайта и обнаружить все доступные конечные точки. В этом примере попробуем разобраться в структуре приложения Vesti.ru – российского новостного сайта.кали> катана -u https://example-target.com -d 5 -c 10 -o target-crawl-results.txt
-u : указывает целевой URL
-d 5 : Устанавливает максимальную глубину сканирования 5 уровней.
-c 10 : Использует 10 одновременных потоков для более быстрого сканирования
-o : Сохраняет все обнаруженные URL-адреса в файле
Сканирование приложений с большим объемом JavaScript
Современные веб-приложения часто используют JavaScript для генерации контента. Вот как реализовать одностраничное приложение на базе AngularJS.
kali> katana -u https://angular-app.com -js-crawl -headless -timeout 30 -delay 2 -o angular-results.json
-js-crawl : включает выполнение JavaScript во время сканирования для обработки контроллеров и директив AngularJS.
-headless : использует headless Chrome для рендеринга шаблонов AngularJS и выполнения циклов дайджеста.
-timeout 30 : устанавливает 30-секундный тайм-аут для загрузки страницы, чтобы обеспечить загрузку AngularJS.
-delay 2 : добавляет 2-секундную задержку между запросами, чтобы разрешить переходы маршрутизации AngularJS.
Обнаружение известных файлов
Сканируйте распространённые файлы, такие как robots.txt и sitemap.xml, которые часто содержат ценную информацию о структуре сайта и скрытом контенте. Эти файлы могут дать представление о:- robots.txt : Запрещенные каталоги и файлы, которые могут содержать конфиденциальную информацию
- sitemap.xml : Полная структура сайта, включая страницы, не связанные с основной навигацией
- Другие файлы обнаружения : общие файлы конфигурации, файлы резервного копирования и административные интерфейсы.
Обратите внимание, что для обеспечения полного обнаружения всех известных файлов в целевом приложении требуется минимальная глубина 3.
Возможности фильтрации
Katana предлагает мощные функции фильтрации, которые помогают пользователям точно обрабатывать, уточнять и управлять результатами сканирования. Эти возможности позволяют легко выделять ценные данные, устранять шум и адаптировать результаты к конкретным целям.
Пользователи могут фильтровать вывод по определённым полям, включать или исключать URL-адреса на основе расширений или регулярных выражений и даже определять настраиваемые поля с помощью файла конфигурации YAML. Эта гибкость критически важна для обработки зачастую больших объёмов данных, генерируемых в ходе сканирования, позволяя пользователям сосредоточиться на наиболее релевантной информации.
Некоторые основные параметры фильтрации включают в себя:
- -fieldили -f: Отображение определенных полей (например, url, path, fqdn, rdn)
- -store-fieldили -sf: Сохранить выбранные поля на диск
- -extension-matchили -em: Показывать только URL-адреса с определенными расширениями файлов
- -extension-filterили -ef: Исключить URL-адреса с определенными расширениями файлов
- -match-regexили -mr: включить URL-адреса, соответствующие шаблону регулярного выражения
- -filter-regexили -fr: Исключить URL-адреса, соответствующие шаблону регулярного выражения
чтобы извлечь только .jsURL-адреса (включая те, которые содержат параметры запроса) и сохранить их полные URL-адреса в файле, можно выполнить:
кали> катана -u -match-regex “\.js” -f url -sf url -o js-files.txt
Краткое содержание
Независимо от того, проводите ли вы тесты на проникновение, исследования программ вознаграждения за обнаружение уязвимостей или масштабные операции в кибервойне, расширенные возможности и современная архитектура Katana делают его незаменимым дополнением к вашему набору хакерских инструментов.