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

devtools/2024/12/23 18:28:17/

简介

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/devtools/144760.html

相关文章

搭建MPI/CUDA开发环境

本文记录MPI/CUDA开发环境搭建过程。 一、Linux 2.1 环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1 2.2 VS Code 下载VS Code&#xff0c;然后安装以下插件&#xff0c; Task Explorer Output Colorizer Git Extension Pack Git Graph Remot…

【Web】PolarCTF2024秋季个人挑战赛wp

EZ_Host 一眼丁真命令注入 payload: ?host127.0.0.1;catf*序列一下 exp: <?phpclass Polar{public $lt;public $b; } $pnew Polar(); $p->lt"system"; $p->b"tac /f*"; echo serialize($p);payload: xO:5:"Polar":2:{s:2:"l…

安全见闻(2)

软件程序 软件程序通常由源代码组成&#xff0c;这是人类可读的文本形式的指令。源代码可以被编译成机器代码&#xff0c;这是计算机可以直接执行的二进制形式&#xff0c;或者被解释执行&#xff0c;即在运行时逐行翻译成机器代码。 不同软件的本质实际就是代码。 1. 编程语…

【爬虫开发】爬虫开发从0到1全知识教程第11篇:Mongodb数据库,介绍【附代码文档】

本教程的知识点为&#xff1a;爬虫概要 爬虫基础 爬虫概述 知识点&#xff1a; 1. 爬虫的概念 requests模块 requests模块 知识点&#xff1a; 1. requests模块介绍 1.1 requests模块的作用&#xff1a; 数据提取概要 数据提取概述 知识点 1. 响应内容的分类 知识点&#xff1a…

热更新解决方案4——xLua热补丁

概述 运行时不在执行C#中的代码&#xff0c;而是执行Lua中的代码&#xff0c;相当于是打了个补丁。 1.第一个热补丁 2.多函数替换 3.协程函数替换 在原HotfixMain脚本中只加个协程函数即可&#xff08;和在Start中启动协程函数&#xff09; 4.索引器和属性替换 在HotfixMain中…

网络计算器的实现:TCP、守护进程、Json、序列化与反序列化

目录 核心简介 代码实现网络计算器 Tcpserver.hpp 代码剖析 ServerCal.hpp 代码剖析 SeverCal.cc 代码剖析 protocal.hpp 代码剖析 ClientCal.cc 代码剖析 testjson.cc Json介绍 其他注意点 重谈OSI的七层模型 核心简介 在当今信息化时代&#xff0c;网络计算器…

前端使用 Konva 实现可视化设计器(20)- 性能优化、UI 美化

这一章主要分享一下使用 Konva 遇到的性能优化问题&#xff0c;并且介绍一下 UI 美化的思路。 至少有 2 位小伙伴积极反馈&#xff0c;发现本示例有明显的性能问题&#xff0c;一是内存溢出问题&#xff0c;二是卡顿的问题&#xff0c;在这里感谢大家的提醒。 请大家动动小手&a…

入门网络安全工程师要学习哪些内容【2025年寒假最新学习计划】

&#x1f91f; 基于入门网络安全/黑客打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 大家都知道网络安全行业很火&#xff0c;这个行业因为国家政策趋势正在大力发展&#xff0c;大有可为!但很多人对网络安全工程师还是不了解&#xff0c;不知道网…