Gray Hat C#, Nexpose, Программирование

#33 Gray Hat C#. Руководство для хакера по созданию и автоматизации инструментов безопасности. Автоматизация Nexpose. Установка Nexpose.

Здравствуйте, дорогие друзья.

Nexpose — это сканер уязвимостей, похожий на Nessus, но ориентированный на корпоративные приложения, и управлением уровнями уязвимостей. Это означает, что он помогает системным администраторам в поиске исправлений, и в смягчении последствий расстановки приоритетов в отношении потенциальных уязвимостей с течением времени.


В этом разделе я покажу Вам, как использовать C# для автоматизации сканера уязвимостей Nexpose Rapid7, чтобы создать сайт Nexpose, просканировать этот сайт, создать отчет в формате PDF об уязвимостях сайта, а затем удалить сайт. Отчеты Nexpose невероятно гибки и мощны, позволяя автоматически создавать отчеты для самых разных аудиторий, от руководителей до технических администраторов.
Как и сканер Nessus, обсуждавшийся в предыдущем разделе, Nexpose использует протокол HTTP для предоставления своего API, но для форматирования данных использует XML, вместо JSON. Как и в предыдущем разделе, мы напишем два отдельных класса: один для связи с Nexpose API (класс сеанса), а другой для управления API (класс менеджера). После того, как мы напишем классы, Вы научитесь запускать сканирование и просматривать результаты.


Установка Nexpose

Nexpose доступен в различных формах и редакциях от Rapid7. Мы будем использовать двоичный установщик Nexpose от Rapid7 на новой машине с Ubuntu 14.04 LTS, используя команды и URL-адрес, показанные в листинге ниже. Этот URL-адрес обновляется последней версией установщика при каждом выпуске новых версий. Если URL-адрес по какой-либо причине не работает, Вы также можете найти ссылку для скачивания после регистрации для получения ключа активации сообщества (необходимого для запуска Nexpose). После загрузки установщика нам необходимо установить права доступа к исполняемому файлу, чтобы впоследствии мы могли запустить установщик от имени пользователя root.

Когда программа установки запускается в графической среде рабочего стола, такой как KDE или GNOME, пользователю предоставляется графическая программа установки, с помощью которой можно выполнить начальную настройку, как показано на рисунке ниже. Если Вы устанавливаете Nexpose через текстовую среду, например SSH, установщик должен выполнить настройку, задавая вопросы типа «да/нет» и другие запросы информации.

The graphical Nexpose installer

После установки Nexpose запустите ifconfig в терминале, чтобы увидеть IP-адрес, открытый в веб-браузере. Затем введите https://ip:3780/ в браузер, заменив ip на IP-адрес машины, на которой работает Nexpose. Вы должны увидеть страницу входа в Nexpose, как показано на рисунке ниже.

The Nexpose login page

Используйте учетные данные, запрошенные во время установки. Вы можете увидеть ошибку сертификата SSL, прежде чем откроется страница входа в систему. Поскольку Nexpose по умолчанию использует самозаверяющий сертификат SSL, Ваш браузер, вероятно, не доверяет ему и может жаловаться. Это нормально и ожидаемо.

Активация и тестирование


При первом входе в систему Вам будет предложено ввести ключ активации, который Вы отправили по электронной почте от Rapid7, после регистрации в Community Edition, как показано на рисунке ниже.

The activation modal pop-up in Nexpose

Теперь проверьте свою установку, чтобы убедиться, что Вы правильно активировали программное обеспечение и можете пройти аутентификацию с помощью Nexpose API, отправив HTTP-запрос. Вы можете использовать утилиту Curl, чтобы отправить запрос аутентификации к API и отобразить ответ, как показано в листинге ниже.

Если Вы видите ответ, содержащий успех = «1» и идентификатор сеанса, Nexpose активирован правильно, и API работает должным образом с Вашими учетными данными.


Немного Nexpose жаргона

Прежде чем мы обсудим управление сканированием уязвимостей и составление отчетов о нем в Nexpose, нам необходимо определить пару терминов. Когда Вы запускаете сканирование уязвимостей в Nexpose, Вы сканируете сайт, который представляет собой набор связанных хостов или ресурсов.
Nexpose имеет два типа сайтов: статические сайты и динамические сайты. Во время нашей автоматизации мы сосредоточимся на первом. Статический сайт содержит список хостов, которые вы можете изменить только путем перенастройки сайта. Вот почему его называют статическим — сайт не будет меняться со временем. Nexpose также поддерживает создание сайтов на основе фильтров активов, поэтому ресурсы на динамическом сайте могут меняться от недели к неделе в зависимости от количества их уязвимостей или невозможности аутентификации. Динамические сайты более сложны, но они гораздо мощнее статических, и с ними можно ознакомиться в качестве дополнительного домашнего задания.


Ресурсы, из которых состоят сайты, — это просто подключенные к вашей сети устройства, с которыми Nexpose может взаимодействовать. Этими активами могут быть стоечные серверы центра обработки данных без операционной системы, хосты VMware ESXi или экземпляры Amazon AWS. Если вы можете пропинговать его по IP-адресу, он может стать ценным ресурсом на вашем сайте Nexpose. Во многих случаях бывает полезно разделить хосты в вашей физической сети на логические сайты в Nexpose, чтобы вы могли более детально сканировать и управлять уязвимостями. Сложная корпоративная сеть может иметь сайт, специально предназначенный для хостов ESXi, сайт для сегмента сети руководителей уровня C и сайт для активов колл-центра службы поддержки клиентов.

На этом все. Всем хорошего дня!

Цикл статей по Gray Hat C#. Руководство для хакера по созданию и автоматизации инструментов безопасности.