当前位置: 首页 > news >正文

nuclei-快速漏洞扫描器【安装使用详解】

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

1、nuclei介绍

Nuclei是一款基于YAML语法模板的开发的定制化快速漏洞扫描器。它使用Go语言开发,具有很强的可配置性、可扩展性和易用性。提供TCP、DNS、HTTP、FILE等各类协议的扫描,通过强大且灵活的模板,可以使用 Nuclei模拟各种安全检查。

项目目前是持续更新中,安装比较简单,一些流程比较单的漏洞会直接提供payload,是我自己比较喜欢的一个工具。

文档默认语言是英文,支持多国语言,也有中文。

项目地址:https://github.com/projectdiscovery/nuclei
Nuclei模板:https://github.com/projectdiscovery/nuclei-templates

2、环境准备

基础环境是kali linux ,ip: 192.168.242.4

如果没有kali系统虚拟机,可关注公众号:大象只为你,后台回复:【虚拟机】获取。

nuclei的安装使用需要go,go版本要求1.21 或更高版本,所以需要先安装go。

2.1、安装go

在kali linux系统下安装会比较简单,使用apt-get命令,安装完成就可使用,不需要再设置环境变量等,安装命令如下:

# 切换到root角色
sudo su
# 更新资源
apt-get update
# 安装golang
apt-get install golang-go
# 查看安装版本
go version

在这里插入图片描述

3、安装nuclei

安装nuclei官方有提供3个方式:go install,Brew和Docker。我首次安装按官方给的命令go install安装失败了,我结合之前afrog安装的经验,按以下步骤安装成功了。

第一步:克隆源码到kali机上,第二步:源码编译,就可以使用了。

如果想再简单一点,可以到releases下载windows或macOs编译好的版本。

安装编译命令如下:

# 切换到工具集目录,目的是方便归类
cd tools
# 克隆源码到kali机
git clone https://github.com/projectdiscovery/nuclei.git
# 切换目录到nuclei
cd nuclei
# 源码编译:指定执行文件名:nuclei
go build -o nuclei cmd/nuclei/main.go
# 查看版本号验证命令是否可正常使用
./nuclei -v
# 更多命令使用参数-h查看
./nuclei -h

在这里插入图片描述

4、使用说明

使用命令可用 ./nuclei -h 来查看,这里只列出2个命令:单个目标和多个目标的扫描,结合在线靶场使用。

更多用法请参考官方文档-用法:https://github.com/projectdiscovery/nuclei/blob/main/README_CN.md

扫描时,如果没有特别指定,就是使用内置所有的模板进行扫描。

在线靶场:https://vulfocus.cn/,选择场景:Strust2

注意:在线靶场里面的漏洞编号与nuclei-templates定义是不太一样的,测试过程发现的,具体以nuclei扫描出来的编号为准。

4.1、使用命令

扫描单个目标:

./nuclei -u http://example.com

扫描多个目标:

./nuclei -list urls.txt

urls.txt内容格式如下:【一行一个url】

https://test1.com
http://test2.com
4.2、扫描单个目标示例

在线靶场先筛选框架:Strust2, 选择编号:CVE-2020-17530,启动靶场。

执行命令结果如下:

在这里插入图片描述

以该示例扫描出来的xss-fuzz提供的payload,拿到浏览器去验证可用。

在这里插入图片描述

另一个漏洞编号:CVE-2021-31805就跟在线靶场的编号不一样,以扫描结果的为准。我拿漏洞编号到百度去搜索漏洞复现,找到github提供一个python脚本和复现步骤说明。

漏洞复现地址:https://github.com/Axx8/Struts2_S2-062_CVE-2021-31805

我跟着步骤验证,只截图前面3个,反弹shell步骤比较多就没截图,感兴趣可以自己跟着步骤操作。

在这里插入图片描述

4.3、扫描多个目标示例

在线靶场先筛选框架:Strust2, 选择2个不同的场景,启动靶场。

在nuclei执行目录下添加一个文本urls.txt,把url按上面格式添加。

执行命令结果如下:

在这里插入图片描述

5、学习资料推荐&我的公众号

在b站有【小迪安全】自己公开2022年的录播课程,感兴趣的可以去看,当然最新的课程只能去报他的直播课了。

地址是:https://www.bilibili.com/video/BV1pQ4y1s7kH/

我有一些学习笔记就是看完他的视频,自己实践操作后整理出来的。

敬请关注我的公众号:大象只为你,持续更新网安相关知识中…

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 鸿蒙AI功能开发【人脸活体验证控件】 机器学习-场景化视觉服务
  • 前端发版(发包)缓存,需要强制刷新问题处理
  • git版本控制的底层实现
  • Flink 实时数仓(四)【DWD 层搭建(二)流量域事实表】
  • enq: HW - contention事件来啦
  • fme从json中提取位置到kml中
  • react引入高德地图并初始化卫星地图
  • 【Go - 编译:浅尝辄止 】
  • 华为云全域Serverless技术创新:全球首创通用Serverless平台被ACM SIGCOMM录用
  • Android进阶之路 - 解决WebView加载H5时软键盘遮挡输入框问题
  • python的多线程
  • 自动化部署的艺术:Conda包依赖管理的终极指南
  • 从传统监控到智能化升级:EasyCVR视频汇聚平台的一站式解决方案
  • 春秋云境 | 文件上传 | CVE-2022-28525
  • linux文本处理命令:文本搜索工具grep详解
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • C++类中的特殊成员函数
  • gcc介绍及安装
  • IndexedDB
  • Java知识点总结(JavaIO-打印流)
  • java中具有继承关系的类及其对象初始化顺序
  • jQuery(一)
  • Laravel 中的一个后期静态绑定
  • mysql 5.6 原生Online DDL解析
  • MySQL数据库运维之数据恢复
  • Redux 中间件分析
  • use Google search engine
  • XForms - 更强大的Form
  • 大型网站性能监测、分析与优化常见问题QA
  • 番外篇1:在Windows环境下安装JDK
  • 缓存与缓冲
  • 每天10道Java面试题,跟我走,offer有!
  • 前端之React实战:创建跨平台的项目架构
  • 自动记录MySQL慢查询快照脚本
  • #include
  • #mysql 8.0 踩坑日记
  • #Z2294. 打印树的直径
  • (4) PIVOT 和 UPIVOT 的使用
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (九十四)函数和二维数组
  • (篇九)MySQL常用内置函数
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原)本想说脏话,奈何已放下
  • (转)拼包函数及网络封包的异常处理(含代码)
  • ***原理与防范
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .Net Winform开发笔记(一)