实战攻略:AWVS、AppScan和Nessus三大漏洞扫描工具如何使用?
3.1 Kali安装Nessus
下载地址:https://docs.tenable.com/releasenotes/Content/nessus/nessus.htm
命令行下载
curl --request GET \ --url 'https://www.tenable.com/downloads/api/v2/pages/nessus/files/Nessus-10.5.1-debian10_amd64.deb' \ --output 'Nessus-10.5.1-debian10_amd64.deb'
安装,这步完成后会提示服务的端口,可以登录进行配置
dpkg -i Nessus-10.5.1-debian10_amd64.deb
启动Nessus
service nessusd start
浏览器访问nessus的web页面,Kali的IP+服务的端口,勾选Register Offline
,点击Continue,选择 Managed Scanner
选项,点击Continue,选择Tenable.sc
,点击Continue
根据提示创建管理员用户密码,等待配置完成。
安装完成后是这样的界面,尚未激活,不能扫描。
3.2 离线激活Nessus
3.2.1 去Nessus官方申请激活码
https://zh-cn.tenable.com/products/nessus/nessus-essentials 姓名随便填,邮箱必须正确,用来接收激活码。进入填写的邮箱获取激活码,
3.2.2 获得质询码(challenge code)
/opt/nessus/sbin/nessuscli fetch --challenge
3.2.3 获得插件、激活码和证书
浏览器打开网页 https://plugins.nessus.org/v2/offline.php ,输入申请的激活码,以及上一步得到的质询码,点击Submit,即可得到更新插件地址,及license证书。
也可以使用官方提供的方法用命令行的方式安装证书。证书安装命令和下载按钮在页面底部。
3.2.4 安装证书和插件
这里采用下载后离线安装证书的方式,执行如下命令
/opt/nessus/sbin/nessuscli fetch --register-offline nessus.license
安装插件(需要先下载,文件大小为361.412MB)
/opt/nessus/sbin/nessuscli update ./all-2.0.tar.gz
/opt/nessus/lib/nessus/plugins/ #插件包目录
重启Nessus,重新访问Nessus网站,等待加载插件(耗时较长,需要耐心等待)
完成后进入Nessus系统。显示激活成功,具有了scan功能。
3.3 解除IP限制
如果Nessus页面显示仅允许扫描16个IP,那么就需要解除IP限制。
-
获取当前plugins的版本
https://plugins.nessus.org/v2/plugins.php
202304091403
-
停止Nessus服务
serice nessusd stop
-
创建
plugin_feed_info.inc
vi plugin_feed_info.inc
内容如下:
PLUGIN_SET = "202304091403"; PLUGIN_FEED = "ProfessionalFeed (Direct)"; PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";
-
将
plugin_feed_info.inc
替换到/opt/nessus/var/nessus/plugin_feed_info.inc
cp plugin_feed_info.inc /opt/nessus/var/nessus/
-
删除
/opt/nessus/lib/nessus/plugins/plugin_feed_info.inc
-
启动nessus服务
这时如果设置页面显示Licensed Hosts Unlimited
,则无限制。但可能会出现重启后插件被删除的情况,解决方案请看下一步。
3.4 解决重启失效
接上一步。
由于Nessus服务每次重启后,都会重置plugin_feed_info.inc
,这将会使nessus/plugins
目录下所有的插件都被删除,无法扫描。因此要将Nessus服务设置为手动,并且先停止Nessus服务。可以写成批处理解决此问题。
3.4.1 编写启动脚本
vi qd_nessus.sh
service nessusd stop;
cp /root/nessus/plugin_feed_info.inc /opt/nessus/var/nessus/;
rm -rf /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc;
service nessusd start;
每次需要启动Nessus时,输入启动命令
sh /root/nessus/qd_nessus.sh
3.4.2 Nessus命令合集
#启动
service nessusd start;
#重启
service nessusd restart;
#查看状态
service nessusd status
#停止服务
service nessusd stop
3.4.3 BUG解决
在解除ip限制的过程中,如果已经解除成功,但是新建扫描项目时,发现很快就结束,无扫描结果。此时查看plugins目录内容是否被删除。
du -h /opt/nessus/lib/nessus/plugins
如果低于上图所示的值,则需要执行如下命令
service nessusd stop;
/opt/nessus/sbin/nessuscli update ./all-2.0.tar.gz
sh qd_nessus.sh
重新访问Nessus即可。
3.5 使用Nessus进行主机发现
-
启动Nessus
cd nessus sh qd_nessus.sh
-
进入Nessus网站并登录,点击
New Scan
,选择Host Discovery
,按照提示输入相关内容 -
注意到左侧的
Schedule
是配置定时任务的,Notifications
是配置邮件提醒的 ,可暂时不予理睬。 -
点击
Discovery
,选择常用端口扫描这里细心的道友可能发现页面主题变了,我是在
Settings
→Advanced
→User Interface
→UI Theme
设置的。 -
保存后即可在
My Scans
中找到计划,启动扫描了。
3.6 使用Nessus扫描log4J漏洞
3.6.1 靶场环境搭建
centos7+docker+vulhub
安装docker,vulhub,部署log4j靶场
#1 进入log4j/CVE-2021-44228
cd log4j/CVE-2021-44228
#2 编译环境
docker-compose build
#3 运行环境
docker-compose up -d
#4 查看端口
docker-compose ps
docker ps
3.6.2 log4Jshell扫描
登录后,点击New Scan→Log4Shell
→输入Name和Target→点击Discovery
→选择扫描类型Thorough
→点击Report
→选择Credentials
选项卡→点击SSH
→选择身份验证方法password
→输入被扫描服务器的用户名和密码→在plugins
页面选择插件→运行扫描即可。
漏洞
3.6.1 靶场环境搭建
centos7+docker+vulhub
安装docker,vulhub,部署log4j靶场
#1 进入log4j/CVE-2021-44228
cd log4j/CVE-2021-44228
#2 编译环境
docker-compose build
#3 运行环境
docker-compose up -d
#4 查看端口
docker-compose ps
docker ps
3.6.2 log4Jshell扫描
登录后,点击New Scan→Log4Shell
→输入Name和Target→点击Discovery
→选择扫描类型Thorough
→点击Report
→选择Credentials
选项卡→点击SSH
→选择身份验证方法password
→输入被扫描服务器的用户名和密码→在plugins
页面选择插件→运行扫描即可。
此外Nessus还提供Log4Shell 漏洞生态系统扫描的功能。