May 8, 2023

Поиск потенциально уязвимых хостов при помощи сканера 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:port

Запускаем 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 смотреть, что же мы насобирали.

Наш канал - https://t.me/webhack_kakao