Metasploit Penetration Testing Cookbook – часть 1

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

lolik228

Участник

lolik228

Участник
2 Фев 2017
448
101
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
b4c4053f7ca400c086030fd4e088010a.jpg

Введение


На сегодняшний день тестирование на проникновение (penetration testing) является одним из основных сценариев анализа защищенности. Пен-тестирование включает в себя полный анализ системы путем осуществления реальных тестов безопасности. Это помогает выявлять потенциально слабые места в основных компонентах системы: аппаратном или программном обеспечении.
Причина, которая делает тестирование на проникновение важным аспектом безопасности является то, что она помогает в определении угроз и слабых мест с точки зрения хакера. Лазейки могут быть использованы в режиме реального времени, чтобы выяснить воздействие уязвимости, а затем подходящим средством могут быть изучены для того, чтобы защитить систему от внешних атак и снижения факторов риска. Самым большим фактором, который определяет возможность проникновения — знание целевой системы. Есть несколько способов тестирования на проникновение:
  1. метод черного ящика — осуществляется при отсутствии предварительной информации о цели. Для осуществления атаки, пен-тестеру приходится по крупицам собирать информацию о целевой системе
  2. метод белого ящика – осуществляется, когда пен-тестер имеет достаточно полную информацию о цели
Промышленные специалисты определили некоторые ключевые шаги, которые необходимы практически во всех формах тестирования на проникновение, к ним относятся:
  • определение цели — сбор основной информации без физического соединения
  • выявление уязвимости – реализация различных методов обнаружения, таких как сканирование, удаленный вход (remote login) и сетевые сервисы, чтобы выяснить, какие службы и программное обеспечение, работают на целевой системе.
  • эксплуатация — использование уязвимостей (публичных или приватных) для атаки на службы, программы и т.п.
  • уровень доступа — атакующий может получить доступ на целевой системе после успешной атаки
  • отчет — подготовка отчета об уязвимости(ях) и меры противодействия
Этих шагов может показаться мало, но тестирование на проникновение систем высокого уровня (high-end system) с большим количеством служб может занять дни если не месяцы. Причина, по которой тестирование на проникновение выполняется так долго состоит в том, что применяется техника «проб и ошибок» (хотя к скрипт-кидингу это не относится в большей мере… там взял и применил). Уязвимости во многом зависят от настройки системы, поэтому мы не беремся утверждать, что рабочий эксплоит будет работать.
Глава 1. Metasploit – короткие советы

  • Настройка Metasploit в Ubuntu/Debian
  • Metasploit + BackTrack
  • Создание пен-тест лаборатории
  • Настройка Metasploit в BackTrack + SSH
  • Создание базы данных в Metasploit
  • Использование базы данных для хранения результатов тестирования
  • Анализ результатов из БД
В настоящее время
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
наиболее “встречающееся” (buzzing) слово в области информационной безопасности. Причина, по которой Metasploit настолько популярен – широкий спектр задач, которые он может выполнять. Metasploit доступен для всех популярных операционных систем. В этой (статье) книге мы будем в основном работать в
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
, который поставляется с уже предустановленными программами.
Введение

Для начала кратко ознакомимся с терминами:
  • Metasploit Framework – бесплатный (открытый исходный код) пен-тест framework созданный H. D. Moore в 2003 году, который в последствии был куплен
    Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
    . Написан на языке Ruby. Metasploit обладает крупнейшими базами данных эксплоитов и принимает около миллиона загрузок каждый год. Он также является одним из самых сложных проектов на сегодняшний, написанных на Ruby.
  • Уязвимость (Vulnerability) – слабое место, которое позволяет злоумышленнику/пен-тестеру взламывать/скомпрометировать целевую систему. Уязвимость может существовать в операционных системах, программах, службах и т.д.
  • Эксплоит (Exploit) – код с помощью которого злоумышленник/пен-тестер может взломать систему, программу и т.п. Каждая уязвимость имеет свой собственный соответствующий эксплойт. Metasploit v4 имеет более чем 700 эксплоитов.
  • Payload – код, который выполняется после эксплоита. В основном используется для настройки связи между жертвой и атакующим. Metasploit v4 имеет более 250 payloads.
  • Модуль (Module) – это небольшие строительные блоки. Каждый модуль выполняет определенную задачу и система создается/строится путем объединения этих блоков в единое целое. Самым большим преимуществом такой архитектуры является то, что она легка для интеграции новых эксплоитов.
Рассмотрим архитектуру Metasploit’a поближе:
2103f875c1a0d9eddfcec4c1bd92704e.png
Metasploit использует различные библиотеки, которые играют ключевую роль в функционировании системы. Эти библиотеки представляют собой набор заранее определенных задач, операций и функций, которые могут быть использованы различными модулями системы. Самая фундаментальная часть фреймфорка является Ruby Extension (Rex). Некоторые компоненты Rex включают подсистему сокетов (wrapper socket subsystem), реализацию клиентских и серверных протоколов, регистрацию подсистемы (logging subsystem), exploitation utility classes, а также ряд других полезных классов.
Далее есть MSF Core библиотека, которая расширяет Rex. Core несет ответственность за выполнение всех необходимых интерфейсов (required interfaces), которые позволяют взаимодействовать с эксплоитами, модулями, сессиями и плагинами.
В Metasploit есть четыре так называемых пользовательских интерфейса: msfconsole, msfcli, msfgui и msfweb. Настоятельно рекомендуется изучить все 4 интерфейса. Однако в книге (статье) с основном будет использоваться msfconsole. Потому что msfconsole хорошо поддерживается во фреймворке и использует все функциональные возможности.
С теорией пока что покончено, переходим к практике.
Настройка Metasploit в Ubuntu/Debian

Скачайте Metasploit c офф сайта (
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
).
У вас будет возможность выбрать либо минимальные настройки или полные. Выберите загрузку в соответствии с вашими потребностями. Полная установка будет включать в себя все зависимости, настройку БД, окружающей среды и т.д. В то время как минимальные настройки будут содержать только зависимости, без настройки БД.
Полная версия:
Код:
$ chmod +x framework-4.*-linux-full.run
$ sudo ./framework-4.*-linux-full.run
Минимальная версия:
Код:
$ chmod +x framework-4.*-linux-mini.run
$ sudo ./framework-4.*-linux-mini.run
Установка может закончиться с ошибкой по некоторым причинам. Некоторые версии Ubuntu могут содержать сломанные библиотеки языка Ruby. В этом случае можно установить зависимости отдельно.
Установка зависимостей Ruby:
Код:
$ sudo apt-get install ruby libopenssl-ruby libyaml-ruby libdl-ruby libiconv-ruby libreadline-ruby irb ri rubygems
Установка subversion:
Код:
$ sudo apt-get install subversion
Собственные расширения:
Код:
$ sudo apt-get install build-essential ruby-dev libpcap-dev
После установок выше, скачать архив Metasploit:
Код:
$ tar xf framework-4.X.tar.gz
$ sudo mkdir -p /opt/metasploit4
$ sudo cp -a msf4/ /opt/metasploit3/msf4
$ sudo chown root:root -R /opt/metasploit4/msf4
$ sudo ln -sf /opt/metasploit3/msf3/msf* /usr/local/bin/
Если все закончилось нормально, Metasploit будет работать.

Metasploit + BackTrack

BackTrack является самым популярным дистрибутивом среди пен-тестеров и хакеров по двум причинам:
  1. содержит все популярные инструменты тестирования на проникновение => уменьшает время на установку
  2. это Linux дистрибутив =D
Установить BackTrack можно либо на сменный носитель (hdd, flash) или на виртуальную машину. Логон = root, пароль =toor.
После успешного входа можно остаться в CLI (Command Line Interface) или перейти в графический интерфейс, командаstartx.
Запустить Metasploit Framework можно из Applications: Applications | BackTrack | Exploitation Tools | Network Exploitation Tools | Metasploit Framework, как показано на рисунке:
3b5b11317379cfba778a79b75b80f134.png
Чтобы запустить Metasploit из консоли, выполните след. команды:
Код:
root@bt:~# cd /pentest/exploits/framework3
root@bt:/pentest/exploits/framework3 ~# ./msfconsole
Создание пен-тест лаборатории

Идеальной настройкой считается создание физической среды, т.е. компьютеры должны физически существовать. Но если лишних машин нет, тогда нужно воспользоваться виртуализацией.
Мы будем использовать Virtual Box и создадим две виртуальные машины BackTrack 5 и Windows XP SP2. Хост система будет Windows 7.
Прежде чем приступить к работе, нужно настроить VB так, чтобы две виртуальные машины могли общаться между собой. Выбираем одну из виртуальных машин и переходим в Свойства (Settings). Далее выбираем Сетевые настройки (Network settings). Сетевой адаптер будет предустановлен в NAT, чтобы пользоваться Интернетом. В адаптере 2 (Adapter 2) выбрать Host only Adapter:
3b7c73d811684c30963d1c64e2efe3e9.png
Повторите этот действие на всех виртуальных машинах. Host-only adapter нужен для того, чтобы машины могли общаться друг с другом. Далее нужно проверить все ли пингуется (это переводить не стал, потому что и так все понятно, а кому не понятно… значит в комментарии).
Настройка Metasploit в BackTrack + SSH

Сейчас сосредоточимся на производительности. Может оказаться так, что ресурсов системы не хватит, тогда нужно исправить положение.
Нам понадобится SSH-клиент. Будем использовать
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
.
Загружаем BackTrack в CLI и выполняем след. команды:
Код:
root@bt:~# /etc/init.d/start ssh
root@bt:~# start ssh
Теперь смотрим ip-адрес:
Код:
root@bt:~# ifconfig
Запускаем PuTTY на главном хосте (Windows 7). Вводим ip-адрес и порт 22:
b6e456820c9df3bce093dfeb7205cdd6.png
Если все прошло нормально, тогда должно появиться следующее:
8519afab110683c2deb0cef7e1b9610b.png
Таким образом потребление памяти снизиться примерно в два раза.
Создание базы данных в Metasploit

Важной особенностью в Metasploit является наличие БД, в которой можно хранить результаты тестирования. Любой пентест состоит из большого количества информации и может работать в течение нескольких дней, поэтому часто необходимо хранить промежуточные результаты в БД.
В качестве базы данных по умолчанию в Metasploit используется PostgreSQL. В BackTrack есть возможность использовать MySQL вместо PostgreSQL, но об этом чуть позже. Давайте для начала проверим настройки по умолчанию в PostgreSQL БД. Открываем файл database.yml расположенный в /opt/framework3/config. Чтобы это сделать, выполните след. команду:
Код:
root@bt:~# cd /opt/framework3/config
root@bt:/opt/framework3/config# cat database.yml
production: adapter: postgresql database: msf3 username: msf3 password: 8b826ac0 host: 127.0.0.1 port: 7175 pool: 75 timeout: 5
Обратите внимание на значения по умолчанию: database, username, password, host, port, pool и timeout. Запишите эти значения, так как они будут необходимы в дальнейшем. Вы также можете изменить их в соответствии с вашим выбором.
Теперь задача состоит в том, чтобы подключиться к БД. Для этого запускаем msfconsole и проверяем доступные драйверы баз данных:
Код:
msf > db_driver
[*]Active Driver: postgresql
[*]Available: postgresql, mysql
Убеждаемся, что PostgreSQL используется по умолчанию. Если хочется использовать MySQL, тогда нужно выполнить след. команду:
Код:
msf > db_driver mysql
[*]Active Driver: Mysql
Это приведет к изменению активного драйвера для MySQL.
Важно!
Обратите особое внимание на то, что Rapid7 прекратила поддержку MySQL в последней версии Metasploit (v4.6.0-dev). Поэтому команда db_driver уже не нужна. Теперь будет использоваться только PostgreSQL. И следовательно такие команды как: db_driver, db_connect не нужны. Но если пользуйтесь старой версией, тогда читайте дальше.
Для подключения к БД используется команда db_connect. Давайте посмотрим на ее синтаксис:
db_connect username:password@hostIP:port number/database_name
Чтобы подключиться к БД будем использовать значения из файла database.yml (см. выше):
Код:
msf > db_connect msf3:[email protected]:7175/msf3
При успешном выполнении команды, база данных PostgreSQL будет полностью настроена.
Теперь давайте рассмотрим несколько важных моментов связанных с БД.
Получение ошибки при подключении базе данных
Есть некоторая вероятность, что при подключении к БД выведется ошибка. Поэтому нужно помнить о двух моментах:
  • проверьте команды db_driver и db_connect и убедитесь, что вы используете их правильно
  • перезапустите БД /etc/init.d, а затем попробуйте подключиться снова
Если ошибка по-прежнему выдается, тогда можно попробовать переустановить базу данных с помощью следующих команд:
Код:
msf > gem install postgres
msf > apt-get install libpq-dev
Удаление базы данных
В любой момент времени вы можете остановить/удалить созданную базу данных, и начать все заново. Следующая команда используется для удаления БД:
Код:
msf > db_destroy msf3:[email protected]:7175/msf3
Database "msf3" dropped.
msf >
Использование БД для хранения результатов тестирования

Теперь давайте посмотрим, как использовать БД для хранения результатов тестирования. Начнем с небольшого примера. Команда db_nmap сохраняет результаты сканирования портов непосредственно в БД, а также всю необходимую информацию. Запускаем простое nmap сканирование, чтобы проверить, как это работает:
Код:
msf > db_nmap 192.168.56.102
[*] Nmap: Starting Nmap 5.51SVN ( http://nmap.org ) at 2011-10-04 20:03 IST
[*] Nmap: Nmap scan report for 192.168.56.102
[*] Nmap: Host is up (0.0012s latency)
[*] Nmap: Not shown: 997 closed ports
[*] Nmap: PORT STATE SERVICE
[*] Nmap: 135/tcp open msrpc
[*] Nmap: 139/tcp open netbios-ssn
[*] Nmap: 445/tcp open microsoft-ds
[*] Nmap: MAC Address: 08:00:27:34:A8:87 (Cadmus Computer Systems)
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 1.94 seconds
Код:
msf > db_nmap 192.168.56.102
[*] Nmap: Starting Nmap 5.51SVN ( http://nmap.org ) at 2011-10-04 20:03 IST
[*] Nmap: Nmap scan report for 192.168.56.102
[*] Nmap: Host is up (0.0012s latency)
[*] Nmap: Not shown: 997 closed ports
[*] Nmap: PORT STATE SERVICE
[*] Nmap: 135/tcp open msrpc
[*] Nmap: 139/tcp open netbios-ssn
[*] Nmap: 445/tcp open microsoft-ds
[*] Nmap: MAC Address: 08:00:27:34:A8:87 (Cadmus Computer Systems)
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 1.94 seconds
Как видим, nmap выдала результаты сканирования. Nmap будет автоматически заполнять БД msf3.
Можно также воспользоваться опциями -oX в nmap, чтобы сохранить результат сканирования с формате XML. Это полезно делать, если в дальнейшем вы будите использовать сторонние программы, такие как
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
для работы с результатами:
Код:
msf > nmap 192.168.56.102 -A -oX report
[*] exec: nmap 192.168.56.102 -A -oX report
Starting Nmap 5.51SVN ( http://nmap.org ) at 2011-10-05 11:57 IST
Nmap scan report for 192.168.56.102
Host is up (0.0032s latency)
Not shown: 997 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 08:00:27:34:A8:87 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 0.76 seconds
report – это файл, в котором будет храниться результат сканирования.
Команда db_nmap создает SQL запросы с различными столбцами таблицы, имеющие отношение к результатам проверки. После завершения сканирования, db_nmap сохраняет значения в базе данных. Сохранение результатов в виде таблиц упрощает обмен результатами локально, так и со сторонними инструментами.
После того, как сканирование завершено, наступает время анализа. Анализ данных даст нам более точное понимание целевой системы. Результаты в базе данных могут храниться либо в течении длительного времени, либо в течении короткого срока. Что захотите сделать, то и будет.
Анализ результатов сканирования из БД

Рассмотрим наиболее важные команды, чтобы иметь четкое представление о сохраненных результатах:
msf > hosts — команда покажет все хосты, которые имеются в БД:
bd44dc897d001611fbadfa6c065a9390.png
Однако, вывод команды hosts можно сделать более «чистым», так как отображается много столбцов в таблице. Таким образом, мы можем двигаться дальше, т.е. добавить фильтры и просматривать только те столбцы, которые нас интересуют:
Код:
msf > hosts -c address,os_name
 Hosts
 =====
 address          os_name
 -------          ------
 192.168.56.1
 192.168.56.101
 192.168.56.102   Microsoft Windows
 192.168.56.103   Linux
msf > services – еще одна интересная команда, которая может дать полезную информацию о службах запущенных на целевой системе:
Код:
msf > services
Services
========
host             port  proto   name           state  info
----             ----  -----   ----           -----  ----
192.168.56.101   111   tcp     rpcbind        open
192.168.56.102   135   tcp     msrpc          open
192.168.56.102   139   tcp     netbios-ssn    open
192.168.56.102   445   tcp     microsoft-ds   open
192.168.56.102   135   tcp     msrpc          open   Microsoft Windows RPC
msf > vulns – эта команда выдает список уязвимостей присутствующих в БД.
msf > db_autopwn – мощная команда, которая используется для автоматизации процесса эксплуатации целевых машин. Эта команда требует большего понимания процесса эксплуатации, поэтому мы будем анализировать/изучать эту команду позже.
Процесс анализа достаточно прост и может легко фильтроваться, чтобы получить желаемый результат. Мы уже поняли, как читать/просматривать базу данных и как использовать ее эффективно. Последние две команды vulns и db_autopwn являются post-exploitation. Их мы будем рассматривать в след. статьях/главах.
Ну вот и все. Это были введение и первая часть.
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя