OpenVAS: установка, запуск

By | 11/24/2018
 

OpenVAS – сканер уязвимостей систем. Имеет свою базу данных CVE, используя которую проверяет системы на их наличие.

Как обычно – ссылка на документацию на Arch Wiki. Установка достаточно тривиальна, как и первый запуск проверок с дефолтными настройками.

Пост чисто обзорный, без описания детальных настроек – может потом доберусь до них, когда время будет, и если буду его внедрять на проекте для запуска тестирования по расписанию с уведомлениями куда-то на почту.

Установка OpenVAS

Тут установка выполняется на рабочий ноутбук с Arch Linux. На Debian/Ubuntu установка немного отличается.

Для работы OpenVAS потребуется локальный Redis – устанавливаем.

sudo pacman -S redis

Редактируем /etc/redis.conf, добавляем параметры:

...
unixsocket /var/lib/redis/redis.sock
unixsocketperm 700
port 0
timeout 0
databases 128

Перезапускаем его:

systemctl restart redis

Устанавливаем сам OpenVAS:

sudo pacman -S openvas

Создаём /etc/openvas/openvassd.conf, описываем подключение к Redis:

kb_location = /var/lib/redis/redis.sock

Создаём SSL сертификаты для сервера и клиентов:

sudo openvas-manage-certs -a

Обновляем плагины и базу данных уязвимостей – может занять минут 10-15:

sudo greenbone-nvt-sync
sudo greenbone-scapdata-sync
sudo greenbone-certdata-sync

В Debian они называются openvas-nvt-sync, openvas-scapdata-sync и openvas-certdata-sync., а сертификаты создаются с помощью openvas-mkcert и openvas-mkcert-client.

greenbone-nvt-sync обновляет скрипты плагинов сканирования в /var/lib/openvas/plugins/, которые представляют собой Nmap Scripting Engine скрипты:

cat /var/lib/openvas/plugins/xmpp_detect.nasl | grep -v \#
if(description)
{
script_oid("1.3.6.1.4.1.25623.1.0.100489");
script_version("$Revision: 10929 $");
script_tag(name:"last_modification", value:"$Date: 2018-08-11 13:39:44 +0200 (Sat, 11 Aug 2018) $");
script_tag(name:"creation_date", value:"2010-02-08 23:29:56 +0100 (Mon, 08 Feb 2010)");
script_tag(name:"cvss_base", value:"0.0");
script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:N/I:N/A:N");
script_name("XMPP Detection");
script_category(ACT_GATHER_INFO);
script_family("Service detection");
script_copyright("This script is Copyright (C) 2010 Greenbone Networks GmbH");
script_dependencies("find_service.nasl");
script_require_ports("Services/xmpp-client", 5222, "Services/xmpp-server", 5269);
script_xref(name:"URL", value:"http://en.wikipedia.org/wiki/Jabber");
script_tag(name:"summary", value:"This host is running the Extensible Messaging and Presence Protocol(XMPP)
(formerly named Jabber). XMPP is an open, XML-based protocol originally aimed at
near-real-time, extensible instant messaging (IM) and presence information
(e.g., buddy lists), but now expanded into the broader realm of
message-oriented middleware.");
script_tag(name:"qod_type", value:"remote_banner");
exit(0);
}
...

Запускаем сканер:

systemctl start openvas-scanner

Обновляем базу NVT (Network Vulnerability Test):

sudo openvasmd --rebuild --progress

Создаём admin пользователя:

sudo openvasmd --create-user=admin --role=Admin
User created with password 'e50e68b1-0584-431a-8495-9edcc62882e4'.

Записываем пароль.

Запускаем сервис:

sudo openvasmd -p 9390 -a 127.0.0.1

Логи, в случае проблем с запуском – /var/log/openvas/.

Проверяем статус:

systemctl status openvas-scanner
● openvas-scanner.service - Open Vulnerability Assessment System Scanner Daemon
Loaded: loaded (/usr/lib/systemd/system/openvas-scanner.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-11-22 17:22:21 EET; 4s ago
Docs: http://www.openvas.org/
Main PID: 4054 (openvassd)
Tasks: 3 (limit: 4915)
Memory: 73.3M
CGroup: /system.slice/openvas-scanner.service
├─4054 /usr/bin/openvassd -f
├─4062 openvassd (Loading Handler)
└─4063 openvassd: Reloaded 9550 of 47937 NVTs (19% / ETA: 00:20)

Запускаем WebUI:

sudo gsad -f --listen=127.0.0.1 --mlisten=127.0.0.1 --mport=9390

Переходим на https://localhost, подвтерждаем сертификат (т.к. генерировали с дефолтными настройками), попадаем в интерфейс:

Запуск тестов

Логинимся:

Запускаем Wizard, для начала на localhost:

Логи:

==> /var/log/openvas/openvassd.messages <==
[Thu Nov 22 15:23:45 2018][5345] Starts a new scan. Target(s) : 127.0.0.1, with max_hosts = 30 and max_checks = 10
[Thu Nov 22 15:23:45 2018][5345] exclude_hosts: Skipped 0 host(s).
[Thu Nov 22 15:23:45 2018][5598] Testing localhost (127.0.0.1) [5598]
[Thu Nov 22 15:24:11 2018][5598] Finished testing localhost (127.0.0.1). Time : 26.14 secs
[Thu Nov 22 15:24:11 2018][5345] Test complete
[Thu Nov 22 15:24:11 2018][5345] Total time to scan all hosts : 30 seconds

Результаты:

Окей, вроде всё работает.

Устанавливаем nmap для работы сканера:

sudo pacman -S nmap

Запускаем скан на RTFM, дефолтный занял минут 20.

Скан сразу виден на графиках нагрузки на сервер:

И его результаты:

Вот отличный пример – при миграции блога добавляk страничку с phpinfo(), и забыл удалить.

Каждая ссылка в колонке слева ведёт на детальное описание уязвимости:

Ссылки по теме

Setup and Start OpenVAS

OpenVAS Tutorial And Tips

OpenVAS: Checking for Holes Before the Hackers Do It for You