Nuclei — это сканер для поиска уязвимостей на сайтах, но его можно использовать и в сетевой разведке. Сегодня я покажу, как использовать Nuclei в OSINT.
Еще по теме: Лучшие OSINT инструменты
Установка и использование Nuclei в OSINT
Nuclei — это инструмент для автоматизации сканирования на наличие уязвимостей и поиска паттернов веб-приложений и API. Он предоставляет широкий набор предварительно определенных шаблонов, называемых «templates», которые могут быть использованы для обнаружения уязвимостей или специфичных паттернов веб-приложений.
Nuclei позволяет создавать собственные шаблоны или использовать готовые шаблоны сообщества. Он может сканировать различные протоколы, такие как HTTP, HTTPS, DNS, и другие, и выполнять заданные проверки для обнаружения потенциальных проблем безопасности.
Использование Nuclei помогает автоматизировать процесс сканирования на уязвимости и обнаружение специфичных паттернов, что упрощает работу секьюрити-исследоватователей, пентестеров и разработчиков.
Сканер Nuclei имеет три основных преимущества:
- Скорость работы. Написанный на Golang, он может сканировать тысячи урлов за секунды.
- Расширяемость функционала. Простая система создания и добавления шаблонов (если потратить 10 минут на прочтение инструкции) увеличивает функционал.
- Большое сообщество, которое последние три года ежедневно занимаются разработкой сканера. Благодаря им уже создано более 6000 шаблонов (Template) с помощью которых Nuclei может заменить другие инструменты.
Далее познакомлю вас с Nuclei, чтобы вы смогли понять, как работает этот инструмент и задействовать его в своей работе OSINT.
Установка Go для работы Nuclei
Сканер написан на Golang, поэтому первым делом проверяем устанвлен ли Go в системе:
1 |
go version |
Если версия Go не отображается, установите Golang самостоятельно.
Установка Nuclei
Если возникнут проблемы, можете использовать Gitpod для запуска Nuclei.
- Зарегистрируйтесь/авторизируйтесь на Github.com.
- Войдите на Gitpod.io под своей учетной записью Github.
- Откройте в браузере ссылку:
1 |
https://gitpod.io/#https://github.com/projectdiscovery/nuclei |

После установки Go или запуска Gitpod введите в командной строке:
1 |
go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest |
Установка Nuclei может занять время.
После установки, проверьте работу Nuclei, выполнив команду:
1 |
nuclei --help |
Команда отобразит справку и параметры запуска Nuclei.
В рамках данной статьи, мы не будем рассматривать все параметры. Наша цель изучить основные команды, которые могут понадобиться в OSINT.
Использование тегов и переменных Nuclei
Официальный список шаблонов (Template) для Nuclei насчитывает более 6000. Они помечены разными тегами: cve, xss, wordpress, default-logins и т. д.

Один шаблон может быть помечен несколькими тегами. Например, теги шаблона с id CVE-2023–23752 — cve, cve2023, joomla.

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

Например, можете попробовать поискать ник пользователя на 600+ сайтах:
1 |
nuclei -tags osint -var user=ivanov |
Замените «ivanov» на интересующий вас ник.
Можете попробовать заменить тег osint на osint-social.

Если открыть любой шаблон в каталоге osint репозитория Nuclei Templates, то увидите, что переменная «user» («ivanov» в данном случае) написана в скобках {{}} и используется в ссылке для проверки наличие профиля.
Разные шаблоны содержат разные переменные: {{Hostname}}, {{BaseURL}} и т. д. Их имена можно увидеть в тексте шаблонов разных категорий.

Теги можно использовать не только для сбора данных о пользователе, но и для сбора информации о домене. Для этого используйте параметр -u (URL) и тег tech:
1 |
nuclei -u osintme.com tags tech |
Сканирование займет много времени.
Если вы хотите сканировать все шаблоны сразу, используйте только параметр -u:
1 |
nuclei -u osintme.com |
А с параметром -l можно собирать информацию о списке доменов:
1 |
nuclei -l urls.txt |
Для многих типичных задач достаточно уметь пользоваться тегами и переменными. Просто загляните в этот репозиторий и выберите нужный тег:
Но иногда, чтобы сделать что-то определенное, приходится использовать индивидуальные шаблоны и редактировать их.
Использование и редактирование отдельных шаблонов
Список всех установленных на данный момент шаблонов можно просмотреть с помощью команды:
1 |
nuclei -tl |
Чтобы запустить один шаблон:
1 |
nuclei -t osint/boosty.yaml -var user=ivanov |
Вы также можете загружать шаблоны из текстовых файлов. Это полезно, если вы хотите как-то изменить существующий шаблон или создать свой собственный с нуля.
Скопируйте текст шаблона отсюда (https://github.com/projectdiscovery/nuclei-templates/blob/main/osint/boosty.yaml) и сохраните его в текущем каталоге, в файл с именем boosty.yaml. Введите в командной строке:
1 |
nuclei -t boosty.yaml -var user=ivanov |
Если вы хотите переделать этот шаблон, чтобы проверить, существует ли профиль на другом сайте, замените ссылку в поле «path» и добавьте что-то из стандартного текста страницы профиля в поле «words».
https://github.com/projectdiscovery/nuclei-templates/blob/main/technologies/google/google-storage.yaml
Также можно взять один шаблон, проверяющий наличие определенных слов на странице и заменить в нем слова на нужные вам (например, упоминание имен определенных людей, компаний, места и др.). И, конечно же, вместо слов можно использовать регулярные выражения.
https://github.com/projectdiscovery/nuclei-templates/blob/main/miscellaneous/addeventlistener-detect.yaml
Подробнее об этом можно прочитать в руководстве по созданию шаблона.
Поиск чувствительной информации
Nuclei позволяет использовать регулярные выражения для извлечения любых данных из текста веб-страниц. Например, электронные письма, ссылки на разные социальные сети, ссылки на документы, номера телефонов, адреса биткойн-кошельков.
Шаблоны для этих целей можно найти в репозитории https://github.com/cipher387/juicyinfo-nuclei-templates.
Заключение
О Nuclei можно было бы говорить бесконечно, но цель статьи — рассказать об основных принципах использования в OSINT.
Как видите, Nuclei в плане OSINT можно использовать для поиска пользователей, сбора информации о домене или урлах и поиска определенных слов или регулярных выражений на странице.
В целом, Nuclei — это инструмент с огромными возможностями.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Использование OSINT Framework
- Решение OSINT задачи CTF VulnMachines
- Использование Sherlock для автоматизации OSINT