Библиотека сайта rus-linux.net
Использование Metasploit + Nessus в Ubuntu
Оригинал: Using Metasploit with Nessus Bridge on UbuntuАвтор: David J. Dodd
Дата публикации: июль 2011 г.
Перевод: В. Семененко
Дата перевода: август 2011 г.
Введение
Задаетесь вопросом, как использовать 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 <user account name> -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):
Теперь, когда у нас есть postgres в качестве базы данных для Metasploit, давайте запустим Nessus. Открываем второй терминал и убеждаемся в том, что Nessus запущен. Если нет, то загружаем демон nessus
:
msf > load nessus
Посмотрим, какие команды Nessus Bridge для Metasploit 1.1 мы можем использовать. Для этого набираем команду nessus_help
(см. скриншот Figure 3).
msf > nessus_help
Все команды разбиты на различные секции, озаглавленные 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) <scan name> (generic) <target> (ip address):
msf > nessus_scan_new 1 winXP_home 192.168.1.124
Для того, чтобы удостовериться - Nessus запустился и производит сканирование, выполняем команду (как на скриншоте Figure 4):
msf > nessus_scan_status
После завершения сканирования смотрим результат командой:
msf > nessus_report_list
Давайте посмотрим список хостов из результата сканирования:
msf > nessus_report_hosts UID
Более подробная информация может быть получена командой:
msf > nessus_report_host_ports <ip address> UID
Вывод этих команд можно посмотреть на скриншоте Figure 5:
Для просмотра списка хостов в файле базы данных используем команду db_host
. Если вам необходимо удалить какой-либо хост из базы файла данных db_hosts
, выполняем команду db_del_host
(как на скришоте 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 <ip address> -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).
Я не могу выполнить команду db_nmap -v -sV 192.168.15.0/24 --packet-trace
, запустив тем самым сканирование и произведя вывод программы nmap. Так что я вынужден просматривать результаты следующими командами (см. скриншот 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
Посмотрите на разницу результатов, полученную командами db_hosts
и db_services -c port,state
. Сравните различия на скриншотах Figure 10 и Figure 8.
Заключение
Данная статья является неплохим пособием в случае проверки целостности и отказоустойчивости сети, если вы работаете специалистом по компьютерной безопасности и имеете разрешение на выполнение подобных задач. Статья была написана именно с этой целью. Если вы выполняете подобные операции над сетями, доступ к которым вам запрещен, то ваши действия могут попасть под действие закона и соответствующих статей если не во всех, то в очень многих странах. Если вы хотите получить больше информации по интересующим вас вопросам компьютерной безопасности, можете посетить мой сайт по адресу http://pbnetworks.net, где имеются не только текстовые материалы, но и обучающее видео.
Ссылки по данной тематике в Интернете
Материал по установке и настройке базы данных Postgres:
http://dev.metasploit.com/redmine/projects/framework/wiki/Postgres_setup
Ссылка на обучающие видеоматериалы:
http://pbnetworks.net/?cmd=bbs