Необходимые знания: опыт работы с консолью Linux-систем (в частности, дистрибутивом Kali Linux) и консолью Метасплойта.
В первой части мы познакомились с модулями для обнаружения уязвимостей при аутентификации (SMB Login Check, VNC Authentication None Detection) и плагином для поиска уязвимостей в веб-приложениях (WMAP). Во второй части займемся установкой сканера уязвимостей Nessus на 32-битную версию системы Kali Linux для последующего его взаимодействия с Метасплойтом (установка на 64-битную версию происходит аналогичным образом).
Установка Nessus Home
Nessus — один из самых популярных сканеров уязвимостей, разработанный компанией Tenable Network Security. До 2005 года это было свободное программное обеспечение с открытым исходным кодом, а в 2008 году вышла платная версия продукта. Также существует и бесплатная «домашняя» версия, ограничивается использованием в домашней сети. Её мы и будем использовать в наших целях.
Итак, приступим к установке.
Для начала скачаем с сайта производителя последнюю версию программы для системы Debian (на момент написания статьи актуальным был Nessus v5.2.5).
Запустим установку программы
dpkg -i Nessus-5.2.5-debian6_i386.deb
после чего активируем службу Nessus
/etc/init.d/nessusd start
Управление сканером осуществляется через веб-интерфейс. Чтобы туда попасть, введите в адресной строке браузера https://127.0.0.1:8834. Здесь потребуется создать аккаунт администратора, указав логин и пароль.
На следующем шаге необходимо ввести код активации, который придет на вашу электронную почту, указанную на сайте производителя при регистрации.
Завершающей стадией установки является загрузка плагинов.
Для сохранения результатов сканирования в базе данных Метасплойта, необходимо к ней подключиться
db_connect <user:pass>@<host:port>/
Вся необходимая для подключения информация содержится в файле properties.ini
cat /opt/metasploit/properties.ini
, где
user = rapid7_database_user
pass = rapid7_database_password
host = 127.0.0.1 (в случае, если серверная часть Nessus установлена в вашей системе)
port = postgres_port
database = rapid7_database_name
Теперь нам нужно подгрузить плагин nessus
load nessus
и подключиться к серверу Nessus
nessus_connect username:password@hostname:port
, где
username – логин администратора Nessus
password - пароль администратора Nessus
К сожалению, управление через консоль Метасплойта не позволяет воспользоваться всеми возможностями Nessus. Так, например, для создания задачи сканирования необходимо наличие политики сканирования (параметров для проведения определенного типа сканирования), которую можно создать только через веб-интерфейс Нессуса. В связи с этим будет рассмотрена как работа с консолью, так и работа с веб-интерфейсом.
Создадим две часто используемые политики: Web Application Tests Policy – политика сканирования веб-приложений на наличие уязвимостей, Basic Network Scan Policy – сканирование внешних или внутренних хостов на наличие уязвимостей.
Web Application Tests Policy
127.0.0.1:8834 > Policy > New Policy > Web Application Tests Policy
На первом шаге зададим политике имя и доступность просмотра результатов
На втором шаге укажем тип сканирования (поверхностный или глубокий) и стартовую страницу.
На третьем шаге нужно будет выбрать метод аутентификации
Теперь создадим задачу для сканирования цели
127.0.0.1:8834 > Scans > New Scan
Здесь нам потребуется присвоить имя нашей задаче, выбрать тип политики, задать цели для сканирования и указать периодичность запуска (по умолчанию сканирование начнется сразу после создания задачи).
По завершению сканирования щелкните дважды на задачу и экспортируйте результаты в формате Nessus
Завершающим этапом является импорт сохраненных результатов сканирования в базу данных Metasploit
db_import ‘/root/Desktop/nessus_report_PentestIT_Web.nessus’
Basic Network Scan Policy
В этом примере разберем процесс управления через msfconsole
Как уже отмечалось, политику можно создать только через веб-интерфейс
127.0.0.1:8834 > Policy > New Policy > Basic Network Scan Policy
Что делать на первом шаге, вам уже известно
На втором шаге, если сканируете внутреннюю сеть организации, указываете “Internal”, внешнюю – ‘External’
На третьем шаге я оставил всё без изменений
С созданием политики закончили. Теперь вернемся в msfconsole, и с помощью команды nessus_policy_list узнаем id нашей политики на сервере Nessus, а затем создадим задачу для сканирования
nessus_scan_new 2 PentestIT 192.168.42.129
Интересует статус сканирования? Пожалуйста
nessus_scan_status
Для того чтобы просмотреть отчет о выявленных уязвимостях или импортировать его с сервера Nessus, нам понадобится id
nessus_report_list
По итогам проверки будет составлен список выявленных уязвимостей, ознакомиться с которым можно по команде nessus_report_vulns
И, наконец, производим сам импорт
nessus_report_get 5fa88341-2e45-db07-3166-c935625126a26fe5c28b4ae7d9cb
Как вы видите, в данном случае работать с msfconsole не совсем удобно из-за ряда ограничений, поэтому для работы с Nessus рекомендую использовать веб-интерфейс с последующим импортом результатов в Metasploit.
Продолжение следует...
Ипользуемая литература:
Metasploit Unleashed. Nessus Via Msfconsole
Документация по работе с Nessus
Metasploit Penetration Testing Cookbook