Как установить и использовать сканер уязвимостей Vuls на Ubuntu 22.04
С помощью Vuls вы можете сканировать несколько операционных систем различными методами. Вы можете сканировать локальную часть вашего хоста, а также удаленные хосты и серверы через SSH. Он также предоставляет несколько методов сканирования, быстрое сканирование, не требующее прав root, и глубокое сканирование, требующее прав root. Vuls может сканировать несколько целевых серверов одновременно. По завершении сканирования вы можете отправить результат по электронной почте и в Slack.
Установка Vuls через сценарий установщика
Vuls – это сканер безопасности, который может использоваться для сканирования основных дистрибутивов Linux, FreeBSD, облачных и локальных систем, а также поддерживает Docker. Vuls может быть установлен на несколько операционных систем вручную или с помощью скрипта установщика, а также может быть установлен с помощью Docker.
Мы установим Vuls на машину Ubuntu 22.04 с помощью скрипта установщика Vuls.
Введите следующую команду, которая загрузит скрипт установщика Vuls install.sh и запустит его на вашем сервере.
bash <( curl -s https://raw.githubusercontent.com/vulsio/vulsctl/master/install-host/install.sh )
Скрипт установщика Vuls install.sh выполнит следующие:
- Установка основных зависимостей, таких как gcc, git, wget, curl и sqlite3 database tool.
- Установка последней версии Go вручную из бинарного пакета.
- Компиляция и установка Vuls с некоторыми дополнительными инструментами, такими как go-cti, go-kev, go-exploitdb, go-msfdb, go-cve-dictionary, goval-dictionary и gost.
После завершения установки бинарный файл vuls и другие инструменты будут храниться в каталоге /usr/local/bin.
Введите следующую команду для проверки списка двоичных файлов в каталоге /usr/local/bin/.
ls /usr/local/bin/
Вы установили Vuls на вашу машину Ubuntu с помощью сценария установки.
Настройка сканера уязвимостей Vuls
Перед использованием Vuls необходимо определить и создать конфигурационный файл для Vuls и настроить каталог данных, который будет использоваться для хранения.
Мы установим каталог данных Vuls в /usr/share/vuls-data и создадим новый файл конфигурации Vuls config.toml. Вы также определите несколько баз данных CVE и настроите первое сканирование, которое может использоваться для сканирования текущей локальной машины или сервера.
При выполнении команды vuls вы должны находиться в рабочем каталоге /usr/share/vuls-data, где расположен файл конфигурации config.toml.
Введите следующую команду для создания нового каталога данных /usr/share/vuls-data для Vuls. Затем создайте новый файл конфигурации /usr/share/vuls-data/config.toml с помощью команды touch, приведенной ниже.
mkdir -p /usr/share/vuls-data touch /usr/share/vuls-data/config.toml
Откройте файл конфигурации /usr/share/vuls-data/config.toml с помощью следующей команды редактора nano.
nano /usr/share/vuls-data/config.toml
Добавьте следующие строки в файл.
[cveDict] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/cve.sqlite3" [ovalDict] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/oval.sqlite3" [gost] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/gost.sqlite3" [metasploit] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/go-msfdb.sqlite3" [servers] [servers.localhost] host = "localhost" port = "local" scanMode = [ "fast" ] #scanMode = ["fast", "fast-root", "deep", "offline"]
Сохраните и закройте файл.
С помощью этого вы определите 4 базы данных vuls в формате SQLite3, которые будут взяты из каталога данных vuls /usr/share/vuls-data/. В этом примере будут использоваться следующие 4 базы данных:
- CVE (Common Vulnerabilities and Exposures).
- OVAL (Open Vulnerability and Assessment Language).
- Gost – трекер безопасности таких дистрибутивов Linux, как Rehat, Debian, Ubuntu, и ОС Microsoft Windows.
- CVEs из модулей Metasploit-Framework.
Вы также определите первое сканирование под названием localhost, которое позволяет сканировать текущую локальную машину через SSH и scanMode или метод fast, который не требует root-привилегий и никаких зависимостей.
Следующее, переместите ваш рабочий каталог в /usr/share/vuls-data/. Всякий раз, когда вы запускаете команду „vuls“, вы должны находиться в этом каталоге, где расположен файл конфигурации „config.toml“.
cd /usr/share/vuls-data/
Введите команду vuls ниже для проверки конфигурации.
vuls configtest
В случае успеха, вы должны получить аналогичный вывод на экране терминала.
На данном этапе вы создали конфигурацию Vuls, определили базы данных Vuls и выполнили сканирование для localhost. На следующем этапе вы будете создавать базы данных Vuls с помощью нескольких инструментов командной строки, предоставляемых Vuls.
В дополнение, если вы хотите создать полный файл конфигурации Vuls, введите следующую команду для создания примера конфигурации Vuls.
vuls discover 127.0.0.1/32
Это выведет пример конфигурации Vuls на ваш терминал.
Создание баз данных CVE Vuls
В конфигурационном файле Vuls „config.toml“ вы определили 4 базы данных, использующие gost (Security Tracker), OVAL, CVE и Metasploit-Framework CVEs. Перед сканированием любого целевого сервера необходимо убедиться, что базы данных Vuls созданы и доступны в каталоге данных Vuls „/usr/share/vuls-data“.
В этом разделе вы создадите базу данных Vuls с помощью инструментов командной строки Vuls, которые установлены и доступны в каталоге „/usr/local/bin“. Вы создадите базы данных Vuls для Gost (Security Tracker) для системы Ubuntu, базу данных CVE из NVD (NIST National Vulnerability Database), базу данных Ubuntu OVAL и базу данных Metasploit-Framework CVEs.
Каждую базу данных можно создать с помощью определенного инструмента. Для базового использования инструмента командной строки Vuls вы можете вывести справочную страницу инструментов Vuls в следующем формате.
vuls-command help
Для начала введите следующую команду gost для создания и генерации базы данных vuls Security Tracker. В этом примере вы сгенерируете базу данных vuls security tracker для дистрибутива Ubuntu в целевой файл /usr/share/vuls-data/gost.sqlite3.
gost fetch ubuntu --dbpath /usr/share/vuls-data/gost.sqlite3
Введите следующую команду go-cve-dictionary для создания базы данных vuls для CVE. Команда go-cve-dictionary поддерживает два источника провайдеров CVE, NVD от Nist и JVD от Japanese JVN. В этом примере вы сгенерируете базу данных CVE из Nist в /usr/share/vuls-data/cve.sqlite3.
go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3
Ниже показан результат, когда все базы данных CVE завершены.
Следующее, сгенерируйте базу данных vuls для OVAL, используя команду goval-dictionary ниже. OVAL предоставляет несколько словарей для различных дистрибутивов и версий Linux. В этом примере будет сгенерирована база данных OVAL для Ubuntu 22 в файл /usr/share/vuls-data/oval.sqlite3.
goval-dictionary fetch ubuntu 22 --dbpath /usr/share/vuls-data/oval.sqlite3
В заключение введите следующую команду go-msfdb для генерации базы данных CVE из модулей Metasploit-Framework. Файл базы данных vuls для этого будет храниться по адресу /usr/share/vuls-data/go-msfdb.sqlite3.
go-msfdb fetch msfdb --dbpath /usr/share/vuls-data/go-msfdb.sqlite3
Когда базы данных vuls будут сгенерированы, введите следующую команду для проверки списка баз данных vuls.
ls /usr/share/vuls-data/*.sqlite3
Вы должны увидеть базы данных Vuls „gost.sqlite3“, „cve.sqlite3“, „oval.sqlite3“ и „go-msfdb.sqlite3“, созданные и доступные в каталоге „/usr/share/vuls-data/“.
На данном этапе вы установили Vuls, настроили каталог данных Vuls, создали файл конфигурации Vuls и определили несколько баз данных vuls, которые будут использоваться в качестве исходных баз данных для сканирования. Вы также создали первое сканирование под названием „localhost“, которое позволяет сканировать локальную машину, которую вы используете в данный момент.
В следующем шаге Мы начнем сканировать локальную машину, затем также создадим другое сканирование, которое будет сканировать удаленный сервер с помощью Vuls.
Сканирование локальной машины с помощью Vuls
В конфигурационном файле Vuls config.toml вы создали первый скан под названием „localhost“, который позволяет вам сканировать вашу текущую машину с помощью Vuls. В этом разделе вы просканируете текущую машину с помощью Vuls.
Ниже приведен первый созданный вами скан Vuls. Он будет сканировать целевой сервер „localhost“ с типом подключения „local“ и „scanMode“ „fast“, что не требует привилегий root для этого.
[servers.localhost] host = "localhost" port = "local" scanMode = [ "fast" ] #scanMode = ["fast", "fast-root", "deep", "offline"]
Для запуска введите следующую команду, чтобы начать сканирование вашей системы, Эта команда будет сканировать все целевые серверы, которые доступны в конфигурационном файле „config.toml“.
vuls scan
Для сканирования определенного целевого сервера, вы можете использовать имя сканирования в качестве параметра. В этом случае будет сканироваться только целевой сервер с именем „localhost“.
vuls scan localhost
Когда процесс сканирования будет завершен, вы должны получить результат, подобный этому – Вы можете видеть, что Vuls определит текущую операционную систему целевого сервера, затем начнет сканирование системы с помощью доступных баз данных vuls. Также вы можете увидеть сводку сканирования в нижней части вывода.
Следующая команда для просмотра и отображения подробных отчетов о сканировании.
vuls tui
На экране терминала вы должны увидеть 4 колонки: список целевых серверов, список обнаруженных CVE, колонку, которая показывает детали CVE, и колонку, которая показывает список затронутых пакетов. Вы можете нажимать кнопку TAB для перехода от одной колонки к другой.
И наконец, нажмите Ctrl + C для завершения работы vuls viewer.
В дополнение к этому, вы также можете проследить историю сканирования, которую вы сделали, введя следующую команду vuls.
vuls history
Вы узнали, как сканировать целевой сервер с помощью Vuls и просматривать или показывать результат с помощью команды „vuls tui“. Далее вы узнаете, как сканировать удаленную машину или сервер с помощью Vuls.
Сканирование удаленного сервера с помощью Vuls
В этом разделе вы узнаете, как сканировать удаленный сервер с помощью Vuls через SSH. Ниже приведены данные сервера, который будет использоваться в качестве целевой машины:
Hostname IP Address OS ------------------------------------------ debian-server 192.168.5.75 Debian 11
Ниже приведены этапы задач по настройке Vuls и сканированию удаленного сервера через SSH:
- Установите зависимости на целевой сервер в зависимости от режима сканирования.
- Получите дополнительную базу данных CVE для вашей конкретной системы. Убедитесь, что у вас есть соответствующая база данных Vuls в качестве целевого сервера.
- Добавьте и определите целевое сканирование в конфигурационный файл Vuls „config.toml“.
- Начните сканирование целевого сервера.
Теперь давайте начнем.
Сначала войдите на целевой удаленный сервер и установите зависимости пакетов „debian-goodies“ и „reboot-notifier“ с помощью следующей команды „apt install“. Эти пакеты должны быть установлены на целевой сервер Debian.
sudo apt install debian-goodies reboot-notifier
Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.
Теперь перейдите на сервер Vuls и получите новую базу данных CVE для вашей конкретной системы. В этом примере вы перестроите новую базу данных для OVAL и gost, добавив содержимое словаря для дистрибутива Debian.
Введите следующую команду для добавления нового содержимого OVAL для дистрибутива Debian 11 в существующую базу данных „/usr/share/vuls-data/oval.sqlite3“
goval-dictionary fetch debian 11 --dbpath /usr/share/vuls-data/oval.sqlite3
Введите следующую команду, чтобы добавить новый Security Tracker для дистрибутива Debian в файл базы данных vuls gost „/usr/share/vuls-data/gost.sqlite3“.
gost fetch debian --dbpath /usr/share/vuls-data/gost.sqlite3
Следующим шагом откройте файл vuls config „*/usr/share/vuls-data/config.tom*l“ с помощью следующей команды редактора nano.
nano /usr/share/vuls-data/config.toml
Добавьте следующие строки. Этим вы создадите новый скан под названием „debian-server“ с подробным IP-адресом хоста 192.168.5.75, службой SSH, запущенной на порту по умолчанию 22, пользователем по умолчанию, который будет использоваться debian, и использующей аутентификацию на основе ключа через SSH с закрытым ключом /.ssh/id_ed25519. А scanMode, который вы будете использовать – fast-root, что требует привилегий root на целевом сервере, поэтому убедитесь, что ваш пользователь имеет права sudo без пароля.
[servers.debian-server] host = "192.168.5.75" port = "22" user = "debian" keyPath = "~/.ssh/id_ed25519" scanMode = [ "fast-root" ] # "fast", "fast-root" or "deep"
Сохраните и закройте файл, когда закончите.
Теперь введите следующую команду vuls для проверки конфигурационного файла „*config.tom*l“. Это гарантирует, что у вас есть правильная конфигурация Vuls перед сканированием целевых серверов.
vuls configtest
Вы должны увидеть следующее – Vuls будет проверять готовность целевых серверов, проверяя доступные зависимости и необходимые привилегии для выполнения задач сканирования. Также внизу вы должны увидеть список целевых серверов, которые готовы к сканированию, в данном примере localhost и debian-server.
Теперь введите следующую команду, чтобы начать сканирование всех доступных целевых серверов в файле „config.toml“. Для данного примера, следующая команда просканирует оба целевых сервера „localhost“ и „debian-server“.
vuls scan
Или вы можете указать сканирование на определенный целевой сервер, введя команду vuls ниже.
vuls scan debian-server
Ниже показан результат по окончании сканирования. В этом примере вы сканируете целевой сервер „localhost“ с scanMode „fast“ и целевой сервер „debian-server“ с scanMode „fast-root“.
Введите следующую команду, чтобы проверить результат сканирования. В колонке списка хостов вы должны увидеть результат сканирования целевого сервера „debian-server“.
vuls tui
Нажмите Ctrl + C для выхода из окна.
Сейчас, если вы проверите историю сканирования с помощью команды „vuls history“, вы увидите два разных результата сканирования – первый результат сканирования был направлен на „localhost“, а второй – на „localhost“ и „debian-server“.
vuls history
На данном этапе вы узнали основные принципы использования Vuls для сканирования локального сервера и удаленного сервера через SSH. Вы также узнали, как восстановить базу данных Vuls и показать или просмотреть результат сканирования через терминальный пользовательский интерфейс (TUI).
Следующее, вы узнаете, как установить и интегрировать VulsRepo с Vuls.
Интеграция с VulsRepo как веб-панель администрирования для Vuls
VulsRepo – это веб-приложение, которое можно использовать для просмотра или демонстрации результатов сканирования Vuls через веб-браузер. Это позволяет администратору легко отображать результаты сканирования как таблицу Excel в веб-браузере.
Сначала перейдите в каталог данных Vuls „/usr/share/vuls-data/“ и введите следующую команду „vuls report“ для создания отчетов Vuls в json-файл.
cd /usr/share/vuls-data/ vuls report -format-json
Сейчас перейдите в рабочий каталог „/opt“ и загрузите исходный код VulsRepo с помощью команды „git clone“ ниже. Исходный код VulsRepo будет доступен в каталоге „/opt/vulsrepo/“.
cd /opt/ git clone https://github.com/ishiDACo/vulsrepo.git
Измените рабочий каталог на „/opt/vulsrepo/server/“.
cd /opt/vulsrepo/server/
Скопируйте конфигурацию по умолчанию в „vulsrepo-config.toml“ и откройте ее с помощью редактора nano командой ниже.
cp vulsrepo-config.toml.sample vulsrepo-config.toml nano vulsrepo-config.toml
Измените конфигурацию по умолчанию следующими строками. Параметр „resultsPath“ должен быть каталогом данных Vuls „results“ „/usr/share/vuls-data/results“. Для параметров „serverPort“ и „serverIP“ настройте эти параметры в соответствии с данными вашего сервера.
[Server] rootPath = "/opt/vulsrepo" resultsPath = "/usr/share/vuls-data/results" serverPort = "5111" serverIP = "192.168.5.20"
Сохраните и закройте файл после завершения.
Следующим шагом введите следующую команду для выполнения бинарного файла „vulsrepo-server“ и запуска веб-панели VulsRepo.
./vulsrepo-server
Вы должны получить на терминале следующее сообщение – Вы видите, что VulsRepo запущен на IP-адресе сервера „192.168.5.20“ с портом „5111“.
Откройте веб-браузер и зайдите на IP-адрес сервера, за которым следует порт 5111 (т.е.: http://192.168.5.20:5111/). Вы должны увидеть страницу веб-приложения VulsRepo.
В левом боковом меню вы увидите список доступных результатов сканирования в формате json. Выберите нужный результат сканирования, который вы хотите просмотреть, затем нажмите „Submit“.
Ниже приведен пример результатов сканирования целевых серверов „localhost“ и „debian-server“, показанных в веб-браузере с помощью VulsRepo.
Так вы установили и интегрировали веб-приложение VulsRepo с вашим сервером Vuls. Теперь вы можете легко просматривать результаты сканирования через веб-браузер с помощью приложения VulsRepo.
Заключение
В этом руководстве вы установили Vuls – безагентный сканер уязвимостей с открытым исходным кодом на сервер Ubuntu 22.04. Вы также настроили Vuls, создали сканирование, а также настроили базы данных Vuls из нескольких источников, таких как CVEs из NIST, OVAL, Linux Distribution Security Tracker и Metasplot-Framework CVEs.
Кроме того, вы также узнали, как сканировать локальные машины с помощью Vuls и сканировать удаленный сервер через SSH и Vuls. Также вы узнали, как использовать Vuls для просмотра результатов сканирования через терминальный интерфейс.
В завершение вы также установили и интегрировали Vuls с VulsRepo, позволяющим просматривать и показывать результаты сканирования Vuls через веб-браузер. Чтобы узнать больше, посетите официальную документацию Vuls.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен www.howtoforge.com
Комментарии (0)