简介
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
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择 Debian 12 版本,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 输入
ssh root@你的服务器IP
例如ssh root@154.9.227.239
回车后,首次需要输入yes
,再次回车后即可登录服务器。
- 到此为止,我们的云服务器就远程连接上了。
安装依赖项
在安装 Vuls 之前,你必须确保已安装依赖项。在本节中,你将安装 'debian-goodies' 和 'reboot-notifier' 软件包作为 Vuls 的依赖项。
首先,运行以下命令更新你的 Debian 软件包索引。
bash
sudo apt update
现在使用以下命令安装软件包 'debian-goodies' 和 'reboot-notifier'。输入 'Y' 以确认安装。
bash
sudo apt install debian-goodies reboot-notifier
使用安装脚本安装 Vuls
安装依赖项后,你将使用安装脚本安装 Vuls。这将自动编译和安装 Vuls 以及其他 Vuls 工具到你的系统中。
要安装 Vuls,请执行以下命令。通过此命令,你将下载 Vuls 安装脚本 'install.sh' 并运行它。
bash
bash <( curl -s https://raw.githubusercontent.com/vulsio/vulsctl/master/install-host/install.sh )
现在,安装脚本将安装最新版本的 Golang,然后编译和安装 Vuls 的多个工具,例如 'go-cti'、'go-cve-dictionary'、'goval-dictionary'、'go-exploitdb'、'go-kev'、'go-msfdb' 和 'gost'。
安装完成后,检查 '/usr/local/bin' 目录,你会看到 Vuls 的二进制文件及其工具。
bash
ls /usr/local/bin/
你现在可以使用下面的 'vuls help' 命令检查帮助消息。
bash
vuls help
你会得到如下输出:
配置 Vuls
安装 Vuls 后,你需要先配置它才能扫描任何计算机或服务器。在本节中,你将为 Vuls 安装创建一个新目录和文件。你将为特定的 SQLite 数据库定义 CVE 数据库,并为 localhost 创建第一个扫描配置。
创建一个新目录 '/opt/vuls' 并进入该目录。然后,使用 'nano' 编辑器创建一个新文件 'config.toml'。
bash
mkdir -p /opt/vuls; cd /opt/vuls
nano config.toml
输入以下配置以将 CVE 数据库与 Vuls 集成。此外,在最后一行,你正在定义 localhost 的扫描。
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"]
完成后,保存并退出文件。
最后,运行下面的 'vuls' 命令以验证你的配置。
bash
vuls configtest
如果配置正确,你将看到以下输出:
使用 Vuls 创建 CVE 数据库
在本节中,你将使用 Vuls 工具从各种来源构建新的 CVE 数据库。你将为 Debian 安全跟踪器、NVD、OVAL 和 Metasploit 数据库创建 CVE 数据库。
首先,移动到 '/opt/vuls' 目录:
bash
cd /opt/vuls
现在运行以下命令,从多个来源下载并构建 CVE 数据库。在此示例中,你将使用来自 Debian 安全跟踪器、NVD、OVAL 和 Metasploit 数据库的 CVE 数据库。
bash
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
该过程完成后,你的 CVE 数据库将在 '/opt/vuls' 目录中可用。使用以下命令检查 '/opt/vuls' 目录。
bash
ls /opt/vuls/*.sqlite3
使用 Vuls 扫描 localhost
至此,你已经配置了 Vuls 并创建了 CVE 数据库。现在你准备好使用 Vuls 扫描你的 localhost 或本地机器。
要扫描你的本地机器,请运行下面的 'vuls' 命令。
bash
vuls scan localhost
该过程完成后,你将在终端上看到简单的结果。
现在运行下面的 'vuls tui' 命令以查看详细的扫描报告。
bash
vuls tui
在下面,你可以看到 localhost 的详细扫描报告。
按 'Ctrl+c' 从 Vuls 终端用户界面退出。
使用 Vuls 扫描远程服务器
在本节中,你将使用 Vuls 扫描远程服务器。在本例中,目标服务器将是 IP 地址为 '192.168.10.45',用户为 'rock' 的 Rocky Linux 9 服务器。
首先,运行以下命令,下载 RedHat 9 的 OVAL CVE 数据库:
bash
goval-dictionary fetch redhat 9 --dbpath /opt/vuls/oval.sqlite3
现在生成新的 SSH 公钥和私钥,然后将公钥上传到目标服务器。在此示例中,目标服务器是 IP 地址为 '192.168.10.45',SSH 用户为 'rock' 的 Rocky Linux 9。
bash
ssh-keygen -t ed25519
ssh-copy-id rock@192.168.10.45
现在使用以下 'ssh' 命令登录到目标服务器,并使用以下命令安装 'lsof' 软件包。
bash
ssh rock@192.168.10.45
sudo dnf install lsof -y
输入 'exit' 从 Rocky Linux 服务器注销。
接下来,移动到 '/opt/vuls' 目录,并使用 'nano' 编辑器编辑 'config.toml' 文件。
bash
cd /opt/vuls/
nano config.toml
插入以下配置,为远程系统 Rocky Linux 9 服务器创建新的扫描。此外,请确保使用你的信息更改 IP 地址和用户的详细信息。
toml
[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' 文件。
bash
vuls configtest
如果没有错误,请使用下面的 'vuls' 命令扫描远程服务器。
bash
vuls scan rocky9
最后,运行下面的 'vuls' 命令以访问远程扫描的报告。
bash
vuls tui
在下面,你可以看到远程服务器 Rocky Linux 9 的详细报告。
相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site