Nuclei:一款快速自定义模板扫描工具
Nuclei是一款运行速度非常快且易于使用的扫描工具,它可以帮助研究人员基于模板执行可配置的目标扫描任务,并提供了大量可扩展接口以辅助使用。
Nuclei可以基于模板来跨目标发送请求,能够实现零误报,并且可以帮助研究人员对已知路径执行有效的扫描。Nuclei的主要使用场景为网络侦察的初始阶段,可以帮助研究人员快速检查已知且易于探测的目标中是否存在安全漏洞。该工具使用了retryablehttp-go库来处理各种错误,并在Web应用防火墙屏蔽的情况下进行自动重传,这也是该工具的核心模块之一。
功能介绍:简单且模块化的代码,方便使用和开发;运行速度且完全可配置,使用了基于模板的引擎;错误事件/特殊情况处理重传;WAF处理;智能匹配,实现零误报扫描。
工具使用:nuclei-h(帮助)
工具安装
代码安装
该工具的安装其实非常简单,大家可以在该项目GitHub库中的Releases页面中根据自己的平台选择预编译好的源代码,然后使用tar命令进行代码提取,将提取出的代码移动到自己的$PATH路径下。所使用的命令如下:
> tar -xzvf nuclei-linux-amd64.tar
> mv nuclei-linux-amd64 /usr/bin/nuclei
> nuclei -h
源安装:
Nuclei要求目标设备成功配置好Go v1.13 环境,然后运行下列命令获取项目代码:
> GO111MODULE=on go get -u -v
github.com/projectdiscovery/nuclei/cmd/nuclei
如需更新Nuclei,可以使用-u选项和go get命令。
Nuclei运行
使用单一模板运行Nuclei。
下列命令将会对urls.txt文件中列出的主机进行扫描,并返回匹配的结果:
> nuclei -l urls.txt -t git-core.yaml -o results.txt
你还能够以标准输入(STDIN)的方式传递目标主机列表,下列命令同样可以对urls.txt文件中列出的主机进行扫描,并返回匹配的结果:
> cat urls.txt | nuclei -t git-core.yaml -o results.txt
使用多个模板运行Nuclei。
下列命令将能够使用path-to-templates目录中所有模板来对urls.txt文件中列出的主机进行扫描,并返回匹配的结果:
> nuclei -l urls.txt -t "path-to-templates/*.yaml" -o results.txt
使用子扫描器和其他类似工具自动化运行Nuclei。
> subfinder -d hackerone.com -silent | httprobe | nuclei -t "path-to-templates/*.yaml" -o results.txt
下载地址:
https://github.com/projectdiscovery/nuclei