РАЗБОР AppSec Статья

OpenVAS: Как освоить и эффективно использовать сканер уязвимостей

Paladin
Paladin Exploit Dev · 104 сообщений
Подписаться
19,7 тыс.
[ обложка статьи ]
Режим чтения

Что такое OpenVAS и зачем он нужен​

OpenVAS (Open Vulnerability Assessment System) - бесплатный фреймворк для сканирования узлов сети на наличие уязвимостей, форк сканера Nessus, созданный после закрытия его исходного кода в 2005 году. Разрабатывается и поддерживается компанией Greenbone. Сейчас является частью Greenbone Community Edition.

Ключевые факты, которых нет в треде​

  • Возможности сканера: поддерживает аутентифицированное и неаутентифицированное сканирование, работает с промышленными и интернет-протоколами разного уровня, имеет встроенный язык программирования (NASL) для написания собственных тестов уязвимостей.
  • База NVT: коллекция Network Vulnerability Tests насчитывает более 35 000 проверок (данные Википедии) с ежедневным обновлением. Каждая уязвимость привязана к записям CVE с описанием проблемы и рекомендациями по устранению.
  • Политики сканирования: в веб-интерфейсе Greenbone Security Assistant доступны 4 стандартных профиля - Full and fast, Full and fast ultimate, Full and deep, Full and deep ultimate. Группа deep не учитывает результаты предыдущих скриптов и пересобирает информацию заново, что значительно увеличивает время без ощутимого прироста точности. Для большинства задач оптимален клон Full and fast ultimate с тонкой настройкой.
  • Запуск через Docker (альтернатива установке в систему): образ доступен в реестре Greenbone - ghcr.io/greenbone/openvas-scanner:stable. Greenbone также предоставляет полностью контейнеризированное решение (Greenbone Community Containers).
  • Коммерческие альтернативы: Nessus (Tenable), GFI LANguard, XSpider. OpenVAS - единственный из них полностью свободный (GPL), без ограничений по количеству хостов.
  • Rust-переработка: в репозитории ведётся разработка нового сканера на Rust, который призван заменить связку openvas-scanner + ospd-openvas + notus-scanner.

Полезные материалы Codeby​



prew.jpg


Доброго времени суток, уважаемые форумчане!​

В сегодняшней статье я собирался рассмотреть тему использования сканеров уязвимостей и CMS, которые можно использовать в ходе обучения на курсе WAPT. Планировал уделить внимание обзору сканеров OpenVAS, nuclei, Burp Suite Active Scan, а также сканеров CMS (Content Management System или Система управления контентом сайта), таких как WPScan, Joomscan, CMSmap, с которыми студентам так или иначе придется столкнуться. Но в итоге вспомнил, сколько горя принес ученикам сканер OpenVAS, а точнее его установка и решил акцентировать внимание на нем. Все остальное будет рассмотрено в следующей статье.
​
OpenVAS​

Это, пожалуй, самый неоднозначный в установке инструмент, который стоил многочасовых танцев с бубном и не одного килограмма вырванных волос из различных мест у нескольких поколений студентов курса. Все дело в том, что разбор в методических материалах некоторых тасков опирается на него и всем хочется попробовать этот вариант, но вот дело в том, что не у всех получается его установить и использовать для этого. Мне в ходе обучения на WAPTе тоже не удалось это сделать и, разбив пару компов об стену, я бросил это неблагодарное занятие. Немного позже, когда у меня появилось время, мне все-таки удалось его установить и использовать. Потом, я даже внес ссылку на инструкцию по установке в методичку (Как установить Greenbone Vulnerability Management (GVM) (бывший OpenVAS) в Kali Linux - HackWare.ru), но к сожалению, не всем она помогла, поэтому рассмотрим установку инструмента с использованием этой инструкции по шагам с рассмотрением всех косяков в ходе его установки, чтобы доказать, что она работает. Ставить будем на последний, на настоящий момент, релиз Kali Linux 2023.3. Если у кого-то есть желание установить сканер в Docker, просто перейдите по ссылке Установка OpenVAS в Docker и следуйте указаниям, я же рассмотрю вариант установки сканера непосредственно в систему. Провожу установку в реальном времени. У меня будут косяки и откаты, поэтому прежде чем начать, внимательно прочитайте все, что я пишу, чтобы не делать лишних телодвижений.

1. Для начала обновим систему:
sudo apt update && sudo apt upgrade –y

2. Установим пакеты GVM
sudo apt install gvm​

1701800440608.png

​
3. Сканеру нужен запущенный сервер Redis для временного хранение собранной информации по сканированным хостам. Настройка сервера Redis делается так (эти команды нужно выполнить один раз):
wget https://raw.githubusercontent.com/greenbone/openvas-scanner/master/config/redis-openvas.conf​

1701800536577.png

​
sudo cp redis-openvas.conf /etc/redis/
sudo chown redis:redis /etc/redis/redis-openvas.conf
echo 'db_address = /run/redis-openvas/redis.sock' | sudo tee /etc/openvas/openvas.conf
​
1701800586696.png

​
Запуск сервера Redis (нужно делать после каждой перезагрузки компьютера):
sudo systemctl start redis-server@openvas.service

или добавить его в автозагрузку
sudo systemctl enable redis-server@openvas.service
​
1701800690341.png
​
4. Проверяем, запущен ли Redis:
sudo systemctl status redis-server@openvas.service
​
1701800789202.png

​
5. Запустим openvas, чтобы загрузить плагины в Redis, используя следующую команду:
sudo openvas –u

6. Поскольку openvas будет запускаться из процесса ospd-openvas с помощью sudo, отредактируем файл sudoers, добавив туда следующую строку ПОЛЬЗОВАТЕЛЬ ALL = NOPASSWD: /usr/sbin/openvas, прописав нужного пользователя:
sudo visudo
​
1701800941368.png

​
7. Запустим скрипт развертывания:
sudo gvm-setup
​
1701801004245.png

​
8. И вот первая проблема, с которой я столкнулся. Нам говорят, что 16 версия хочет использовать порт 5432, но он занят. Ну что ж, будем решать. Для начала, проверим версию PostgreSQL:
​
1701801091739.png

​
И заглянем в папку /etc/postgresql/
​
1701801196168.png

​
Ну теперь все понятно, у нас установлено две версии, поэтому идет эта муть с портами. Давайте отредактируем файлы конфигураций. Сначала выберем 15 версию и отредактируем файл:
sudo nano /etc/postgresql/15/main/postgresql.conf
в котором значение порта 5432 заменим на 5433
​
1701801263182.png

​
А потом, аналогичным образом изменим файл для 16 версии, в которой вместо 5433 установим порт 5432:
sudo nano /etc/postgresql/16/main/postgresql.conf
9. Снова запускаем sudo gvm-setup и радуемся начавшейся установке.
​
1701801340365.png

​
Записываем себе в блокнотик креды для аутентификации (логин – admin и пароль – вот эта длинная строка, которую я замазал). Ждем пока установится это творение рук человеческих. Это достаточно долго, можно покурить и выпить кофе. Я, к примеру, успел погулять с собакой, помыть посуду, два раза сходить в магазин за пивом, нажраться, поэтому написание статьи пришлось отложить на пару дней. Когда я вышел из запоя, то увидел, что установка завершилась без ошибок:
​
1701801413250.png

​
10. Странно, на предыдущий релиз Kali Linux, она выкатила кучу ошибок. Проверим, все ли у нас в порядке:
sudo gvm-check-setup
​
1701801561918.png

​
Твою ж за ногу!!! Даже первый шаг не завершен. Я уже был готов раздолбать последний комп, но тогда вы не увидели бы эту статью. Будем исправлять.

11. Попробуем воспользоваться советом из вывода и добавить строку mqtt_server_uri = localhost:1883 в файл /etc/openvas/openvas.conf
​
1701801643133.png

​
Что-то изменилось, но все равно мы получили такое вот го$#о:
​
1701801704078.png

​
12. Изменим права доступа к журналу:
sudo chmod 666 /var/log/gvm/openvas.log
И снова запустим check:
​
1701801769726.png

​
13. Опа! Мы завершили аж 5 шагов, но этого мало. Продолжаем издеваться над Greenbone Vulnerability Management, использовав совет из вывода:
​
1701801860831.png

​
14. Я все ближе и ближе к тому моменту, чтобы выкинуть комп в окно, но упорно продолжаю над собой издеваться. Может gvm не хочет работать с 16 версией postgresql? Попробуем использовать 15 версию. Отредактируем файл /usr/share/gvmd/postgresql-version, написав в нем 15.1 вместо 16.1.
​
1701801932084.png

​
15. Возвращаем порты на место (п. 8). Перегружаем систему. И снова запускаем sudo gvm-check-setup.
​
1701801989612.png

​
Вуа-ля! Установка завершена.

16. Запускаем сканер командой sudo gvm-start и когда сервис запустится, в браузере перейдем по адресу https://127.0.0.1:9392, где введем креды полученные при установке (п. 9).
​
1701802101979.png

​
Все.
​
1701802148018.png

​
Ну что, опробуем его? Стоит ли он потраченных нервов и времени?
Для издевательства возьмем первую задачу из темы «Системные уязвимости». Этот таск и так досконально распедален, так что я не открою никакой великой тайны и надеюсь, что не буду бит своими бывшими коллегами на очередном ивенте.
​
1701802224346.png

​
Видим сайт. Проверим его на уязвимости. Запускаем сканер и заходим во вкладку Configuration-Ports и создаем список портов из нашего диапазона:
​
1701802275730.png

​
Затем заходим во вкладку Configuration-Targets и создаем цель:​

1701802355757.png

После этого во вкладке Scans-Tasks создаем задачу и запускаем ее:​

1701802410874.png

В результатах видим критическую уязвимость:​

1701802449352.png

Нажимаем на нее и наблюдаем рекомендации по ее эксплуатации:​

1701802490652.png

Нам предлагают отправить POST-запрос со следующим содержимым, чтобы выполнилась команда id. Копируем его в буфер обмена, открываем Burp Suite, перехватываем запрос от обновления страницы, загоняем его в Repiter, и вставляем содержимое буфера.​

1701802557065.png

Видим результат и радуемся, что не зря потратили время на установку этого инструмента.

Хочу отметить, что OpenVAS - достаточно мощный сканер, имеет тысячи различных настроек, база уязвимостей регулярно пополняется. Инструмент требует тщательного изучения. Существенным минусом является отсутствие какого-либо серьезного мануала на русском языке. Но ведь это же не проблема?​

На сегодня все. Считаю, что сканер мы побороли. Пишите в комментариях проблемы, которые вы не смогли побороть при установке OpenVAS, будем разбираться вместе.
Всем спасибо за внимание. До новых встреч!
Полезно · 23

Комментарии

14
Есть ли смысл его использовать если есть acunetix и nuclei?
 
Есть ли смысл его использовать если есть acunetix и nuclei?
Может ты и прав, но нужно было про него написать. Уж больно много вопросов по его установке задают. Если в нем разобраться, то он покруче nuclei будет
 
  • Нравится
Реакции: madargus_
1
Может ты и прав, но нужно было про него написать. Уж больно много вопросов по его установке задают. Если в нем разобраться, то он покруче nuclei будет
Вот как раз и интересно в какой ситуации, а то не совсем ясно.
 
Классная подача, полезная статья, спасибо Paladin!
 
  • Нравится
Реакции: datchr и Kevgen
2
Отличная статья амиго...смотрю тут народ про окуня и нуклей интересуется...Ну практика такова, что разные сканеры дают разные выхдные данные..зависит от огромного количества параметров и факторов...Поэтому и сканируют различными сканерами, чтобы получить максимально полную картину...Поэтому бывает ценен и nikto и arachni ну и конечно openvas)))
 
Статья ценна именно тем, что дефолтный openvas в кали или parrot работает не всегда корректно...и вот тут и начинаются танцы с бубном...такшто статья как никогда актуальна)))
 
Благодарю за статью, добавлю в закладки
 
  • Нравится
Реакции: madargus_
1
  • Нравится
Реакции: Rocky-Balboa
1
Автору статьи привет и спасибо огромное за подробный мануал!) может кто помочь, Бьюсь уже об стену, не могу нигде нагуглить, уже у ИИ спрашивал - толку ноль : у меня при проверке установки OpenVAS на step 7 выдает ошибку сервиса gsad- якобы не запущен, конечно же пытался запустить руками но там выдает такую ошибку (скрин прилагаю) в логе ошибке тоже не могу понять что ему надо (((( подскажите юродивому) ОС Кали, как вы видите последние апдейты стоят, при этом сам хост на 127.0.0.1:9392 почему стартует - также хочу заметить - что при попытке отсканить шлюз (роутер 192.168.1.1) сразу крашится тест.
 

Вложения

  • IMG_9143.jpeg
    IMG_9143.jpeg
    88,4 КБ · Просмотры: 1 191
  • IMG_9144.jpeg
    IMG_9144.jpeg
    183 КБ · Просмотры: 1 243
Я хочу автору пожелать долгих лет жизни. Эта установка забрала бы пол жизни моей, есди бы не статья автора.
 
  • Нравится
Реакции: Сергей Попов
1
Отличный пост. Спасибо автору! Долго не доходили до него руки, а тут такой мануал подробный.
 
Благодарю автора за потраченое время. Всё установилось без ошибок
только в браузере всё равно не открывается сайт(
1741262882949.webp