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

server/2024/12/22 11:06:29/

简介

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


http://www.ppmy.cn/server/152217.html

相关文章

Pytorch | 从零构建ResNet对CIFAR10进行分类

Pytorch | 从零构建ResNet对CIFAR10进行分类 CIFAR10数据集ResNet核心思想网络结构创新点优点应用 ResNet结构代码详解结构代码代码详解BasicBlock 类ResNet 类ResNet18、ResNet34、ResNet50、ResNet101、ResNet152函数 训练过程和测试结果代码汇总resnet.pytrain.pytest.py 前…

uniApp使用腾讯地图提示未添加maps模块

uniApp使用腾讯地图&#xff0c;打包提示未添加maps模块解决方案 这是报错信息&#xff0c;在标准基座运行的时候是没问题的&#xff0c;但是打包后会提示未添加&#xff0c;可以通过在mainfest里面把地图插件上腾讯地图的key更换高德地图的key&#xff0c;定位服务可以继续用腾…

讲PPT 需要注意的事项

目录 1-逐字稿多少字&#xff1f; 2-在整个过程中要有学生上台展示的环节。&#xff08;对于讲课适用&#xff09; 3-多演练两遍&#xff0c;需要提前谋划好&#xff0c;走2-3遍&#xff0c;把时间卡好 4-PPT上的文字颜色要加强 5-PPT上的字号 6-逐字稿 1-逐字稿多少字&am…

利用 Jsoup 进行高效 Web 抓取与 HTML 处理

Jsoup 是一款 Java 的 HTML 解析器&#xff0c;可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API&#xff0c;可通过 DOM&#xff0c;CSS 以及类似于 JQuery 的操作方法来取出和操作数据。 官网&#xff1a;https://jsoup.org/ 中文文档&#xff1a;Jsou…

rabbitMq的status报错Error: unable to perform an operation on node ‘rabbit……

遇到下图这个错大部分问题可能是由于 RabbitMQ CLI 工具的 Erlang Cookie 与服务器上的不匹配而导致连接问题。Erlang Cookie 在 RabbitMQ 节点之间进行身份验证和安全通信时起着重要作用。 可以在c盘搜索一下看下两个.erlang.cookie文件中的内容是否一致&#xff0c;不一致的…

学习记录:electron主进程与渲染进程直接的通信示例【开箱即用】

electron主进程与渲染进程直接的通信示例 1. 背景&#xff1a; electronvue实现桌面应用开发 2.异步模式 2.1使用.send 和.on的方式 preload.js中代码示例&#xff1a; const { contextBridge, ipcRenderer} require(electron);// 暴露通信接口 contextBridge.exposeInMa…

多维高斯分布

高斯分布&#xff08;Gaussian Distribution&#xff09; 高斯分布&#xff0c;又称正态分布&#xff0c;是一种最常见的概率分布形式&#xff0c;广泛应用于统计学、机器学习和自然科学等领域。 高斯分布的概率密度函数&#xff08;PDF&#xff09; 对于给定的均值 μ 和方差…

36. Three.js案例-创建带光照和阴影的球体与平面

36. Three.js案例-创建带光照和阴影的球体与平面 实现效果 知识点 Three.js基础 WebGLRenderer WebGLRenderer 是Three.js中最常用的渲染器&#xff0c;用于将场景渲染到网页上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersobject可选参数&#…