Поиск потенциально уязвимых хостов при помощи сканера 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 - это инструмент, используемый для сканирования веб-приложений и служб на предмет потенциальных уязвимостей. Он использует шаблоны, написанные на 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
Вариант запуска с заранее подготовленной директорией шаблонов сосредоточенных на поиск 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