#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.
1 2 3 |
$ wget http://download2.rapid7.com/download/NeXpose-v4/NeXposeSetup-Linux64.bin $ chmod +x ./NeXposeSetup-Linux64.bin $ sudo ./NeXposeSetup-Linux64.bin |
Когда программа установки запускается в графической среде рабочего стола, такой как KDE или GNOME, пользователю предоставляется графическая программа установки, с помощью которой можно выполнить начальную настройку, как показано на рисунке ниже. Если Вы устанавливаете Nexpose через текстовую среду, например SSH, установщик должен выполнить настройку, задавая вопросы типа «да/нет» и другие запросы информации.
После установки Nexpose запустите ifconfig в терминале, чтобы увидеть IP-адрес, открытый в веб-браузере. Затем введите https://ip:3780/ в браузер, заменив ip на IP-адрес машины, на которой работает Nexpose. Вы должны увидеть страницу входа в Nexpose, как показано на рисунке ниже.
Используйте учетные данные, запрошенные во время установки. Вы можете увидеть ошибку сертификата SSL, прежде чем откроется страница входа в систему. Поскольку Nexpose по умолчанию использует самозаверяющий сертификат SSL, Ваш браузер, вероятно, не доверяет ему и может жаловаться. Это нормально и ожидаемо.
Активация и тестирование
При первом входе в систему Вам будет предложено ввести ключ активации, который Вы отправили по электронной почте от Rapid7, после регистрации в Community Edition, как показано на рисунке ниже.
Теперь проверьте свою установку, чтобы убедиться, что Вы правильно активировали программное обеспечение и можете пройти аутентификацию с помощью Nexpose API, отправив HTTP-запрос. Вы можете использовать утилиту Curl, чтобы отправить запрос аутентификации к API и отобразить ответ, как показано в листинге ниже.
1 2 3 |
$ curl -d '<LoginRequest user-id="nxadmin" password="nxpassword"/>' -X POST -k \ -H "Content-Type: text/xml" https://192.168.1.197:3780/api/1.1/xml <LoginResponse success="1" session-id="D45FFD388D8520F5FE18CACAA66BE527C1AF5888"/> $ |
Если Вы видите ответ, содержащий успех = «1» и идентификатор сеанса, Nexpose активирован правильно, и API работает должным образом с Вашими учетными данными.
Немного Nexpose жаргона
Прежде чем мы обсудим управление сканированием уязвимостей и составление отчетов о нем в Nexpose, нам необходимо определить пару терминов. Когда Вы запускаете сканирование уязвимостей в Nexpose, Вы сканируете сайт, который представляет собой набор связанных хостов или ресурсов.
Nexpose имеет два типа сайтов: статические сайты и динамические сайты. Во время нашей автоматизации мы сосредоточимся на первом. Статический сайт содержит список хостов, которые вы можете изменить только путем перенастройки сайта. Вот почему его называют статическим — сайт не будет меняться со временем. Nexpose также поддерживает создание сайтов на основе фильтров активов, поэтому ресурсы на динамическом сайте могут меняться от недели к неделе в зависимости от количества их уязвимостей или невозможности аутентификации. Динамические сайты более сложны, но они гораздо мощнее статических, и с ними можно ознакомиться в качестве дополнительного домашнего задания.
Ресурсы, из которых состоят сайты, — это просто подключенные к вашей сети устройства, с которыми Nexpose может взаимодействовать. Этими активами могут быть стоечные серверы центра обработки данных без операционной системы, хосты VMware ESXi или экземпляры Amazon AWS. Если вы можете пропинговать его по IP-адресу, он может стать ценным ресурсом на вашем сайте Nexpose. Во многих случаях бывает полезно разделить хосты в вашей физической сети на логические сайты в Nexpose, чтобы вы могли более детально сканировать и управлять уязвимостями. Сложная корпоративная сеть может иметь сайт, специально предназначенный для хостов ESXi, сайт для сегмента сети руководителей уровня C и сайт для активов колл-центра службы поддержки клиентов.
На этом все. Всем хорошего дня!