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