вторник, 19 августа 2014 г.

Использование Metasploit + Nessus в Ubuntu



Nessus_Introduction

Введение

Задаетесь вопросом, как использовать autopwn в Metasploit в операционной системе Ubuntu Linux? Хотите запустить и использовать Nessus в составе Metasploit? Какую базу данных я использую - sqlite3 или postgres? В этой статье я собираюсь объяснить причины и преимущества всех этих вещей. Общие представления, которые будут здесь описаны, помогут вам выполнять различные задачи, используя nessus-сервер и сканер nmap из командной строки msf.
Как хорошо известно, Nmap является сканером для обнаружения уязвимостей. Программа абсолютно бесплатна для некоммерческого использования - к примеру, в качестве применения в домашних условиях. Но есть версия Nessus для коммерческих целей. В этой статье я буду описывать бесплатную версию этой программы, совместно с популярным Metasploit Framework. Для начала нам нужно получить последнюю версию программы Nessus под операционную систему Ubuntu - nessus-4.4.1-ubuntu1010_i386.deb и затем зарегистрировать ее на домашнем сайте программы. Регистрация нужна для получения кода активации, которая позволит в дальнейшем производить обновления базы данных эксплоитов.
Для установки и настройки Nessus в Ubuntu необходимо руководствоваться инструкцией, представленной здесь. После инсталляции активируем Nessus и переходим по ссылке http://www.nessus.org/products/nessus/nessus-plugins/obtain-an-activation-code, для того чтобы скачать сам плагин активации.
Запускаем плагин активации из командной строки:
$ sudo /opt/nessus/bin/nessus-fetch -register 'registration code from nessus'
Здесь registration code from nessus - это регистрационный ключ, полученный в электронном письме при активации продукта на сайте производителей.
Для успешной работы в программе Nessus необходимо создать и добавить нового пользователя в группу nessus с помощью скрипта:
$ sudo /opt/nessus/sbin/nessus-adduser
Затем создаем и устанавливаем сертификат в помощью еще одного скрипта:
$ sudo /opt/nessus/sbin/nessus-mkcert
Теперь нам осталось запустить демон программы Nessus:
$ sudo /etc/init.d/nessusd start
Открываем любой web-браузер, вводим в адресную строку https://localhost:8834 и заходим в саму программу Nessus. Необходимо настроить политики сканирования в программе. В данной статье я создам несколько политик на основе различных операционных систем, которые мы будем сканировать. Если вы собираетесь сканировать машины, на которых установлено Windows-окружение, то плагин для операционных систем Linux или BSD в вашем Nessus будет явно бесполезным. Вам также стоит проверить, включен ли у вас режим безопасной проверки, выбран ли порт для сканирования, прочтите рекомендации, выберите плагины и соответствующие настройки. После окончания всех этих процедур вы получите свою собственную политику (набор правил), которую можете обозначить под номером 1. Однако, если у вас будут иметься несколько политик, вам следует давать в качестве имен последних не числа, а имена (к примеру - для анализа Windows-окружения - "windows"). Это желательно делать во избежание путаницы. Теперь можете выйти из программы Nessus и закрыть web-браузер.
Следующим шагом открываем эмулятор терминала и в командной строке ищем, куда у нас был установлен metasploit. Нам, для начала, нужно его обновить:

Прежде чем мы перейдем дальше - к командной строке msfconsole фреймворка Metasploit, слегка отвлечемся от темы в сторону базы данных. В последнее время для работы с последними я использую sqlite3. Мною даже был создано небольшое руководство по работе с sqlite3, расположенное на моем сайте. Стоит заметить, что иногда sqlite3 работает прекрасно. Но иногда программа выдает ошибку: "Note that sqlite is not supported due to numerous issues. It may work, but don't count on it." Для работы с Metasploit рекомендуется использовать Postgres. Поэтому ставим базу данных postgres и все сопутствующие ей библиотеки.

Базы данных установлены. Для правильной работы фреймворка Metasploit необходимо запускать установленную базу данных до того, как будет запущен Metasploit:
$ sudo /etc/init.d/postgresql-8.4 start
Переходим под учетную запись пользователя базы данных Postgres:

Создаем новую учетную запись пользователя базы данных:
$ createuser  -P
Задаем пароль для созданного пользователя:

Теперь создаем саму базу данных:
$ createdb -owner=(user account name) msf_database
И только сейчас мы можем запустить фреймворк Metasploit:
: /opt/framework-3.6.0/msf3$ sudo ./msfconsole
Этой командой мы вошли в окружение Metasploit. Вводим следующие команды:

Выполненные выше шаги имели одну цель - теперь, используя sqlite3, создание и подключение базы данных выполняется очень легко. Запускаем Metasploit и набираем следующие команды:

Проверяем, подключилась ли база данных:
msf> db_hosts
Если все прошло нормально и никаких ошибок не появилось, можно использовать команду db_nmap. Но иногда случаются ошибки и происходит падение программы. Поэтому использование postgres является более обоснованным, чем sqlite3. Ниже я опишу, почему это еще и более полезно. Наконец, теперь можно активировать базу данных при старте, задав команду:

Теперь каждый раз, как вы запускаете Metasploit, созданная вами база данных автоматически также запускается и вы подключаетесь к ней. На всякий случай можно удостовериться в том, что Postgres запустились. Обычно я делаю это так - вручную запускаю postgres перед тем, как запустить Metasploit (см. скриншот Figure1):
Figure 1
Figure 1
Теперь, когда у нас есть postgres в качестве базы данных для Metasploit, давайте запустим Nessus. Открываем второй терминал и убеждаемся в том, что Nessus запущен. Если нет, то загружаем демон nessus:
msf > load nessus
Figure 2
Figure 2
Посмотрим, какие команды Nessus Bridge для Metasploit 1.1 мы можем использовать. Для этого набираем команду nessus_help (см. скриншот Figure 3).
msf > nessus_help
Figure 3
Figure 3
Все команды разбиты на различные секции, озаглавленные Generic, Reports, Scan, Plugin, User и Policy. Перед запуском процесса сканирования нам нужно подключить Nessus-server с помощью команды nessus_connect.
msf > nessus_connect (nessus username):(password)@localhost:8834 ok
Эта команда подключает и авторизовывает вас. В этом окружении вы можете производить сканирование, просмотр результатов, загружать результаты сканирования в базу данных и использовать надстройку autopwn. Вы также можете просматривать результаты и находить уязвимости в тех системах, которые вы сканируете. Можно запустить эксплоит и получить доступ к оболочке meterpreter. В зависимости от окружения можно анализировать вывод программы Nessus и находить соответствующие сплоиты для применения. Вместо того, чтобы производить шум, запуская autopwn.
Давайте запустим сканирование, выполнив команду nessus_scan по шаблону nessus_scan_new <policy id> (политика уже должна была быть настроена в установках Nessus Policy) (generic) (ip address):
msf > nessus_scan_new 1 winXP_home 192.168.1.124
Для того, чтобы удостовериться - Nessus запустился и производит сканирование, выполняем команду (как на скриншоте Figure 4):
msf > nessus_scan_status
Figure 4
Figure 4
После завершения сканирования смотрим результат командой:
msf > nessus_report_list
Давайте посмотрим список хостов из результата сканирования:
msf > nessus_report_hosts UID
Более подробная информация может быть получена командой:
msf > nessus_report_host_ports  UID
Вывод этих команд можно посмотреть на скриншоте Figure 5:
Figure 5
Figure 5
Для просмотра списка хостов в файле базы данных используем команду db_host. Если вам необходимо удалить какой-либо хост из базы файла данных db_hosts, выполняем команду db_del_host (как на скришоте Figure 6):
Figure 6
Figure 6
Загрузка результатов сканирования в базу данных выполняется командой:
msf > nessus+report_get UID
Теперь, когда основная работа выполнена - сканирование произведено и список хостов загружен в файл db_hosts базы данных, можно запустить утилиту autopwn или найти эксплоит, соответствующий для работы с выбранной машиной-жертвой. Более подробно я освещу этот вопрос несколько позже.
Теперь давайте рассмотрим вопрос использования программы nmap совместно с фреймворком Metasploit.
Использование nmap в составе Metasploit выполняется командой db_nmap. Запускается процесс сканирования целевых машин и результат сохраняется в базу данных. В дистрибутиве BackTrack я применяю несколько другие команды, например, такую:
db_nmap -sS -sV -T 3 -Po -O  -D RND --packet-trace
Здесь я применил опции: -sS TCP SYN для сканирования в режиме stealth; -sV - показ версии сканирования; -T 3 - нормальное сканирование; -O - обнаружение операционных систем; -D RND - использование приманки и генерирование случайного не зарезервированного IP-адреса; и, наконец, --packet-trace - отслеживание отправленных и полученных пакетов и данных. Я люблю применять опцию packet-trace при сканировании больших сетей, потому что, если что-то пошло не так, то вы всегда можете увидеть, что случилось. Эта опция просто великолепна, но к сожалению, я могу использовать ее только в окружении msfconsole. Находясь в операционной системе Unbuntu, я не могу ее использовать при подключении к базе данных postgres в качестве пользователя последней. Почему? Потому что я получаю ошибку, говорящую о том, что только суперпользователь root имеет возможность использовать эту опцию утилиты nmap (см. скриншот Figure 7).
Figure 7
Figure 7
Я не могу выполнить команду db_nmap -v -sV 192.168.15.0/24 --packet-trace, запустив тем самым сканирование и произведя вывод программы nmap. Так что я вынужден просматривать результаты следующими командами (см. скриншот Figure 8):
Figure 8
Figure 8
То есть, если я хочу произвести комплексное сканирование с помощью программы nmap, я должен выйти из окружения msfconsole, выйти из базы данных postgres, остановить последнюю, зайти под учетную запись, используя команду sudo и воспользоваться базой данных sqlite3. Теперь нужно запустить команду:
msf > db_nmap -sS -sV -T 4 -P0 -O 192.168.15.0/24 -D RND --packet-trace
Figure 9
Figure 9
Посмотрите на разницу результатов, полученную командами db_hosts и db_services -c port,state. Сравните различия на скриншотах Figure 10 и Figure 8.
Figure 10
Figure 10

Заключение

Данная статья является неплохим пособием в случае проверки целостности и отказоустойчивости сети, если вы работаете специалистом по компьютерной безопасности и имеете разрешение на выполнение подобных задач. Статья была написана именно с этой целью

Комментариев нет:

Отправить комментарий