Vuls:一款免费的开源Linux漏洞扫描器

Vuls采用无代理SSH方式,允许您使用多种方法(例如快速扫描和深度扫描)扫描多个操作系统。

译自 Vuls: A Free, Open Source Vulnerability Scanner for Linux,作者 Jack Wallen。

如果您需要扫描网络上的机器以查找漏洞,并且正在寻找最简单的选项之一,那么Vuls是一个不错的选择。

Vuls允许您使用多种方法扫描多个操作系统,例如快速扫描和深度扫描。Vuls的一大优点是它是无代理的,因此您无需担心在需要扫描的每台机器上安装代理。Vuls使用多个漏洞数据库,例如NVD、JVN、OVAL、RHSA/ALAS/ELSA/FreeBSD-SA和Changelog——因此您可以确定,如果存在漏洞,Vuls会发现它。

使用Vuls,您可以进行本地和远程扫描。所有远程扫描都是通过SSH完成的,因此任何目标都必须接受传入的SSH连接才能使其工作。

让我向您介绍安装Vuls的过程。我将在Ubuntu Server 22.04实例上进行演示。我将演示两种不同的Vuls安装方法。

您需要什么

要运行Vuls,您需要一个正在运行的Linux实例和一个具有sudo权限的用户。如前所述,我将在Ubuntu Server 22.04实例上进行演示。两种安装方法都可以使用。

最佳安装方法

此方法需要更多时间,但它将为您提供最新版本的Vuls。

首先,您需要运行系统的更新/升级。请记住,如果内核已升级,则需要重新启动才能使更改生效,这意味着您需要在可以重新启动的时间进行此操作。

使用以下命令运行更新和升级:

sudo apt-get update && sudo apt-get upgrade -y

完成后,使用以下命令安装必要的依赖项:

sudo apt-get install debian-goodies reboot-notifier -y

完成上述命令后,使用以下命令下载安装程序脚本:

wget https://raw.githubusercontent.com/vulsio/vulsctl/master/install-host/install.sh

使用以下命令授予安装程序脚本可执行权限:

chmod u+x install.sh

使用以下命令运行安装程序:

sudo ./install.sh

系统将提示您接受安装。发生这种情况时,键入“y”并按键盘上的Enter键。安装大约需要2到5分钟才能完成。

安装完成后,使用以下命令验证安装是否成功:

vuls help

您应该会看到帮助文件的内容。

更简单的安装方法

如前所述,此安装方法不会安装最新版本的Vuls,但它肯定更容易,因为标准存储库中有一个Vuls版本。要运行此安装,请返回终端窗口并发出以下命令:

sudo apt-get install vuls -y

允许安装完成,您就可以继续了。

配置Vuls

首先,您需要使用以下命令为Vuls创建一个新目录:

sudo mkdir /opt/vuls

使用以下命令进入该目录:

cd /opt/vuls

使用以下命令创建配置文件:

sudo nano config.toml

将以下内容粘贴到新文件中:

[cveDict]
type = "sqlite3"
SQLite3Path = "/opt/vuls/cve.sqlite3"

[ovalDict]
type = "sqlite3"
SQLite3Path = "/opt/vuls/oval.sqlite3"

[gost]
type = "sqlite3"
SQLite3Path = "/opt/vuls/gost.sqlite3"

[metasploit]
type = "sqlite3"
SQLite3Path = "/opt/vuls/go-msfdb.sqlite3"

[servers]
[servers.localhost]
host = "localhost"
port = "local"
scanMode = [ "fast-root" ]
#scanMode = ["fast", "fast-root", "deep", "offline"]

使用以下命令运行配置测试:

sudo vuls configtest

如果配置一切正常,您将在输出中看到类似以下内容:

[Nov 13 17:48:14] INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode
[Nov 13 17:48:14] INFO [localhost] Scannable servers are below...localhost

创建CVE数据库

现在,我们需要创建一个CVE数据库。确保您位于/opt/vuls目录中,然后运行以下命令:

sudo gost fetch debian --dbpath /opt/vuls/gost.sqlite3
sudo go-cve-dictionary fetch nvd --dbpath /opt/vuls/cve.sqlite3
sudo goval-dictionary fetch debian 12 --dbpath /opt/vuls/oval.sqlite3
sudo go-msfdb fetch msfdb --dbpath /opt/vuls/go-msfdb.sqlite3

您现在应该会看到几个扩展名为.sqlite3的文件。

运行您的第一次扫描

让我们使用以下命令对localhost运行漏洞扫描:

sudo vuls scan localhost

扫描完成后,您可以使用以下命令查看结果:

sudo vuls tui

您将看到一个多窗格窗口,显示所有发现的漏洞。

扫描特定发行版

假设您有一台 IP 地址为 192.168.1.100 的 RHEL 9 服务器,并且您想用 Vuls 扫描它。为此,您首先必须使用以下命令下载特定于 RHEL 9 的 OVAL CVE 数据库:

sudo goval-dictionary fetch redhat 9 --dbpath /opt/vuls/oval.sqlite3

因为 Vuls 使用 SSH 并依赖于 SSH 密钥认证,所以您需要生成一个 SSH 密钥:

ssh-keygen

使用以下命令将密钥复制到服务器:

ssh-copy-id USERNAME@192.168.1.100

将上面的 USERNAME 文本替换为远程服务器上的用户名。

然后我们需要编辑 Vuls 配置文件,所以用以下命令打开它:

sudo nano /opt/vuls/config.toml

在文件的底部,添加以下内容:

[servers.rhel]
host = "192.168.10.100"
port = "22"
user = "USERNAME"
keyPath = "/home/USERNAME/.ssh/id_rsa"
scanMode = [ "fast-root" ] # "fast", "fast-root" or "deep"

确保将 IP 地址替换为远程服务器的 IP 地址,并将 USERNAME 替换为远程机器上的实际用户名。 保存并关闭文件。

再次使用以下命令运行配置测试:

sudo vuls configtest

您应该不会看到任何错误。

要在/opt/vuls目录中运行远程扫描,请发出以下命令:

sudo vuls scan rhel

扫描完成后,使用sudo vuls tui命令查看结果。

这就是在 Ubuntu Server 22.04 上安装 Vuls 漏洞扫描程序的全部内容。试试这个工具,看看它是否能帮助您发现连接到局域网的机器上的漏洞。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注