«Metasploit Penetration Testing Cookbook – часть 2»
Раздел: Социальные сети
Всем привет! Предлагаю вам перевод второй части книги "Metasploit Penetration Testing Cookbook". Перевод первой части можно прочитать тут, а перевод третьей части тут. Глава 2 — Сбор информации и сканированиеВ этой главе мы рассмотрим:
ВведениеСбор информации является основным шагом на пути тестирования на проникновение. Этот шаг осуществляется с целью собрать, как можно больше информации о целевой системе. Чем больше мы знаем о цели, тем больше у нас шансов взломать ее. Во время сбора информации главной целью является сбор данных о целевой системе: ip-адрес, предоставляемые услуги, открытые порты и т.п… Есть три основных способа сбора информации:
В этой главе мы будем анализировать различные пассивные и активные приемы сбора информации. Пассивный сбор информации 1.0 — традиционный способWhois, dig и nslookup — эти программы представляют из себя три самых основных и простых шага для получения первичной информации о цели. Начнем с whois. Давайте быстро проанализируем www.packtpub.com. Вывод может быть большой, но мы будем акцентировать внимание только на самом главном:
Простой поиск по whois дал нам некоторые сведения о целевой системе. Информация включает в себя DNS-сервера, дату создания, дату истечения срока и т.п. Поскольку информация была получена не от целевой системы, а из сторонних источников, следовательно эта техника называется «пассивным сбором информации». Другой способ «пассивно» получить информацию — обращение к DNS-записям. Наиболее распространенным приемом является использование команды dig, которая поставляется по умолчанию в UNIX. Посмотрим, как dig справится со своей задачей:
Запрос к DNS-записям выявил более подробную информацию. Из вывода трудно определить первичный DNS, или в некоторых случаях основной почтовый сервер или хостинг. Поэтому в игру вступает nslookup. Nslookup такой же гибкий, как и dig, но обеспечивает простой стандартный метод выявления первичных хостов, таких как почтовый сервер и DNS-сервер:
Nslookup выдала более подробную информацию о цели, такую как IP-адрес, IP сервера и т.п. Пассивные техники могут выявить некоторые интересные сведения о цели, которые облегчат тестирование на проникновение. Dig можно использовать для поиска SPF (Sender Policy Framework) записей. SPF-записи, это такие записи, которые определяют политику отправки почты в домене, то есть серверы, которые отвечают за отправку почты от его (домена) имени. SPF-записи публикуются в текстовом формате. Они несут ответственность за то, чтобы зарегистрированные пользователи домена, не были атакованы фишинговыми письмами. Давайте узнаем еще больше о пассивном сборе информации. Использование сторонних веб-сайтов Мы использовали встроенные команды для поиска информации о цели. Однако, существуют сайты, выполняющие аналогичные операции. Они специально предназначены для этих целей:
Пассивный сбор информации 2.0 — следующий уровеньОписанные выше приемы знает каждый специалист по безопасности, но есть некоторые методы, которыми специалисты пренебрегают, из-за их непопулярности. Они также могут дать нам хорошие результаты, как и предыдущие приемы. Методы, которые будут обсуждаться дальше включают в себя более глубокий анализ цели. Эти методы не требуют использование Metasploit, но так как сбор информации важное звено в пен-тестировании, мы также обсудим и это. Рассмотрим три техники:
Zone Transfer специальный метод используемый DNS-сервером для обмена записями (authoritative records) домена между несколькими серверами. Метод отвечает за передачу массовых списков доменной информации между первичными и вторичными серверами. Неправильно настроенный DNS-сервер может отвечать на запросы клиента и передавать информацию о запросах домена. Рассмотрим следующий пример в котором запрос dig ns1.example.com example.com axfr возвратит список IP-адресов с именами хостов соответственно: Этот запрос показал нам десять имен хостов, из которых восемь являются уникальными для example.com. Можем видеть, что имена хостов достаточно хорошо описаны, чтобы дать представление о запущенных сервисах. Для более детального ознакомления с командой dig и о трансфер зоне «Zone Transfer» (AXFR) читайте в статье BeLove — AXFR — возвращение. Анализ SMTP заголовка может стать для нас еще одним источником информации. Он может дать нам информацию о mail-сервере, его IP-адресе, версии и т.п. Единственный недостаток этого метода заключается в том, что нам нужно знать e-mail цели. Следующий скриншот показывает часть заголовка отправленного письма от цели: Тщательный анализ заголовка показывает IP-адрес mail-сервера - 83.166.169.248. Также видно, что mail-сервер использует ESMTP, а клиент использует IMAP сервис. Это дополнительная информация поможет нам в дальнейшем. Последний метод - Google dorks. Этот метод может работать лишь в некоторых случаях, но его обязательно нужно использовать, так как никогда не знаешь, какая секретная информация найдется. Google сканеры находят/индексируют файлы, документы предназначенные для внутреннего пользования. Например, выполните следующие поисковые запросы в Google:
Кроме того, мы можем использовать другие запросы для поиска результатов в Google. Шутки с dorks johnny.ihackstuff.com является наиболее полным руководством по Google dorks. Там вы можете найти наиболее полный список dorks, которые могут выявить множество скрытой информации о вашей цели. Сканирование портов — NmapСканирование портов является активным методом сбора информации. Также включает в себя более глубокий поиск информации о цели. Nmap является одним из самых мощных и априорных инструментов у специалистов по безопасности. Запустить nmap из Metasploit очень легко. Для этого откройте msfconsole и введите nmap, чтобы получить список опций поддерживающихся в nmap:
Здесь мы сфокусируемся на четырех типах сканирования, таких как TCP connect scan, SYN stealth scan, UDP scan и ACK scan. Различные типы сканирования могут быть объединены в один. TCP connect [-sT] — наиболее простой и общий тип сканирования в nmap.
Как видим, мы передали -sT параметр, который выполняет TCP connect сканирование. Параметр -p задает диапазон портов, которые мы хотим просканировать. SYN scan [-sS] — считается тихим/невидимым типом сканирования, так как он не устанавливает полное подключение/связь между целью и сканером. Таким образом его еще называют «полуоткрытым» сканированием.
Параметр -sS указывает nmap использовать SYN scan. Оба вывода TCP connect и SYN scan схожи в большинстве случаев. Разница состоит в том, что SYN scan трудно обнаружить межсетевым экранам и Intrusion Detection Systems (IDS). Однако, современным фаерволам не представляет труда его обнаружить. UDP scan [-sU] — техника сканирования, которая позволяет обнаружить открытые UDP порты у цели. 0-byte UDP-пакеты отправляются на целевую машину и если в ответ отправляются ICMP сообщения о недоступности порта, значит порт закрыт. В противном случае — порт открыт. UDP scan может быть использован след. образом: msf >nmap -sU -p9001 192.168.56.102 Эта команда будет проверять открыт ли порт 9001 на 192.168.56.102 или нет. Кроме того, мы можем выполнить UDP scan на весь диапазон портов, изменив оператор -р. ACK scan [-sA] — специальный тип сканирования, который показывает, какие порты фильтруются фаерволом, а какие нет. ACK scan отправляет TCP ACK фреймы на удаленный порт. Если ответа не последовало, значит порт сканируется фаерволом. Однако, если цель возвратила RST пакет (connection reset — сброс соединения), то порт не фильтруется:
Вывод показывает, что все порты на целевой системе фильтруются, кроме 9001 порта. Как правило, пен-тестеры тратят не достаточно много времени на сканирование, но хорошая проверка может дать достаточно много хороших результатов. Так как информация собранная здесь, ляжет в основу тестирования на проникновение, следовательно нам нужно хорошо знать типы сканирования. Узнать больше о типах сканирования можно из русского перевода руководства Nmap: "Различные приемы сканирования портов". Определение ОС и ее версииЕсть некоторые дополнительные возможности, предоставляемые Nmap, кроме сканирования портов. Они могут помочь нам получить больше информации о цели. Одним из наиболее широко используемых параметров является определение операционной системы (operating system identification) [-O]:
Другая, широко используемая опция в Nmap это определение версии [-sV] различных открытых портов на целевой системе. Опция может быть использована с любым типом сканирования.
Видим, что добавилась дополнительная колонка Version, в которой выводятся различные версии служб, работающих на целевой машине. Повышение анонимностиОчень важно оставаться анонимным во время сканирования. Потому, что Firewall или IDS смогут выявить ваш IP-адрес, если не применять меры предосторожности. Одной из таких функций в Nmap является Decoy (приманка) [-D]. Опция Decoy добавляет дополнительную информацию в лог-файлы, создавая таким образом впечатление, что целевую систему атакуют несколько объектов одновременно. Итак, если добавить в Decoy два IP-адреса, то в логах будет показано, что атака осуществляется с трех разных IP. Одним из них будет ваш, а два других будут поддельными, например:
Однако, добавлять слишком много значений в опцию -D не нужно, так как это может повлиять на результаты сканирования. Поэтому следует использовать ограниченное число адресов. Изучение вспомогательных модулей сканированияMetasploit Framework содержит более 350 различных вспомогательных модулей, каждый из которых выполняет определенные задачи. Здесь мы будем обсуждать сканер вспомогательных модулей (scanner auxiliary modules). Чтобы использовать вспомогательные модули, мы должны сделать три простых шага:
Посмотрим доступные модули в Metasploit Framework, выполнив след. команду:
Чтобы начать использовать модули, нам нужно запустить msfconsole. Для начала найдем модули сканирования портов, доступных во фреймворке:
Список содержит некоторые основные питы сканирования, которые мы уже обсуждали (см. выше). Давайте начнем с простого SYN scan. Чтобы использовать модуль, начнем с трех шагов. Шаг 1Активируем модуль:
Шаг 2Теперь посмотрим, какие опции доступны. Для этого выполним команду show options:
В первом столбце перечислены все необходимые параметры. Столбец "Required" сообщает, какие параметры необходимо задать. RHOSTS содержит диапазон IP-адресов, которые хотим проверить. Давайте зададим в RHOSTS IP-адрес нашей цели:
Теперь модуль готов для SYN сканирования. Мы также может задать диапазон портов, которые хотим сканировать:
Шаг 3И наконец последний шаг, это запуск:
Управление потокамиНастройка и управление количества потоков во вспомогательных модулях может значительно повысить эффективность.
Vulnerability сканирование с NessusНа сейчас, мы изучили базовые способы сканирования портов. Сканирование портов распространяется и на ряд других инструментов, которые существенно повысят сбор информации о цели. Nessus является одним из наиболее широко используемых сканеров уязвимостей. Он сканирует цель и создает детальный отчет о ней. Nessus является очень полезным инструментом во время тестирования на проникновение. Вы можете использовать GUI версию Nessus, или использовать его из консоли Metasploit. В этой книге (статье) мы в первую очередь сосредоточимся на работе с Nessus в msfconsole. Сначала подключим БД к Metasploit для сохранения промежуточных результатов. О процессе запуска и подключения базы данных в Metasploit было рассказано в предыдущей главе (статье). После подключения БД, следующей задачей является загрузка плагина Nessus. Важно! Обратите особое внимание на то, что Rapid7 прекратила поддержку MySQL в последней версии Metasploit (v4.6.0-dev). Поэтому команда db_driver уже не нужна. Теперь будет использоваться только PostgreSQL. И следовательно такие команды как: db_driver, db_connect не нужны. Но если пользуйтесь старой версией, тогда читайте дальше. Для подключения БД и загрузки Nessus, выполним след. команды:
После успешного подключения, мы должны связать его с сервером:
Дополнительный параметр ok, сообщает Nessus о том, что сервер запущен в доверенной сети. Мы можем проверить список доступных пользователей в Nessus, введя команду nessus_user_list. Добавить нового пользователя можно с помощью команды nessus_user_add. А с помощью команды nessus_policy_list, можно посмотреть список имеющихся политик на сервере. Процесс сканирования в Nessus достаточно просто. Давайте произведем быстрое сканирование цели, используя след. команду:
После того, как сканирование завершено, следующей задачей будет вывод списка, который сгенерировал Nessus:
Колонка "ID" отображает отчет, который был сгенерирован в результате нашей проверки. Произведем импорт отчета:
После того, как отчет был импортирован, мы можем проанализировать его, чтобы найти уязвимые места на целевой системе. Для этого выполним след. команду:
Сканирование с помощью NeXposeВ предыдущем рецепте, мы обсуждали Nessus в качестве сканера уязвимостей. В этом рецепте мы рассмотрим еще один сканер уязвимостей - NeXpose. NeXpose является популярным инструментом Rapid7, который выполняет сканирование уязвимостей и импортирует результаты в БД Metasploit'a. Использование NeXpose похож на Nessus. Давайте быстро посмотрим, как работать с ним. Более глубокое изучение NeXpose отставляю на вас. Для того, чтобы запустить сканер в msfconsole, нужно сначала подключить БД к Metasploit, а затем загрузить плагин NeXpose и подключить его к БД. Выполним след. команды:
Теперь мы можем сканировать цели и генерировать отчеты. Есть две команды поддерживаемые в NeXpose: nexpose_scan и nexpose_discover. Запустим быстрое сканирование цели:
Посмотрим результаты сканирования:
После того, как информация собрана, последним шагом будет импорт результатов. Посмотрим, как это делается. Импорт результатов сканированияДля импорта результатов сканирования, выполните след. команду:
Sharing information with the Dradis FrameworkВ предыдущих рецептах мы изучали несколько техник получения информации о цели. Во время пен-тестирования, нам может понадобится поделиться информацией с коллегами. Поэтому всю имеющуюся у нас информацию можно добавить в общий доступ. В этом нам поможет Dradis Framework. Он обладает некоторыми особенностями, которые делают его отличным инструментом для добавления информации в общий доступ:
Примечание: про установку Dradis Framework в BT, можно прочитать здесь. Чтобы запустить Dradis Framework в BackTrack'e, выполним след. команду:
После выполнения команды запустим фреймворк через браузер, для этого в адресной строке введите:
Давайте начнем наш эксперимент с Dradis. Framework позволяет создавать древовидную структуру для доменов и под-доменов. Это дает нам четкое представление о структуре и помогает логически хранить информацию. Dradis также предоставляет возможность создать полный отчет и систематизировать его. Framework содержит пять важных опций: add branch, import from file, export, add note и note categories. Давайте создадим новый отчет. Процесс создания отчета простой и начинается с добавления хостов и под-хостов. Опция add branch позволяет добавлять IP-адреса или имена доменов. После того, как добавлен домен верхнего уровня, мы также можем добавить его под-домены. Следующим шагом будет добавление информации о них. Опция add note позволяет нам добавлять собранную информацию о результатах сканирования из Nmap, Nessus и т.п. Note categories помогает нам выбрать среду, в которой получили информацию. Различные опции включают в себя Brup scan, Nessus scan, NeXpose, Nmap и т.д. Вы можете выбрать подходящую опцию, которая будет использоваться для генерации отчета. На след. рисунке показана информация о выполненном Nmap сканировании диапазона IP-адресов 192.168.56.1/24. В левой колонке содержатся данные о доступных целях, а в правой отчет о них: Следующее, что можно сделать в Dradis Framework — импорт существующего отчета или экспорт созданного отчета. Import from file позволяет нам с гибкостью импортировать ранее созданные результаты сканирования с различных сканеров. Также можно импортировать несколько результатов сканирования в единый отчет. Опция export позволяет генерировать полные отчеты о различных доменах и под-доменах в один файл. Отчет может быть экспортирован либо в XML, либо в HTML-формат, а также в виде проекта или пользовательского отчета. Продолжение следует… Дата публикации: 2013-01-14 |