前言

Nessus是目前主流系统漏洞扫描与分析软件,总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件。可以把nessus扫描结果导入msf_db中,结合强大的msf进行测试工作。本篇主要讲述nessus更新方法,结合metasploit使用nessus进行测试。

下载

在kali 2.0中下载nessus有两个版本:

Debian6,7,8/KaliLunux 1 AMD64 (64-bit)
Debian6,7,8/KaliLunux 1 i386 (32-bit)

安装

安装配置nessus,有很多很好的文章已经详细介绍了,这里不赘述了。

传送门:

漏洞银行-nessus工具百科
旭达科技-nessus的安装与卸载
阿德马Web安全-Kali Linux安装Nessus

更新插件

nessus更新分有在线更新和离线更新两种:

在线更新方法(家庭版不支持):

  1. 登录>setting(齿轮图标)>Scanners>Local/Overview2. 在Overview界面下点击Version、Last Updated自动更新3. >Setting>Scanners>Local>Software Update

Automatic Updates(自动更新)有三个选项

Update all components (升级所有组件)

Update plugins (仅升级插件)

Disabled (禁用)

  1. Update Frequency(更新频率),可以选择每天、每周、每月检查更新。

离线更新方法:

  1. 关闭nessus程序,命令:
/etc/init.d/nessusd stop
  1. 获取Challenge code,命令
/opt/nessus/sbin/nessuscli fetch --challenge
  1. 获取Active code,重新登录网址获取

http://www.tenable.com/products/nessus-home

  1. 登录https://plugins.nessus.org/offline.php后,输入Challenge code和Active code。5. 下载all-2.0.tar.gz与nessus.license文件6. 下载好后,终端命令:
/opt/nessus/sbin/nessuscli update /root/Downloads/all-2.0.tar.gz
/opt/nessus/sbin/nessuscli fecth --register-offline nessus.license

两条命名不分先后

  1. 重启服务
/etc/init.d/nessusd restart

各种更新失败总结:
6.0以下旧版本,获取Challenge code命令:
/opt/nessus/sbin/nessusd fetch —challenge

登录获取Active code时记得勾选Check to receive updates from Tenable选项,这样邮箱才会收到Active code

第四步输入Challenge code和Active code,没有nessus.license文件下载,而是nessus-fetch.rc。这是由于没有关闭nessus程序导致的,再申请只有nessus-fetch.rc。

nessus-fetch.rc文件直接放在/opt/nessus/sbin目录下效果不太好,kali重启后会出现nessus开启失败,提示要求执行“nessuscli fetch —register”命令。这时重复一次离线更新操作,把nessus.license文件执行一次,就不会再报错了。

更新后加载失败,提示nessuscli fetch —challenge 错误,处理办法是重复一次离线更新操作。出现这个报错的原因是nessus程序申请的Challenge code错了或者用了网上其他人的all-2.0.tar.gz。

nessus 6.10版的漏扫模式分有个性化扫描和策略扫描,个性扫描可以直接添加IP、配置策略,进行漏扫;策略扫描类似于默认扫描,方便程序直接调用的扫描策略,下面就先从个性化扫描开始讲解,主要讲Advanced scan(高级扫描)如何进行配置,开展扫描工作。其他扫描方式可以举一反三。

个性化扫描说明操作:

  1. 选择Scans>New Scan,这时可以看到所有的扫描模板(All Templates)。Scanner模板是程序带有的扫描模板,User模板我们自己配置的策略模板。2. 选择Advanced Scan,有Settings、Credentials、Compliance、Plugins子项,在Settings设置基本配置,Credentials添加目标权限,Compli添加目标服务配置文件,Plugins插件激活与关闭设置。3. Settings中BASIC有三个子项:General、Schedule、Notification。在General配置基本信息,包括项目命名,描述,归档,目标地址(家庭版一次项目只支持16个IP)。Schedule是定时扫描设置。Notification是扫描结束后邮件通知设置。添加项目名,扫描IP地址。4. Discovery有三个子项:Host Discovery、Port Scanning、Service Discovery。这里保存默认设置即可。5. ASSESSMENT有五子项:General、Brute Force、Web Applications、Windows、Malware。在这里可以设置Web、Windows、恶意软件扫描,还可以在Brute Force设置暴力破解。看需求添加扫描类型。6. REPORT报告设置,保存默认设置即可。7. ADVANCED高级选项设置,配置同时扫描的主机数和主机扫描线程数,保存默认设置即可。8. 最后单击save保存,在主界面单击扫描键(Launch )执行。

策略扫描操作:

  1. 选择Policies>New Policy2. 选择高级扫描Advanced Scan3. 同个性化扫描配置步骤一致,即事先配置好了策略4. 可以在New Scan里找到配置好的策略,添加项目名、描述、归档类、目标IP地址,单击Save保存,在主界面单击扫描键(Launch )执行。

结合MSF进行漏扫并验证攻击

  1. 启动nessus,终端输入:
/etc/init.d/nesssusd start
  1. 开启postgresql、metasploit服务,查看数据库连接情况:
service postgresql start
msfconsole
db_status

[]postgresql connected to msf

数据库连接成功

  1. MSF上加载nessus:
load nessus

[] Nessus Bridge for Metasploit
[] Type nessus_help for a command listing
[] Successfully loaded plugin: Nessus

加载nessus成功

  1. nessus帮助命令:
nessus_help
  1. MSF连接上nessus的数据库:

nessus_connect <用户名>:<密码>@localhost:8834 ok

[] Connecting to https://localhost:8834/ as root
[] User root authenticated successfully.

nessus在MSF上登录成功,这里需要nessus登录账号和密码

  1. 查看nessus设置好的策略,获取policy UUID:
nessus_policy_list
Policy ID、Name、Policy UUID分别对应的是策略ID,策略名,策略代码
  1. 创建扫描任务:

生成Scan ID(任务ID):
nessus_scan_new <策略代码> <任务名> <描述> <目标IP>
IP地址之间可以用“,”隔开,也可以扫网段,例如:192.168.1.0/24

  1. 执行扫描任务:

获取任务ID,查看任务状态:

nessus_scan_list
执行扫描:
nessus_scan_launch <任务ID>
  1. 报告结果:

获取主机高中低风险分布情况,命令如下:

nessus_report_hosts <任务ID>
获取主机详细的漏洞风险情况,命令如下:
nessus_report_vulns <任务ID>
  1. 导入postgresql数据库:
nessus_db_import <任务ID>

[] Exporting scan ID 47 is Nessus format…
[+] The export file ID for scan ID 47 is 312342081
[] Checking export status…
[] Export status: loading
[] Export status: ready
[] The status of scan ID 47 export is ready
[] Importing scan results to the database…
[*] Importing data of 192.168.101.94
[+] Done

导入数据库成功。

用hosts命令查看Postgresql数据库中的IP地址,命令如下:

hosts

nessus还可以直接扫postgresql数据库中存有的IP地址,命令如下:

nessus_db_scan <策略代码> <任务名> <任务描述>
其实跟第七步一样。
最后修改:2021 年 03 月 09 日
如果觉得我的文章对你有用,请随意赞赏