OpenVAS — сканер уязвимостей систем. Имеет свою базу данных CVE, используя которую проверяет системы на их наличие.
Как обычно — ссылка на документацию на Arch Wiki. Установка достаточно тривиальна, как и первый запуск проверок с дефолтными настройками.
Пост чисто обзорный, без описания детальных настроек — может потом доберусь до них, когда время будет, и если буду его внедрять на проекте для запуска тестирования по расписанию с уведомлениями куда-то на почту.
Содержание
Установка OpenVAS
Тут установка выполняется на рабочий ноутбук с Arch Linux. На Debian/Ubuntu установка немного отличается.
Для работы OpenVAS потребуется локальный Redis — устанавливаем.
[simterm]
$ sudo pacman -S redis
[/simterm]
Редактируем /etc/redis.conf, добавляем параметры:
... unixsocket /var/lib/redis/redis.sock unixsocketperm 700 port 0 timeout 0 databases 128
Перезапускаем его:
[simterm]
$ systemctl restart redis
[/simterm]
Устанавливаем сам OpenVAS:
[simterm]
$ sudo pacman -S openvas
[/simterm]
Создаём /etc/openvas/openvassd.conf, описываем подключение к Redis:
kb_location = /var/lib/redis/redis.sock
Создаём SSL сертификаты для сервера и клиентов:
[simterm]
$ sudo openvas-manage-certs -a
[/simterm]
Обновляем плагины и базу данных уязвимостей — может занять минут 10-15:
[simterm]
$ sudo greenbone-nvt-sync $ sudo greenbone-scapdata-sync $ sudo greenbone-certdata-sync
[/simterm]
В 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 скрипты:
[simterm]
$ 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);
}
...
[/simterm]
Запускаем сканер:
[simterm]
$ systemctl start openvas-scanner
[/simterm]
Обновляем базу NVT (Network Vulnerability Test):
[simterm]
$ sudo openvasmd --rebuild --progress
[/simterm]
Создаём admin пользователя:
[simterm]
$ sudo openvasmd --create-user=admin --role=Admin User created with password 'e50e68b1-0584-431a-8495-9edcc62882e4'.
[/simterm]
Записываем пароль.
Запускаем сервис:
[simterm]
$ sudo openvasmd -p 9390 -a 127.0.0.1
[/simterm]
Логи, в случае проблем с запуском — /var/log/openvas/.
Проверяем статус:
[simterm]
$ 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)
[/simterm]
Запускаем WebUI:
[simterm]
$ sudo gsad -f --listen=127.0.0.1 --mlisten=127.0.0.1 --mport=9390
[/simterm]
Переходим на 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 для работы сканера:
[simterm]
$ sudo pacman -S nmap
[/simterm]
Запускаем скан на RTFM, дефолтный занял минут 20.
Скан сразу виден на графиках нагрузки на сервер:
И его результаты:
Вот отличный пример — при миграции блога добавляk страничку с phpinfo(), и забыл удалить.
Каждая ссылка в колонке слева ведёт на детальное описание уязвимости:
Ссылки по теме
OpenVAS: Checking for Holes Before the Hackers Do It for You









