如何在 Debian 12 上安装和使用 Vuls 漏洞扫描器

发布于:2024-12-22 ⋅ 阅读:(13) ⋅ 点赞:(0)

简介

Vuls 是一款无代理、免费且开源的 Linux 和 FreeBSD 漏洞扫描器。Vuls 主要用 Go 语言编写,可以在任何地方运行。你可以在云端、本地和 Docker 上运行 Vuls,并且它支持主要的发行版。Vuls 提供高质量的扫描,支持多个漏洞数据库,例如 NVD、JVN、OVAL、RHSA/ALAS/ELSA/FreeBSD-SA。

使用 Vuls,你可以使用多种方法扫描多个操作系统。你可以扫描主机本地,也可以通过 SSH 扫描远程主机/服务器。它还提供多种扫描方法:不需要 root 权限的快速扫描和需要 root 权限的深度扫描。Vuls 可以一次扫描多个目标服务器。扫描完成后,你可以通过电子邮件和 Slack 发送结果。

在本指南中,你将学习如何在 Debian 12 服务器上安装 Vuls 漏洞扫描器。你将安装 Vuls,设置 CVE 数据库,然后使用 Vuls 扫描本地系统和远程机器。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

img

  • 按照自己需求选择配置,选择 Debian 12 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

img

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

img

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

img

  • 到此为止,我们的云服务器就远程连接上了。

安装依赖项

在安装 Vuls 之前,你必须确保已安装依赖项。在本节中,你将安装 ‘debian-goodies’ 和 ‘reboot-notifier’ 软件包作为 Vuls 的依赖项。

首先,运行以下命令更新你的 Debian 软件包索引。

sudo apt update

现在使用以下命令安装软件包 ‘debian-goodies’ 和 ‘reboot-notifier’。输入 ‘Y’ 以确认安装。

sudo apt install debian-goodies reboot-notifier

img

使用安装脚本安装 Vuls

安装依赖项后,你将使用安装脚本安装 Vuls。这将自动编译和安装 Vuls 以及其他 Vuls 工具到你的系统中。

要安装 Vuls,请执行以下命令。通过此命令,你将下载 Vuls 安装脚本 ‘install.sh’ 并运行它。

bash <( curl -s https://raw.githubusercontent.com/vulsio/vulsctl/master/install-host/install.sh )

img

现在,安装脚本将安装最新版本的 Golang,然后编译和安装 Vuls 的多个工具,例如 ‘go-cti’、‘go-cve-dictionary’、‘goval-dictionary’、‘go-exploitdb’、‘go-kev’、‘go-msfdb’ 和 ‘gost’。

img

img

img

安装完成后,检查 ‘/usr/local/bin’ 目录,你会看到 Vuls 的二进制文件及其工具。

ls /usr/local/bin/

你现在可以使用下面的 ‘vuls help’ 命令检查帮助消息。

vuls help

你会得到如下输出:

img

配置 Vuls

安装 Vuls 后,你需要先配置它才能扫描任何计算机或服务器。在本节中,你将为 Vuls 安装创建一个新目录和文件。你将为特定的 SQLite 数据库定义 CVE 数据库,并为 localhost 创建第一个扫描配置。

创建一个新目录 ‘/opt/vuls’ 并进入该目录。然后,使用 ‘nano’ 编辑器创建一个新文件 ‘config.toml’。

mkdir -p /opt/vuls; cd /opt/vuls
nano config.toml

输入以下配置以将 CVE 数据库与 Vuls 集成。此外,在最后一行,你正在定义 localhost 的扫描。

[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"]

完成后,保存并退出文件。

最后,运行下面的 ‘vuls’ 命令以验证你的配置。

vuls configtest

如果配置正确,你将看到以下输出:

img

使用 Vuls 创建 CVE 数据库

在本节中,你将使用 Vuls 工具从各种来源构建新的 CVE 数据库。你将为 Debian 安全跟踪器、NVD、OVAL 和 Metasploit 数据库创建 CVE 数据库。

首先,移动到 ‘/opt/vuls’ 目录:

cd /opt/vuls

现在运行以下命令,从多个来源下载并构建 CVE 数据库。在此示例中,你将使用来自 Debian 安全跟踪器、NVD、OVAL 和 Metasploit 数据库的 CVE 数据库。

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

img

img

img

该过程完成后,你的 CVE 数据库将在 ‘/opt/vuls’ 目录中可用。使用以下命令检查 ‘/opt/vuls’ 目录。

ls /opt/vuls/*.sqlite3

使用 Vuls 扫描 localhost

至此,你已经配置了 Vuls 并创建了 CVE 数据库。现在你准备好使用 Vuls 扫描你的 localhost 或本地机器。

要扫描你的本地机器,请运行下面的 ‘vuls’ 命令。

vuls scan localhost

该过程完成后,你将在终端上看到简单的结果。

现在运行下面的 ‘vuls tui’ 命令以查看详细的扫描报告。

vuls tui

在下面,你可以看到 localhost 的详细扫描报告。

img

按 ‘Ctrl+c’ 从 Vuls 终端用户界面退出。

使用 Vuls 扫描远程服务器

在本节中,你将使用 Vuls 扫描远程服务器。在本例中,目标服务器将是 IP 地址为 ‘192.168.10.45’,用户为 ‘rock’ 的 Rocky Linux 9 服务器。

首先,运行以下命令,下载 RedHat 9 的 OVAL CVE 数据库:

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

img

现在生成新的 SSH 公钥和私钥,然后将公钥上传到目标服务器。在此示例中,目标服务器是 IP 地址为 ‘192.168.10.45’,SSH 用户为 ‘rock’ 的 Rocky Linux 9。

ssh-keygen -t ed25519
ssh-copy-id rock@192.168.10.45

现在使用以下 ‘ssh’ 命令登录到目标服务器,并使用以下命令安装 ‘lsof’ 软件包。

ssh rock@192.168.10.45
sudo dnf install lsof -y

输入 ‘exit’ 从 Rocky Linux 服务器注销。

接下来,移动到 ‘/opt/vuls’ 目录,并使用 ‘nano’ 编辑器编辑 ‘config.toml’ 文件。

cd /opt/vuls/
nano config.toml

插入以下配置,为远程系统 Rocky Linux 9 服务器创建新的扫描。此外,请确保使用你的信息更改 IP 地址和用户的详细信息。

[servers.debian-server]
host = "192.168.10.45"
port = "22"
user = "rock"
keyPath = "/root/.ssh/id_ed25519"
scanMode = [ "fast-root" ] # "fast", "fast-root" or "deep"

保存文件并退出编辑器。

使用新配置,你现在可以使用以下命令测试你的 ‘config.toml’ 文件。

vuls configtest

img

如果没有错误,请使用下面的 ‘vuls’ 命令扫描远程服务器。

vuls scan rocky9

最后,运行下面的 ‘vuls’ 命令以访问远程扫描的报告。

vuls tui

在下面,你可以看到远程服务器 Rocky Linux 9 的详细报告。

img

相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site