漏洞扫描工具--Nessus 保姆级安装教程
Nessus是一款C/S架构的漏洞扫描系统,作为一款漏洞扫描软件,不仅功能全面,而且还可以实时更新漏洞库,据统计有超过75,000个机构在使用它。漏洞扫描是一种技术手段,可以发现目标系统存在的漏洞,还可以进一步利用发现的漏洞干一些自己一直想干但之前确干不了的事情,比如渗透测试。它就像一个灵活的特种兵,有自己的弹药库,并且可以基于弹药库(它有自己的名字:漏洞数据库)配合发射器(这里指的是各种漏扫手段
(CentOS系列已更新到最新版,浏览器下载慢可选择123云盘下载)
注意:推荐使用Centos7系统(教程第三部分),以下为CentOS7系统安装Nessus所需的所有资源包(不定期更新)点此快速到达!、
注:Windows和kali安装大同小异,已停止更新,CentOS系列不定期更新。
https://www.123pan.com/s/SS0zVv-DnEpH.html提取码:w9wn
一、工具介绍
1、Nessus是什么
Nessus是一款C/S架构的漏洞扫描系统,作为一款漏洞扫描软件,不仅功能全面,而且还可以实时更新漏洞库,据统计有超过75,000个机构在使用它。
2、什么是漏洞扫描
漏洞扫描是一种技术手段,可以发现目标系统存在的漏洞,还可以进一步利用发现的漏洞干一些自己一直想干但之前确干不了的事情,比如渗透测试。它就像一个灵活的特种兵,有自己的弹药库,并且可以基于弹药库(它有自己的名字:漏洞数据库)配合发射器(这里指的是各种漏扫手段),对指定目标(操作系统,包括系统上面的服务)进行狂轰乱炸,从而判断出目标的安全系数。
3、常用的漏扫手段有哪些
(1)漏洞库信息匹配
第一部分工作的目的是获取信息,
专业点:远程探测目标的端口服务,记录主机给予的回答,收集目标的反馈信息。
通俗点:就是和对方打个招呼,记下对方的反应。比如商场看到个身材苗条的美女,过去搂着肩膀说:“大姐,方便加个微信不?”,美女反手就是一巴掌,啪~,接着就是一声“眼瞎啊,老子是公的。”。
第二部分工作是做信息对比
专业点:将获取的信息与漏洞库匹配,满足匹配条件则证明漏洞存在
通俗点:接着上面获取的信息,自己脑子转了一才圈反应过来,“公的”=“男的”
(2)插件攻击
专业点:就是模拟黑客攻击方法,对目标进行攻击,如果攻击成功则说明存在安全漏洞
通俗点:就是看谁不顺眼,上去先噼里啪啦干一顿,干趴下了就说明对方不是练家子。
4、如何更好的进行漏洞扫描
第一步-探测主机:确认攻击目标是否在线。(可以理解为对方是否在家)
第二步-扫描端口:获取目标的信息,如开放端口号、对外提供的服务名称、使用版本、操作系统类型等(可以理解为对方家有几个窗户几个门)
第三步-漏洞攻击:根据扫描端口获取的信息,使用漏洞模块,针对性的进行攻击,从而判断是否存在漏洞(可以理解为是撬门锁比较好,还是跳窗户比较好)
5、Nessus优缺点有哪些
优点:世界流行、有完整的漏扫服务、可随时更新漏洞库、
缺点:花钱、花钱、花钱(可以激活)
6、Nessus由哪些部分组成
(1)客户端
用户配置工具 可以配置扫描目标及扫描时使用的漏洞
结果存储/报告生成工具 根据扫描结果生成报告并存储
(2)服务器端
漏洞库 包含各种操作系统的各种漏洞信息及检测漏洞的方法
扫描引擎 按照不同的扫描方式,进行漏洞扫描
当前活动扫描知识库 监控当前活动扫描,提供漏洞信息给扫描引擎,接受引擎返回的扫描结果。
7、Nessu漏扫的工作流程
1、登录客户端工具(web)
2、配置扫描目标、创建扫描策略、执行扫描任务
3、根据配置信息,调用插件进行漏洞扫描
4、等待扫描结束,获取扫描结果
5、查看、分析扫描结果
6、生成漏洞扫描报告
二、资源下载
https://www.tenable.com/downloads/nessus?loginAttempted=true
三、安装教程
(1)Windows版本安装
①安装方法
1、 到nessus官网下载安装包,官网链接在上方。

2、点击安装包进行安装,安装过程中如果提示由于已经在相关目录下新建了nessus目录,点“是”就行,默认下一步。


选择你的安装目录

如果没安装WinPcap 的话,中途会默认安装一次。

安装完winpcap后继续安装nessus。

正在安装

安装完毕,点击finish


输入你Nessus的账号密码,这个要记住,以后需要这个账号进行登录

等待安装

安装成功,但还没有Scans 页面,需要进行破解。

破解教程
先到以下链接注册获取一个激活码,如果不想用自己的邮箱可以用临时邮箱
https://zh-cn.tenable.com/products/nessus/nessus-essentials


临时邮箱可以看到Nessus发给我们的激活码,先留着,等下有用。


以管理员权限运行CMD,切换到 Nessus 安装目录。
执行以下命令获取 Challenge Code。
nessuscli.exe fetch --challenge

访问 https://plugins.nessus.org/v2/offline.php 填写 Challenge Code 和 刚刚邮箱得到的激活码,下载 all-2.0.tar.gz 文件。

进入 任务管理器->服务 找到 Tenable Nessus先停止服务

继续利用管理员权限,进入Nessus目录,更新Nessus漏洞库,顺便记住这个版本号。
nessuscli.exe update all-2.0.tar.gz

去nessus目录下搜索plugin_feed_info.inc文件,如果没有的话就自己创建。
\nessus\plugin_feed_info.inc
\nessus\plugins\plugin_feed_info.inc

两个文件都添加以下内容,如果修改不了的话,就以管理员打开记事本修改。
PLUGIN_SET = "202010191623";
PLUGIN_FEED = "ProfessionalFeed (Direct)";
PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";

再次启动Nessus

发现出现了scan

②容易踩坑点
如果没有发现scan,那么你就去看一下plugins目录

这个目录为漏洞插件库,一般来说不会那么少的

下面这样才是正常的

新版本的Nessus会对plugin_feed_info.inc的信息进行对比,发现plugin_feed_info.inc信息不一致时,会删除/nessus/plugins/下的插件。
那么我们重新更新插件
net stop "Tenable Nessus"
nessuscli.exe update all-2.0.tar.gz

然后备份好一份plugins,重新plugin_feed_info.ini到那两个目录中,继续启动Nessus
net start "Tenable Nessus"

我们先退出登录,右上角点击 头像->sign out

将我们刚才备份的那份覆盖plugins,并重启windows。

重启后再次进入Nessus:https://localhost:8834/

等他更新好后,进nessus就能扫描了

注意:
这样安装好后,不能重启nessus服务,如果重启之后他会再次匹plugin_feed_info.inc信息,匹配失败就会删除plugins的内容,所以大家安装在虚拟机,拍个快照即可。
(2)Linux版本安装(kali2023)
安装环境:kali2023
①nessus官网下载安装包
此处使用的是kali linux amd64版本的.
点击后跳出来协议,点击同意即可下载:
下载下来的deb包大概为44.3MB
也可以从如下网盘下载:
yunzhongzhuan.com/#sharefile=aZBt8HQ1_14098
②安装Nessus
kali linux中使用如下命令进行安装:
dpkg -i Nessus-8.15.2-debian6_amd64.deb
③启动Nessus
命令如下:
/bin/systemctl start nessusd.service
④访问Nessus并进行配置
[1]浏览器打开如下任意一个网址:
或[ddosi改成你自己的kali名称]
或
[2]选择最后一个-Managed Scanner
[3]选择Tenable.sc
[4]设置Nessus账号密码
比如:
用户名:root
密码:root123456
安装完成后是这样的界面,尚未激活,不能扫描,此时只有一个设置按钮,并无扫描按钮.
⑤下载Nessus pro插件并更新
[1]Nessus插件下载地址:
Nessus插件版本为all-2.0-20211012.tar.gz
yunzhongzhuan.com/#sharefile=aBAqaNJH…
[2]更新/安装Nessus pro插件
命令如下:
/opt/nessus/sbin/nessuscli update all-2.0-20211012.tar.gz
[3]重启Nessus服务
先停止服务
/bin/systemctl stop nessusd.service
再启动服务
/bin/systemctl start nessusd.service
[4]网页打开Nessus耐心等待插件配置完成
配置完成后页面是这样的
⑤修改plugin_feed_info.inc文件
打开目录 /opt/nessus/var/nessus/
找到文件 plugin_feed_info.inc
修改 plugin_feed_info.inc 为以下内容并保存:
PLUGIN_SET = "2021010120609";
PLUGIN_FEED = "ProfessionalFeed (Direct)";
PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";
复制 已经修改过的plugin_feed_info.inc 文件到/opt/nessus/var/nessus/plugins/目录下
如果没有 plugins 目录则自己手动创建一个
⑥再次重启Nessus服务
先停止服务
/bin/systemctl stop nessusd.service
再启动服务
/bin/systemctl start nessusd.service
打开Nessus网页等待配置完成
耐心等待插件配置完成
⑦配置结束后打开网页登录Nessus
此时已经出现scan按钮,但显示404还不能使用.
⑧再次更新插件
命令如下:
/opt/nessus/sbin/nessuscli update all-2.0-20211012.tar.gz
耐心等待直到如下界面出现
此时登录Nessus可以看到扫描界面已经出来,
至此,Nessus已”成功破解”
设置页面截图
⑨破解成功验证
①查看可以使用的功能有哪些
扫描功能均可以使用
②插件数量和企业版的一致
插件数量总数如下:
Status
AIX Local Security Checks 11409
Amazon Linux Local Security Checks 2053
Backdoors 121
Brute force attacks 26
CentOS Local Security Checks 3799
CGI abuses 4545
CGI abuses : XSS 690
CISCO 1985
Databases 762
Debian Local Security Checks 7682
Default Unix Accounts 171
Denial of Service 110
DNS 208
F5 Networks Local Security Checks 1046
Fedora Local Security Checks 16414
Firewalls 312
FreeBSD Local Security Checks 4824
FTP 258
Gain a shell remotely 281
General 312
Gentoo Local Security Checks 3155
HP-UX Local Security Checks 1983
Huawei Local Security Checks 5740
Junos Local Security Checks 412
MacOS X Local Security Checks 1784
Mandriva Local Security Checks 3641
Misc. 2462
Netware 14
NewStart CGSL Local Security Checks 919
Oracle Linux Local Security Checks 4131
OracleVM Local Security Checks 563
Palo Alto Local Security Checks 141
Peer-To-Peer File Sharing 102
PhotonOS Local Security Checks 1860
Policy Compliance 59
Red Hat Local Security Checks 8103
RPC 38
SCADA 357
Scientific Linux Local Security Checks 3174
Service detection 524
Settings 111
Slackware Local Security Checks 1255
SMTP problems 149
SNMP 33
Solaris Local Security Checks 3750
SuSE Local Security Checks 17989
Ubuntu Local Security Checks 5663
Virtuozzo Local Security Checks 341
VMware ESX Local Security Checks 140
Web Servers 1424
Windows 5267
Windows : Microsoft Bulletins 2387
Windows : User management 29
扫描验证:检查是否可以进行漏洞扫描/大于16个ip的扫描.
此处我使用namp随机扫描了大概800多个存活ip.
为了快速判断,我只扫描了80端口.
大约10秒钟时间,已经扫出来114个开放80端口的ip,
说明成功突破16ip限制,亦说明破解成功.
⑩漏洞扫描验证
为了检测破解是否完整,此时对漏洞进行扫描测试插件可用性.
此处随机找了几个国外的网站进行漏洞扫描测试.
可正常扫描
可以扫描出来漏洞
(3)Linux版本安装(centos7)
环境:宿主机为Windows10,虚拟机安装CentOS7,虚拟机的网络连接方式为NAT。
① 从nessu官方网站下载合适的最新版本(以CentOS7为例,如需要下载其它版本根据自己实际情况选择)
https://www.tenable.com/downloads



②去nessus官方申请激活码,姓名随便填,邮箱必须正确,用来接收激活码。
https://zh-cn.tenable.com/products/nessus/nessus-essentials


接收到的邮件里找到类似如下内容:

③安装
使用ssh工具远程连接CentOS 7(建议使用root用户,以下所有操作均为root目录下,如在其它目录中,请按照实际所需修改对应路径)
安装windows和linux文件互传工具lrzsz
yum install lrzsz

将下载好的nessus rpm包上传至CentOS7的root目录下,并执行以下命令安装(版本号根据下载时实际版本为准)
rpm -ivh Nessus-10.7.4-el7.x86_64.rpm

安装完成后,启动nessus
/bin/systemctl start nessusd.service
![]()
关闭防火墙
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #关闭防火墙开机自启
systemctl status firewalld #查看防火墙运行状态

④配置
在windows系统中打开浏览器,输入地址
https://centos的ip地址:8834
点击高级,并点击接受风险并继续。

在打开的页面中选择“ Register Offline”,并点击continue。

如下页面中选择 Managed Scanner ,并点击continue。

如下页面中选择Tenable Security Center,并continue。

如下页面中设置登录用户名,密码。并点击submit。

等待安装完成

进入nessus设置(Settings)页面。这个时候,nessus是没有scan功能的。

⑤离线激活。
(1)在Linux系统中执行以下命令获得质询码。
/opt/nessus/sbin/nessuscli fetch --challenge

(2)获取离线插件包地址及激活证书。
浏览器打开以下网页
https://plugins.nessus.org/v2/offline.php
输入第二步申请的激活码,以及上一步得到的质询码(质询码在上,激活码在下)。

得到更新插件地址,及license证书。
下载插件更新包,下载证书nessus.license。

(3) 安装更新
通过ssh连接工具将更新包及license证书上传到centos7的root目录下。

安装插件包,等待几分钟。
/opt/nessus/sbin/nessuscli update ./all-2.0.tar.gz

离线激活nessus,并安装license证书。
/opt/nessus/sbin/nessuscli fetch --register-offline ./nessus.license

注意:此时强烈建议备份/opt/nessus/lib/nessus/plugins/(执行速度取决于自己电脑硬盘速度,耐心等待)
cp -r /opt/nessus/lib/nessus/plugins/ ./
![]()
重启nessus。
/bin/systemctl restart nessusd.service

windows打开浏览器访问nessus,并登录。

如果右上角出现以下提醒,代表插件未安装成功,请按照以下步骤操作。

依次重新执行更新插件、安装证书、备份插件、重启服务命令。
/opt/nessus/sbin/nessuscli update ./all-2.0.tar.gz #更新插件
/opt/nessus/sbin/nessuscli fetch --register-offline ./nessus.license #安装证书
cp -r /opt/nessus/lib/nessus/plugins/ ./ #备份插件
(如果备份中遇到提示有重复名称是否覆盖的提醒,建议删除root目录下的plugins目录,并重新执行备份命令)
/bin/systemctl restart nessusd.service #重启服务

完成后进入重新进入nessus系统,显示插件正在编译中,时间会比较长,静静等待一会儿,会弹出进度按钮,鼠标放置在进度条中可以看到当前进度。


插件编译完成进度圈会自动消失,查看设置面板,看到版本号为当前下载的插件版本号,代表编译安装完成。
出现以下界面点击close关闭。当前nessus只支持扫描16个以下IP地址,继续操作进行破解。


⑥解除IP限制
获取当前plugins的版本。
打开如下的页面,并记录下版本号。
https://plugins.nessus.org/v2/plugins.php

⑦停止nessus服务
/bin/systemctl stop nessusd.service
![]()
创建 plugin_feed_info.inc
vim plugin_feed_info.inc
内容如下,并将刚刚获取到的版本号替换如下内容中的数字串,其它不用修改,保存。
PLUGIN_SET = "202506130846";
PLUGIN_FEED = "ProfessionalFeed (Direct)";
PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";

将plugin_feed_info.inc替换到 /opt/nessus/var/nessus/plugin_feed_info.inc,确定替换。
cp /root/plugin_feed_info.inc /opt/nessus/var/nessus/

将 /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc 文件删除。
rm -rf /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc
![]()
⑧启动nessus服务
/bin/systemctl start nessusd.service

windows打开浏览器,访问nessus,会看到nessus初始化插件,完成后,看设置页面显示 unlimited。表示解除IP限制成功。



⑨配置开机自动激活
注意:由于Nessus服务每次重启后,都会重置plugin_feed_info.inc,这将会使nessus/plugins目录下所有的插件都被删除,无法扫描。因此要将nessus服务设置为手动,并且先停止nessus服务。
systemctl disable nessusd #关闭nessus开机自启
/bin/systemctl stop nessusd.service #停止nessus服务

制作批处理脚本,使nessus在开机时自动激活。
vim crack_nessus.sh
内容如下,如果插件备份路径与激活文件不在root目录下,请根据实际情况进行修改:
/bin/systemctl stop nessusd.service;
cp /root/plugin_feed_info.inc /opt/nessus/var/nessus/;
rm -rf /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc;
/bin/systemctl start nessusd.service;

将crack_nessus.sh写到系统启动的脚本里。这样每次重启CentOS,会自动执行破解程序。
chmod +x /etc/rc.d/rc.local #增加权限
vim /etc/rc.d/rc.local #编辑文件
在最下方添加如下内容到rc.local,保存。
/bin/bash /root/crack_nessus.sh

至此,nessus完全解除IP限制完成,系统启动后会自动激活,访问(https://centos的ip:8843)即可正常使用。
⑩可能遇到的坑及相应的解决办法
在解除ip限制的过程中,如果已经解除成功,但是新建扫描项目时,发现很快就结束,无扫描结果。此时查看plugins目录内容是否被删除。
du -h /opt/nessus/lib/nessus/plugins

正常情况下,该目录应该在2G左右。如远远低于此数值。请依次按如下步骤操作(前提是备份好了plugins目录):
/bin/systemctl stop nessusd.service; #停止nessus服务
rm -rf /opt/nessus/lib/nessus/plugins #删除nessus默认自带插件
cp -r ./plugins /opt/nessus/lib/nessus/ #将已备份的插件替换
cp /root/plugin_feed_info.inc /opt/nessus/var/nessus/; #复制破解文件
rm -rf /opt/nessus/lib/nessus/plugins/plugin_feed_info.inc; #删除原始激活文件
/bin/systemctl start nessusd.service; #启动nessus服务
然后打开浏览器,正常访问nessus。(https://centos的ip:8843)
静待plugins更新完成,即可恢复nessus正常运行。
说明/备注
Nessus再Linux中的扫描速度比在Windows中快很多,所以建议使用Linux进行安装.
四、使用教程
1.输入你注册的账号密码进行登录,进入主页面。

2.点击“New Scan”新建一个扫描。

3.选择“Basic Network Scan”,进行配置项目名称,对项目的描述,以及最重要的目标IP地址。

4.如果我们有目标主机的账号、密码,我们可以点击"Credentials",进行配置。如果是linux系统就配置SSH,windows就配置windows

5.我们还可以查看我们要用到的插件,点击"Plugins"进行查看。

6.全部配置完成之后,我们点击"Save",进行保存,这样在"My Scan"就能看见我们之前配置过的windows 7。

7.点击">"就可以进行扫描,用鼠标点击就能看到详细信息。

8.我们点击"Vulnerables",就能看见我们发现的漏洞。

Nessus还具有很多其它的扫描功能,使用方法与基础扫描相同,请大家逐步挖掘其它更好用的功能。

五、中文报告生成
①下载地址
github官方地址:https://github.com/Hypdncy/NessusToReport
个人优化版下载地址(报告模板已修改):https://www.123pan.com/s/SS0zVv-RnEpH.html 提取码:1Ssr
②NessusToReport
这是一个nessus自动报告生成工具,可以用来自动生成nessus扫描器的中文报告--NessusToReport,程序有两种报告方式:
漏洞排序:以漏洞为单位一一罗列拥有该漏洞的主机及其信息
主机排序:以主机为单位一一罗列主机所拥有的漏洞及其信息
单个主机:以主机为单位一一罗列每个主机的漏洞报告(一个主机一份报告)
③使用说明
由于github LFS超额,在github上使用原数据库,新的数据库更新链接如下:
https://www.123pan.com/s/SS0zVv-OnEpH.html 提取码:lqZk
下载后将文件放置在cnf目录下替换vuln.db即可,csv文件放置在data/nessus目录下
安装方法
建议在windows或macOS下安装python3.8以上版本
python3.6及其以下版本可能会出现字典错误
python3.8及其以下版本可能会出现携程错误
pip install -r requirement.txt
使用方法
导出nessus的csv报告,放置到./data目录下
更新自己的实施范围./data/systems.csv
更新自己的配置信息./config.py
执行命令python main.py
python main.py # 默认出漏洞排序类型扫描报告
python main.py -t loops # 指定漏洞排序类型扫描报告
python main.py -t hosts # 指定主机排序类型扫描报告
python main.py -t host # 指定单个主机类型扫描报告
④配置说明
本工具具有翻译功能,需要自己申请百度、有道翻译API的key,并将其配置到./cnf/const.py
百度API的Key最好进行个人高级认证,这样翻译的QPS为10,否则翻译时会造成KeyError的情况
有道翻译API是之前的代码未进行验证,欢迎有有道Key的同学push代码
其他翻译渠道需要在./modle/common/translate/添加翻译API的功能,并在./modle/handle.py中调用
修改基本信息
该修改会修改模板中{xxx-xxx}标记的部分,程序运行时会将如下两个配置中的信息对其金星覆盖
临时修改:修改./config.py中config_data
永久修改:修改./cnf/data.py中cnf_data
配置实施范围
配置说明:该配置将会替换文档中的实施范围表
直接修改./data/systems.csv
⑤漏洞配置
记得使用完以下功能后将他们注释,防止下次生成报告时,使用该次的配置
配置自定义IP忽略
配置说明:该配置在生成报告时会忽略与配置相同IP的所有漏洞信息,主要用于段扫描时忽略本机漏洞
配置位置:config.py中config.nessus_ignore_ids参数
配置自定义漏洞忽略
配置说明:该配置在生成报告时会忽略与配置相同plugin_id的漏洞,主要用于大量扫描时的批量删除
配置位置:config.py中config.nessus_ignore_ids参数
配置自定义漏洞等级
该配置在生成报告时会修改与配置plugin_id的漏洞等级,主要用于调整漏洞等级(鸡肋)
配置位置:config.py中config.nessus_risk_self参数
配置自定义漏洞信息
配置说明:该配置将会覆盖其他来源的漏洞信息,主要用于没有翻译API时,人工翻译./logs/loops_error.json,将其配置复制到该参数下
配置位置:config.py中config.nessus_vuln_self参数
演示图
演示图漏洞排序

演示图主机排序

六、教学视频
https://www.bilibili.com/video/BV1M24y1J7va/?spm_id_from=333.337.search-card.all.click&vd_source=bb9af2fef1a172dbaae6a5adfedfeeb2
更多推荐

































所有评论(0)