Сканирование уязвимостей с помощью Nuclei: высокоскоростное, настраиваемое решение для расширенного сканирования уязвимостей

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие кибервоины!

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

6a4a49_1b77b8853f59498da42fafff6a3011da~mv2.png

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

В этой статье мы расскажем, что делает Nuclei таким революционным инструментом, рассмотрим его основные функции, расскажем о процессе установки и пошагово покажем вам, как пользоваться им профессионально. Независимо от того, ищете ли вы ошибки в веб-приложениях или блокируете критически важную сетевую инфраструктуру, Nuclei — это инструмент, который вам понадобится.
6a4a49_d09fe50faf2e49d8bc39ba445974f450~mv2.png

Ключевые особенности


Давайте начнем с определения ключевых преимуществ, которые сделали Nuclei таким популярным:

1. Архитектура на основе шаблонов для легкой настройки и совместного использования
2. Поддержка нескольких протоколов (HTTP, DNS, TCP, FILE и т. д.)
3. Обширная библиотека готовых шаблонов
4. Возможность создания пользовательских шаблонов для конкретных случаев использования.
5. Возможности интеграции с другими инструментами безопасности и конвейерами CI/CD
6. Низкий уровень ложноположительных результатов благодаря точным алгоритмам сопоставления.

История сканеров и ядер


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

1990-е годы: Появились первые сетевые сканеры, такие как SATAN (инструмент администратора безопасности для анализа сетей), ориентированные на известные уязвимости в сетевых службах.

2000-е: Сканеры веб-приложений стали широко распространены по мере роста веб-угроз. Набирали популярность такие инструменты, как Nikto и Nessus.

2010-е годы: Появились облачные и распределенные решения для сканирования, отвечающие потребностям более крупных и сложных сетей.

2020: ProjectDiscovery выпустила Nuclei, представив новую парадигму сканирования уязвимостей. Подход на основе шаблонов и ориентация на разработку силами сообщества отличают его от традиционных сканеров.

Nuclei устранил ряд ограничений традиционных сканеров:


• Скорость : многие старые сканеры были медленными, особенно при сканировании больших сетей.
Точность : ложные срабатывания были распространенной проблемой, что приводило к потере времени и ресурсов.
Гибкость : традиционные сканеры часто имели ограниченные возможности настройки.
Частота обновлений : модель Nuclei, основанная на сообществе, позволяет быстро обновлять данные для обнаружения новых уязвимостей.

Преимущества ядер:


1. Скорость: возможности параллельного сканирования Nuclei позволяют ему обрабатывать несколько целей одновременно, что значительно сокращает время сканирования.
2. Настраиваемость: пользователи могут создавать, изменять и обмениваться шаблонами для обнаружения определенных уязвимостей или адаптации к уникальным средам.
3. Точность: Подход на основе шаблонов в сочетании с точными алгоритмами сопоставления снижает количество ложных срабатываний.
4. Универсальность: Nuclei поддерживает несколько протоколов, что делает его пригодным для различных сценариев сканирования.
5. Поддержка сообщества: Большое активное сообщество вносит свой вклад в постоянное расширение и обновление библиотеки шаблонов.
6. Интеграция: Nuclei можно легко интегрировать в существующие рабочие процессы безопасности и конвейеры CI/CD.
7. Расширяемость: пользователи могут расширять функциональность Nuclei с помощью пользовательских скриптов и интеграций.

Недостатки ядер:


1. Кривая обучения: создание эффективных пользовательских шаблонов требует понимания как целевых систем, так и синтаксиса шаблонов Nuclei.
2. Ресурсоемкость: Несмотря на свою скорость, Nuclei может потреблять много ресурсов при сканировании больших сетей или одновременном использовании множества шаблонов.
3. Требуется тщательная настройка: неправильная настройка может привести к пропуску уязвимостей или, наоборот, к ненужному сетевому шуму.

Установка ядер


Для установки ядер сначала необходимо установить язык программирования Go от Google. Хотя Python по-прежнему остаётся самым популярным языком для инструментов кибербезопасности, язык программирования Go набирает популярность.

1. Установить Go


kali> sudo apt update
kali> sudo apt install golang-go


2. Установка ядер:


kali> go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest

3. Добавьте Nuclei в ваш PATH:


kali> echo 'export PATH=$PATH:~/go/bin' >> ~/.bashrc
kali> источник ~/.bashrc


4. После установки проверьте работу Nuclei, выполнив:


kali> nuclei -версия


Базовый синтаксис конфигураций ядер


Для обеспечения корректной работы Nuclei необходимо следующее:

Расширение .yaml — каждый шаблон должен иметь расширение файла .yaml.
Уникальный идентификатор . Каждый шаблон должен начинаться с уникального идентификатора (ID), который не должен содержать пробелов.

Информация о шаблоне


Обязательные поля : каждый шаблон должен содержать поля «автор», «имя» и «серьёзность». Также рекомендуется добавить подробное описание, ссылки и теги, чтобы прояснить назначение и функциональность шаблона.

информация:

имя: Первый шаблон
автор: Воздух
серьезность: высокая
описание: Мой первый шаблон Nuclei
ссылка: hackers-arise.net и hackers-arise.com

теги: первый,sqli,learn,nuclei

Запросы:


Выполнение запросов . Для взаимодействия с веб-приложением необходимо определить хотя бы один запрос в шаблоне. Запрос определяет метод, путь, заголовки, тело и другие параметры. Запросы определяются в шаблоне с помощью поля http.

Далее необходимо определить HTTP-метод взаимодействия с сайтом. Метод запроса может быть GET, POST, PUT, DELETE и т. д., в зависимости от требований.

• Указание пути — путь указывается в поле «path». Вот пример запроса, в котором Nuclei обращается к файлу «secret_file.txt»:

http:

метод: ПОЛУЧИТЬ
путь:
– «{{BaseURL}}/secret_file.txt»

Вместо прямого URL я использовал {{BaseURL}} — это динамические переменные, которые можно вставлять в путь, чтобы изменить его поведение во время выполнения. Переменные начинаются с {{ и заканчиваются на }} и, как и всё в Linux, чувствительны к регистру.

Примеры динамических переменных:

[td]Переменная[/td]
[td]Ценить[/td]
[td]{{BaseURL}}[/td]
[td] [/td]
[td]{{RootURL}}[/td]
[td] [/td]
[td]{{Имя хоста}}[/td]
[td]example.com:443[/td]
[td]{{Хозяин}}[/td]
[td]example.com[/td]
[td]{{Порт}}[/td]
[td]443[/td]
[td]{{Путь}}[/td]
[td]/фу[/td]
[td]{{Файл}}[/td]
[td]bar.php[/td]
[td]{{Схема}}[/td]
[td]https[/td]

Сопоставители:


Валидация (Matchers) — Matchers используются для проверки соответствия ответов на ваши запросы определённым критериям. Например, вы можете проверить наличие определённой строки в ответе сервера или определённого кода статуса HTTP.

Существует шесть типов сопоставителей:

[td]Тип сопоставления[/td]
[td]Цель[/td]
[td]статус[/td]
[td]Проверяет ответ по его коду статуса.[/td]
[td]размер[/td]
[td]Проверяет ответ по его размеру.[/td]
[td]слово[/td]
[td]Проверяет наличие указанного слова в ответе.[/td]
[td]регулярное выражение[/td]
[td]Проверяет ответ с помощью регулярных выражений.[/td]
[td]двоичный[/td]
[td]Проверяет ответ, закодированный в шестнадцатеричном формате.[/td]
[td]DSL[/td]
[td]Создает более сложные выражения
с использованием вспомогательных функций.
[/td]

Реальный сценарий использования ядер для поиска уязвимостей


Сценарий: Кибервоин оценивает веб-приложение ( vesti.ru ) на предмет уязвимостей.

Шаг № 1: Разведка


Сначала хакер собирает информацию о цели, включая поддомены:

kali> subfinder -d vesti.ru | tee subdomains.txt


Команда «tee» в Unix-подобных системах используется как для отображения вывода команды в терминале, так и для одновременной записи этого вывода в файл.

6a4a49_96dd8bd6b98e49638493ffe436d8403b~mv2.png

Шаг № 2: Создайте пользовательские шаблоны для потенциальных уязвимостей SQL-инъекций и XSS


Хакер создает два специальных шаблона для дальнейшего исследования этих проблем:

Шаблон SQL-инъекции (sqli-check.yaml):

6a4a49_6ac49f588427461b8e94156447487fc9~mv2.png

В учебных целях были добавлены только две полезные нагрузки.

Шаблон XSS (xss-check.yaml):

6a4a49_c30944233e1740cd9152d400abd22298~mv2.png

Шаг № 3 : Запуск пользовательских сканирований


kali> nuclei -u https://vesti.ru -t sqli-check.yaml,xss-check.yaml -o custom_results.txt

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

Краткое содержание


Nuclei — это значительный шаг вперёд в технологии сканирования уязвимостей. Сочетание скорости, точности и гибкости настроек делает его незаменимым инструментом для кибервоинов.
 
ну это прям тема для узкого круга лиц
 
Назад
Сверху Снизу