Vuls是一个无代理的免费开源漏洞扫描器,可以在任何地方运行。你可以在云环境、本地环境和Docker中运行Vuls,并且支持主流Linux发行版。Vuls支持多种漏洞数据库,包括NVD、JVN、OVAL、RHSA/ALAS/ELSA/FreeBSD-SA等。

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

本教程将介绍如何在Ubuntu 24.04服务器上安装Vuls漏洞扫描器。你将安装Vuls、生成CVE数据库,并通过本地和远程扫描扫描Ubuntu/Debian系统。

前提条件

开始本教程之前,请确保你具备以下条件:

• 一台Ubuntu 24.04服务器
• 一个具有root权限的非root用户
• 一台额外的Ubuntu/Debian机器用于Vuls远程扫描

安装依赖

在安装Vuls之前,你必须确保系统上已安装Golang。目前最新版本的Vuls需要最新版本的Golang,因此你需要通过下载二进制包手动安装Golang。

首先运行以下命令更新Ubuntu软件包索引,并安装sqlite3、git、make和gcc等依赖。

sudo apt update
sudo apt install sqlite3 git debian-goodies gcc make wget -y

Ubuntu 24.04安装Vuls漏洞扫描器教程

依赖安装完成后,你需要在系统上安装Golang。本例中你将通过手动安装二进制包的方式来安装最新版本的Golang。

使用以下命令选择Golang版本,例如Golang 1.23.2:

export latest_version=1.23.2

运行以下wget命令下载Golang,并使用tar命令将其解压到/usr/local目录。

wget https://dl.google.com/go/go$latest_version.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go$latest_version.linux-amd64.tar.gz

Golang安装完成后,登录到你的用户账户,在主目录中创建一个新的go目录。

su - arvd
mkdir $HOME/go

接下来使用nano编辑器创建新的环境变量文件/etc/profile.d/go-env.sh。

sudo nano /etc/profile.d/go-env.sh

粘贴以下配置来设置Golang的PATH环境变量。

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

保存并退出文件。

现在使用以下命令使/etc/profile.d/go-env.sh文件可执行,并使用source命令将其加载到当前会话中。

sudo chmod +x /etc/profile.d/go-env.sh
source /etc/profile.d/go-env.sh

最后检查go二进制文件的位置并查看其版本:

which go
go version

如下所示,Golang 1.23.2已安装在/usr/local/go/bin/go。

Ubuntu 24.04安装Vuls漏洞扫描器教程

安装Vuls和Vuls字典

Golang安装完成后,你将编译安装Vuls及其组件,用于构建sqlite3格式的CVE数据库。以下是你将安装的Vuls组件:

• go-cve-dictionary:用于构建NVD(国家漏洞数据库)
• goval-dictionary:用于构建OVAL数据库,包含大多数Linux发行版(如Debian、Ubuntu和RedHat)的CVE
• go-exploitdb:用于从exploitdb数据库搜索漏洞利用
• go-msfdb:用于在Metasploit数据库中搜索CVE
• go-kev:用于构建CISA提供的KEV(已知被利用漏洞)的本地副本
• go-cti:用于从CTI(网络威胁情报)构建CVE数据库

首先运行以下命令创建新的日志目录,并将所有权更改为你的用户(如arvd)。

sudo mkdir /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}
sudo chown arvd /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}
sudo chmod 700 /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}

使用以下命令创建新目录$GOPATH/src/github.com/vulsio:

mkdir -p $GOPATH/src/github.com/vulsio

进入$GOPATH/src/github.com/vulsio目录,通过git下载go-cve-dictionary工具的源代码,然后编译并安装它。

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-cve-dictionary.git
cd go-cve-dictionary; make install

Ubuntu 24.04安装Vuls漏洞扫描器教程

现在运行以下命令下载、编译并安装goval-dictionary工具。

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/goval-dictionary.git
cd goval-dictionary; make install

Ubuntu 24.04安装Vuls漏洞扫描器教程

goval-dictionary安装完成后,继续安装go-exploitdb工具。

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-exploitdb.git
cd go-exploitdb; make install
ln -s $GOPATH/src/github.com/vulsio/go-exploitdb/go-exploitdb.sqlite3 $HOME/go-exploitdb.sqlite3

Ubuntu 24.04安装Vuls漏洞扫描器教程

接下来运行以下命令安装并编译go-msfdb工具。

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-msfdb.git
cd go-msfdb; make install

Ubuntu 24.04安装Vuls漏洞扫描器教程

然后安装go-kev工具,用于构建CISA提供的KEV(已知被利用漏洞)CVE数据库。

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-kev.git
cd go-kev; make install
ln -s $GOPATH/src/github.com/vulsio/go-kev/go-kev.sqlite3 $HOME/go-kev.sqlite3

Ubuntu 24.04安装Vuls漏洞扫描器教程

然后安装go-cti工具,用于从CTI(网络威胁情报)构建CVE数据库。

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-cti.git
cd go-cti; make install
ln -s $GOPATH/src/github.com/vulsio/go-cti/go-cti.sqlite3 $HOME/go-cti.sqlite3

Ubuntu 24.04安装Vuls漏洞扫描器教程

接下来运行以下命令下载、编译并安装vuls到你的Ubuntu机器。

mkdir -p $GOPATH/src/github.com/future-architect
cd $GOPATH/src/github.com/future-architect
git clone https://github.com/future-architect/vuls.git
cd vuls; make install

Ubuntu 24.04安装Vuls漏洞扫描器教程

所有工具安装完成后,每个工具的二进制文件将位于$GOPATH/bin目录中。运行以下命令检查该目录。

ls $GOPATH/bin/

你将看到vuls、go-cve-dictionary、goval-dictionary、go-exploitdb、go-msfdb、go-kev和go-cti的二进制文件。

最后运行以下命令检查vuls。这将显示vuls的帮助信息。

vuls help

Ubuntu 24.04安装Vuls漏洞扫描器教程

下载CVE(通用漏洞披露)数据库

在本例中,你将下载以下CVE数据库:

• 通过go-cve-dictionary下载NVD(国家漏洞数据库)
• 通过goval-dictionary下载Ubuntu 24.04的OVAL(开放漏洞和评估语言)
• 通过go-exploitdb下载ExploitDB数据库
• 通过go-msfdb下载Metasploit数据库
• 通过go-kev下载CISA提供的KEV(已知被利用漏洞)目录
• 通过go-cti下载MITRE ATT&CK和CAPEC数据库

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

cd $HOME

现在运行以下命令下载并构建CVE(通用漏洞披露)数据库。

go-cve-dictionary fetch nvd
goval-dictionary fetch ubuntu 24.04
go-exploitdb fetch exploitdb
go-msfdb fetch msfdb
go-kev fetch kevuln
go-cti fetch threat

Ubuntu 24.04安装Vuls漏洞扫描器教程

Ubuntu 24.04安装Vuls漏洞扫描器教程

Ubuntu 24.04安装Vuls漏洞扫描器教程

过程完成后,你的CVE数据库将以.sqlite3格式保存在主目录中。使用以下命令验证数据库列表:

ls -ah *.sqlite3

使用Vuls扫描本地机器

现在你已经安装了Vuls及其组件,包括CVE数据库。在本节中,你将使用Vuls扫描本地Ubuntu机器。

在主目录中,使用nano编辑器创建新文件config.toml。

nano config.toml

插入以下配置,设置使用fast模式扫描localhost。

[servers]

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

保存文件并退出编辑器。

现在运行以下vuls命令验证config.toml文件。

vuls configtest

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

Ubuntu 24.04安装Vuls漏洞扫描器教程

接下来使用以下vuls scan命令扫描localhost。

sudo vuls scan

你可以看到扫描过程已完成。

Ubuntu 24.04安装Vuls漏洞扫描器教程

要获取扫描报告的详细信息,使用以下vuls tui命令。这将显示Vuls报告的终端用户界面。

sudo vuls tui

你可以按CTRL+c退出Vuls TUI界面。

使用Vuls扫描远程服务器

在本节中,你将学习如何使用Vuls设置远程扫描。你将通过SSH使用Vuls扫描远程系统。在本例中,你将扫描IP地址为192.168.10.10、用户为alice的Debian 12目标服务器。

首先运行以下命令下载Debian 12的OVAL数据库。

goval-dictionary fetch debian 12

现在生成SSH公钥和私钥,然后使用ssh-copy-id命令将其上传到目标服务器。

ssh-keygen -t ed25519
ssh-copy-id alice@192.168.10.10

Ubuntu 24.04安装Vuls漏洞扫描器教程

连接到目标服务器192.168.10.10,然后更新软件包索引并安装debian-goodies和reboot-notifier等依赖。

ssh alice@192.168.10.10
sudo apt update && sudo apt install debian-goodies reboot-notifier -y

输入exit退出目标服务器。

接下来使用nano编辑器打开Vuls配置文件config.toml。

nano ~/config.toml

插入以下配置以添加目标服务器的详细信息。在本例中,新目标服务器将命名为debian12,IP地址为192.168.10.10,通过SSH密钥进行身份验证。

[servers.debian12]
host = "192.168.10.10"
port = "22"
user = "alice"
keyPath = "~/.ssh/id_ed25519"
scanMode = [ "fast-root" ] # "fast", "fast-root" or "deep"

保存文件并退出编辑器。

现在运行以下vuls命令验证你的配置。确保配置正确无误。

vuls configtest

然后使用以下命令扫描远程debian12服务器。

vuls scan debian12

你可以看到通过Vuls进行的远程扫描已完成。

Ubuntu 24.04安装Vuls漏洞扫描器教程

总结

恭喜!你已完成在Ubuntu 24.04服务器上安装Vuls漏洞扫描器。你还学习了如何使用Vuls生成CVE数据库、扫描本地和远程服务器。从这里开始,你可以将Vuls与NMAP等其他扫描器集成进行端口扫描,也可以安装Vulsrepo获取图形化Web界面。