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

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

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

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

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

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

Перед тем как начать, убедитесь, что у вас есть следующее:

  • Сервер Debian 12
  • Пользователь без прав root с правами администратора
  • Дополнительные серверы, такие как RockyLinux/Ubuntu, в качестве целей для удаленного сканирования

Установка зависимостей

Перед установкой Vuls вам необходимо убедиться, что зависимости установлены. В этом разделе вы установите пакеты ‘ debian-goodies ‘ и ‘ reboot-notifier ‘ в качестве зависимостей для Vuls.

Сначала выполните команду ниже, чтобы обновить индекс пакетов Debian.

sudo apt update

Теперь установите пакеты ‘ debian-goodies ‘ и ‘ reboot-notifier ‘ с помощью следующей команды. Введите ‘ Y ‘, чтобы подтвердить установку.

sudo apt install debian-goodies reboot-notifier

install deps

Установка Vuls с помощью скрипта установки

После установки зависимостей вы будете устанавливать Vuls с помощью скрипта установки. Это автоматически скомпилирует и установит Vuls и дополнительные инструменты для Vuls на вашу систему.

Чтобы установить Vuls, выполните следующую команду. С помощью этого вы загрузите скрипт установки Vuls ‘install.sh’ и запустите его.

bash <( curl -s https://raw.githubusercontent.com/vulsio/vulsctl/master/install-host/install.sh )

install vuls

Теперь скрипт установки установит последнюю версию Golang, затем скомпилирует и установит несколько инструментов для Vuls, таких как ‘ go-cti ‘, ‘ go-cve-dictionary ‘, ‘ goval-dictionary ‘, ‘ go-exploitdb ‘, ‘ go-kev ‘, ‘ go-msfdb ‘, и ‘ gost ‘.

install and comile go-cve-dictionary

install gost

install vuls

После завершения установки проверьте директорию ‘ /usr/local/bin ‘, и вы увидите бинарный файл для Vuls с его инструментами.

ls /usr/local/bin/

Теперь вы можете проверить сообщение справки с помощью команды ‘vuls help’ ниже.

vuls help

Вы получите вывод, похожий на следующий:

vuls go

Настройка Vuls

С установленным Vuls вам нужно будет настроить его перед сканированием любого компьютера или сервера. В этом разделе вы создадите новую директорию и файлы для установки Vuls. Вы определите базы данных CVE для конкретных баз данных SQLite и создадите первую конфигурацию сканирования для localhost.

Создайте новую директорию ‘ /opt/vuls ‘ и перейдите в нее. Затем создайте новый файл ‘ config.toml ‘ с помощью редактора ‘nano’.

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

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

check config

Создание баз данных CVE с Vuls

В этом разделе вы будете создавать новые базы данных CVE из различных источников с помощью инструментов Vuls. Вы создадите базы данных CVE для трекера безопасности Debian, NVD, OVAL и баз данных Metasploit.

Сначала перейдите в директорию ‘ /opt/vuls ‘:

cd /opt/vuls

Теперь выполните команду ниже, чтобы загрузить и создать базы данных CVE из нескольких источников. В этом примере вы будете использовать базу данных CVE из трекера безопасности Debian, NVD, OVAL и базу данных Metasploit.

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

download cve database

После завершения процесса ваши базы данных CVE будут доступны в директории ‘ /opt/vuls ‘. Проверьте директорию ‘ /opt/vuls ‘ с помощью команды ниже.

ls /opt/vuls/*.sqlite3

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

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

Чтобы просканировать вашу локальную машину, выполните команду ‘ vuls ‘ ниже.

vuls scan localhost

После завершения процесса вы увидите простой результат в вашем терминале.

Теперь выполните команду ‘ vuls tui ‘ ниже, чтобы просмотреть отчет о сканировании в деталях.

vuls tui

В следующем вы можете увидеть подробный отчет о сканировании для localhost.

vuls tui

Нажмите ‘Ctrl+c’, чтобы выйти из интерфейса терминала Vuls.

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

В этом разделе вы будете сканировать удаленный сервер с помощью Vuls. В этом примере целевым сервером будет сервер Rocky Linux 9 с IP-адресом ‘ 192.168.10.45 ‘ и пользователем ‘ rock ‘.

Сначала выполните команду ниже, чтобы загрузить базу данных OVAL CVE для RedHat 9:

goval-dictionary fetch redhat 9 --dbpath /opt/vuls/oval.sqlite3

download atabase

Теперь создайте новые SSH-ключи и загрузите открытый ключ на целевой сервер. В этом примере целевой сервер — это Rocky Linux 9 с IP-адресом ‘ 192.168.10.45 ‘ и SSH-пользователем ‘ rock ‘.

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

Теперь войдите на целевой сервер с помощью команды ‘ssh’ ниже и установите пакет ‘ lsof ‘ с помощью следующей команды.

ssh [email protected]  
sudo dnf install lsof -y

Введите ‘ exit ‘, чтобы выйти из сервера Rocky Linux.

Далее перейдите в директорию ‘/opt/vuls’ и отредактируйте файл ‘ config.toml ‘ с помощью редактора ‘nano’.

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

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

С новой конфигурацией вы теперь можете протестировать ваш файл ‘config.toml’ с помощью команды ниже.

vuls configtest

check configuration

Если ошибок нет, просканируйте удаленный сервер с помощью команды ‘vuls’ ниже.

vuls scan rocky9

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

vuls tui

В следующем вы можете увидеть подробный отчет о удаленном сервере Rocky Linux 9.

scan result

Заключение

Поздравляем! Вы завершили установку сканера уязвимостей Vuls на сервере Debian 12. Вы также узнали, как создавать базы данных CVE с помощью дополнительных инструментов Vuls. После этого вы также узнали, как сканировать локальные и удаленные серверы/машины с помощью Vuls.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.