Admin
Администратор
Поиск потенциально уязвимых хостов при помощи сканера nuclei
Сегодня мы рассмотрим установку nuclei на vps, отсортируем стандартые шаблоны по ключевому слову, произведем сканирование средствами masscan, nuclei.
И так начнем! Подключаемся к своему VPS удобным для вас способом...
Подключились - теперь нам необходимо установить GO версии 1.19 как рекомендует разработчик софта.
Приступим
Код:
sudo apt-get update
sudo apt-get -y upgrade
Код:
wget https://go.dev/dl/go1.19.linux-amd64.tar.gz
Код:
tar -xvf go1.19.linux-amd64.tar.gz
sudo mv go /usr/local
Код:
export GOROOT=/usr/local/go
export GOPATH=$HOME/Projects/Proj1
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
С установкой GO разобрались, приступаем к установке nuclei
Код:
go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
После завершения установки на всякий случай обновим базу шаблонов.
Код:
nuclei -update-templates
Немного информации о nuclei
Nuclei - это инструмент, используемый для сканирования веб-приложений и служб на предмет потенциальных уязвимостей. Он использует шаблоны, написанные на YAML, для выявления различных типов уязвимостей и может быть настроен для конкретных случаев использования, таких как XSS, SQL injection, RCE. Он также поддерживает применение фильтров и исключение целевых объектов, что делает его универсальным и мощным инструментом для поиска уязвимостей.
Посмотрим все доступные шаблоны, перейдя в каталог nuclei-templates (тоже самое можно проделать посетив оффициальную страницу шаблонов nuclei на Github)
Код:
ls ~/nuclei-templates/
Теперь отсортируем темплы по ключевым словам внутри YAML шаблонов, ниже приведен пример команды для копирования шаблонов содержащих ключевое слово RCE из дефолтной директории nuclei /nuclei-templates/ в созданую вами ранее директорию.
Код:
grep -rl 'remote.*code.*execution' ~/nuclei-templates/ | xargs cp -t /home/user/nuc/RCE/
Немного отступим от темы сканера nuclei и займемся формированием списка адресов для тестирования, в этом нам поможет masscan.
Код:
masscan -p443 --rate 1300000 --ranges 0.0.0.0-255.255.255.255 --output-format list --output-file test.txt --open-only --randomize-hosts --exclude 255.255.255.255 -v --send-eth --
nuclei принимает листы целей в таком формате [ https://host_ip_(domain) ] так, что нормализуем вывод masscan к нужному nuclei формату.
Код:
awk '{ print "https://" $4 ":" $3 }' test.txt > https_test.txt
На выходе имеем файл содержащий строки https://ip
Запускаем nuclei
Вариант запуска с заранее подготовленной директорией шаблонов сосредоточенных на поиск RCE.
Код:
nuclei -l <https_test.txt> -t /home/user/nuc/RCE/ -o good.txt
Вариант запуска с использованием одного шаблона.
Код:
nuclei -l <https_test.txt> -t /home/user/nuc/RCE/CVE-2009-1151.yaml -o good.txt
Дожидаемся момента завершения работы сканера и welcome good.txt смотреть, что же мы насобирали.
На этом все. Пока!