Сканеры уязвимостей · 7 min read · Sep 16, 2025

Как установить и использовать сканер уязвимостей Vuls на Ubuntu 24.04

Vuls — это безагентный, бесплатный и с открытым исходным кодом сканер уязвимостей, который можно запускать в любом месте. Вы можете запускать Vuls в облаке, на локальных серверах и в Docker, и он поддерживает основные дистрибутивы. Vuls поддерживает несколько баз данных уязвимостей, таких как NVD, JVN, OVAL, RHSA/ALAS/ELSA/FreeBSD-SA.

С помощью Vuls вы можете сканировать несколько операционных систем, используя несколько методов. Вы можете сканировать локальные системы вашего хоста, а также удаленные хосты/серверы через SSH. Он также предоставляет несколько методов сканирования: быстрое сканирование, которое не требует прав root, и глубокое сканирование, которое требует прав root. Vuls может сканировать несколько целевых серверов одновременно. Когда сканирование завершено, вы можете отправить результат по электронной почте и в Slack.

В этом руководстве мы покажем вам, как установить сканер уязвимостей Vuls на сервере Ubuntu 24.04. Вы установите Vuls, сгенерируете базы данных CVE и просканируете Ubuntu/Debian через локальные и удаленные сканирования.

Предварительные требования

Чтобы начать с этого руководства, убедитесь, что у вас есть следующее:

  • Сервер Ubuntu 24.04
  • Непользователь с правами 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

обновление репозитория и установка зависимостей

После установки зависимостей вам нужно установить Golang в вашей системе. В этом примере вы будете устанавливать последнюю версию Golang через ручную бинарную установку.

Выберите вашу версию Golang с помощью следующей команды. Например, Golang 1.23.2:

export latest_version=1.23.2

Запустите команду ‘wget’ ниже, чтобы загрузить Golang и извлечь его в директорию ‘/usr/local‘ с помощью команды ‘tar‘.

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

Затем создайте новый файл окружения ‘/etc/profile.d/go-env.sh‘ с помощью редактора ‘nano‘.

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

Вставьте следующую конфигурацию, чтобы настроить PATH для Golang.

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‘.

настройка и установка Golang

Установка Vuls и словарей Vuls

После установки Golang вы будете компилировать и устанавливать Vuls и его компоненты для создания баз данных CVE в формате sqlite3. Ниже приведены некоторые компоненты Vuls, которые вы будете устанавливать:

  • go-cve-dictionary‘ используется для создания NVD (Национальная база данных уязвимостей)
  • goval-dictionary‘ для создания базы данных OVAL, которая содержит CVE для большинства дистрибутивов Linux, таких как Debian, Ubuntu и RedHat
  • go-exploitdb‘ для поиска эксплойтов в базах данных exploitdb
  • go-msfdb‘ для поиска CVE в базах данных Metasploit
  • go-kev‘ для создания локальной копии KEV (Известные эксплуатируемые уязвимости), предоставленной CISA
  • go-cti‘, который будет использоваться для создания базы данных CVE из CTI (Киберугрозы)

Сначала выполните команду ниже, чтобы создать новые каталоги журналов и изменить владельца на вашего пользователя, например, ‘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’, загрузите исходный код инструмента ‘go-cve-dictionary‘ через ‘git’, а затем скомпилируйте и установите его.

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

словарь cve

Теперь выполните команду ниже, чтобы загрузить, скомпилировать и установить инструмент ‘goval-dictionary‘.

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

После установки ‘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

go-exploitdb

Далее выполните команду ниже, чтобы установить и скомпилировать инструмент ‘go-msfdb‘.

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

go-msfdb

После этого установите инструмент ‘go-kev‘ для создания баз данных CVE для KEV (Известные эксплуатируемые уязвимости) от CISA.

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

Затем установите инструмент ‘go-cti‘, который будет использоваться для создания CVE из CTI (Киберугрозы).

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

Далее выполните команду ниже, чтобы загрузить, скомпилировать и установить ‘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

установка vuls

Когда все будет установлено, бинарный файл для каждого инструмента будет доступен в директории ‘$GOPATH/bin’. Выполните команду ниже, чтобы проверить эту директорию.

ls $GOPATH/bin/

Вы можете увидеть ниже бинарные файлы для ‘vuls‘, ‘go-cve-dictionary‘, ‘goval-dictionary‘, ‘go-exploitdb‘, ‘go-msfdb‘, ‘go-kev‘ и ‘go-cti‘.

Наконец, вы также можете проверить команду ‘vuls‘ ниже. Это покажет вам справочное сообщение для ‘vuls‘.

vuls help

проверка vuls

Загрузка баз данных CVE (Общие уязвимости и воздействия)

В этом примере вы будете загружать базы данных CVE для:

  • NVD (Национальная база данных уязвимостей) через ‘go-cve-dictionary
  • OVAL (Язык открытых уязвимостей и оценок) для Ubuntu 24.04 через ‘goval-dictionary
  • Базы данных ExploitDB через ‘go-exploitdb
  • Базы данных Metasploit через ‘go-msfdb
  • Каталог KEV (Известные эксплуатируемые уязвимости) от CISA через ‘go-kev
  • Базы данных MITRE ATT&CK и CAPEC через ‘go-cti

Перейдите в свою домашнюю директорию с помощью следующей команды:

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

загрузка базы данных nvd

загрузка базы данных oval

загрузка msfdb

После завершения процесса ваши базы данных CVE будут доступны в вашей домашней директории в формате ‘.sqlite3‘. Проверьте список баз данных с помощью следующей команды:

ls -ah *.sqlite3

Сканирование локальной машины с помощью Vuls

Теперь, когда вы установили Vuls и его компоненты, включая базы данных CVE. В этом разделе вы будете сканировать свою локальную машину Ubuntu с помощью Vuls.

В вашей домашней директории создайте новый файл ‘config.toml‘ с помощью редактора ‘nano‘.

nano config.toml

Вставьте конфигурацию ниже, чтобы настроить сканирование для localhost в режиме ‘fast’.

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

Сохраните файл и выйдите из редактора.

Теперь выполните команду ‘vuls’ ниже, чтобы проверить файл ‘config.toml’.

vuls configtest

Если у вас правильная конфигурация, вы увидите вывод, похожий на следующий:

проверка конфигурации

Далее просканируйте localhost с помощью команды ‘vuls scan‘ ниже.

sudo vuls scan

Вы можете увидеть, что процесс сканирования завершен.

сканирование localhost с помощью vuls

Чтобы получить детали отчета о сканировании, используйте команду ‘vuls tui‘ ниже. Это покажет вам интерфейс терминала отчета Vuls.

sudo vuls tui

Вы можете нажать ‘CTRL+c‘, чтобы выйти из Vuls TUI.

Сканирование удаленного сервера с помощью Vuls

В этом разделе вы узнаете, как настроить удаленное сканирование с помощью Vuls. Вы будете сканировать удаленную систему через SSH с помощью Vuls. В этом примере вы будете сканировать целевой сервер Debian 12 с IP-адресом ‘192.168.10.10‘ и пользователем ‘alice‘.

Сначала выполните команду ниже, чтобы загрузить базу данных OVAL для Debian 12.

goval-dictionary fetch debian 12

Теперь сгенерируйте SSH-ключи и загрузите их на целевой сервер с помощью команды ‘ssh-copy-id‘.

ssh-keygen -t ed25519  
ssh-copy-id [email protected]

копирование ssh ключа

Подключитесь к целевому серверу ‘192.168.10.10’, затем обновите индекс пакетов и установите зависимости, такие как ‘debian-goodies‘ и ‘reboot-notifier‘.

ssh [email protected]  
sudo apt update && sudo apt install debian-goodies reboot-notifier -y

Введите ‘exit‘, чтобы выйти из целевого сервера.

Далее откройте конфигурацию Vuls ‘config.toml‘ с помощью редактора ‘nano‘.

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" или "deep"

Сохраните файл и выйдите из редактора.

Теперь выполните команду ‘vuls‘ ниже, чтобы проверить вашу конфигурацию. Убедитесь, что у вас правильная и корректная конфигурация.

vuls configtest

После этого просканируйте удаленный сервер ‘debian12‘ с помощью команды ниже.

vuls scan debian12

Вы можете увидеть, что удаленное сканирование через Vuls завершено.

сканирование удаленного сервера с помощью vuls

Заключение

Поздравляем! Вы завершили установку сканера уязвимостей Vuls на сервере Ubuntu 24.04. Вы также узнали, как генерировать базы данных CVE с помощью Vuls, сканировать локальные и удаленные серверы с помощью Vuls. Теперь вы можете интегрировать Vuls с другим сканером, таким как NMAP для сканирования портов, или вы также можете установить Vulsrepo для графического и веб-интерфейса.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.