что такое lhost и rhost

Metasploit Framework, часть вторая.

В первой части этой серии статей мы обсуждали, что создание эксплойта это все еще трудоемкий и отнимающий много времени процесс. Мы обсуждали общие проблемы, появляющиеся в процессе разработки эксплойта и то, как Metasploit Framework может решить некоторые из них. Эта статья начнется с краткого введения в интерфейс консоли и расскажет о том, как выбирать и использовать модули эксплойтов. Также мы опишем среду разработки, ее возможности и принципы работы.

1. Введение

В первой части этой серии статей мы обсуждали, что создание эксплойта это все еще трудоемкий и отнимающий много времени процесс. Мы обсуждали общие проблемы, появляющиеся в процессе разработки эксплойта и то, как Metasploit Framework может решить некоторые из них. Эта статья начнется с краткого введения в интерфейс консоли и расскажет о том, как выбирать и использовать модули эксплойтов. Также мы опишем среду разработки, ее возможности и принципы работы.

2. Начнем

Установленный MSF имеет три рабочих окружения, msfconsole, интерфейс msfcli и интерфейс msfweb. Однако, основная (и предпочтительная) рабочая среда MSF это msfconsole. Это эффективный интерфейс командной строки, имеющий собственное программное окружение и систему команд. Несмотря на то, что Framework был разработан для Unix-подобный систем, типа Linux или BSD, он также будет работать под Windows через среду Cygwin. Windows инсталлятор с сайта metasploit.com включает в себя сконфигурированную урезанную версию Cygwin.

Во время инициализации msfconsole выполняются стандартные проверки. Если все пройдет нормально, мы увидим то, что показано на Рисунке 1.

Теперь мы видим приглашение командной строки. Консоль очень гибкая, и если пользователь введет любую неизвестную команду, будет произведен поиск любого исполняемого файла в директориях, указанных в переменной окружения PATH. Если файл будет найден, он будет выполнен, как и в стандартной командной строке.

Инстинктивно, введя команду help, можно увидеть список доступных команд, как это показано на Рисунке 2.

Команда show exploits показывает список доступных в данный момент эксплойтов. Здесь есть удаленные эксплойты для различных платформ и приложений, таких как Windows, Linux, IIS, Apache и т.д., которые помогают тестировать MSF и понять принципы его работы. Это показано на Рисунке 3 ниже.

Как вы могли заметить, установка Metasploit Framework 2.0 по умолчанию содержит 18 эксплойтов и 27 шелкодов, которые являются весьма внушительным запасом.

Чтобы просмотреть список представленных шелкодов, выполните команду show payloads. Шелкоды качественные, эффективные и очень хорошо написанные. Эти шелкоды выполняют множество задач, например, привязка командной оболочки к прослушиваемому порту, добавление новых учетных записей, загрузка и исполнение выбранной вами программы. MSF также имеет поддержку динамического создания шелкода, используя библиотеку InlineEgg, как это показано на рисунке 4.

Определенная информация об эксплойте может быть получена с помощью команды info exploit имя_эксплойта, которая выводит данные о доступных целях, требования эксплойта, непосредственно детали уязвимости и даже ссылки, по которым вы сможете найти больше информации. Это показано на Рисунке 5.

Таким же образом, с помощью команды info payload имя_шелкода, может быть получена информация о любом шелкоде, как это показано на рисунке 6. Начиная с версии MSF 2.2, вы можете использовать команду info имя_модуля, без указания типа модуля.

3. Использование эксплойта

Теперь мы опишем процедуру выбора и выполнения определенного эксплойта. Команды use имя_эксплойта активизирует среду для использования эксплойта имя_эксплойта.

Если вы выберете Microsoft RPC DCOM MSO3-026 эксплойт, используя имя msrpc_dcom_ms03_026, вы можете заметить, что приглашение командной строки изменится с msf > на msf msrpc_dcom_ms03_026 >. Это уведомление о том, что мы работаем во временном окружении этого эксплойта. Команда show может использоваться для просмотра информации о текущем эксплойте. Команды show options покажет различные параметры, которые обязательны для использования эксплойта, как показано на Рисунке 7.

Ясно, что эксплойт требует 2 параметра, RHOST (адрес цели) и RPORT (порт цели, по умолчанию, в данном случае, это 135). Команда show targets покажет все доступные цели для выбранного эксплойта. Как вы можете видеть, этот модуль имеет только одну цель, работающую на NT 4.0 SP6 или на всех версиях Windows 2000 и Windows XP.

Команда show payloads покажет все шелкоды совместимые с выбранным эксплойтом. MSF предотвращает вас от использования шелкода, неподходящего для данного эксплойта.

Мы должны установить все опции, помеченные как ‘required’, перед тем как использовать эксплойт. Для этого эксплойта есть только одна опция цели, поэтому мы установим переменную TARGET в 0, командой set TARGET 0. Многие эксплойты сами выберут подходящую цель для вас. Теперь установим IP адрес цели командой set RHOST 192.168.0.27.

Многие эксплойты и шелкоды имеют дополнительный набор опций, названный расширенными опциями. Они могут быть отображены с помощью команды show advanced. Расширенные опции могут выполнять такие задачи, как модификация эксплойта с целью обмана сигнатур IDS, изменение настроек перебора или точное указание адреса возврата, который нужно использовать.

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

Все выглядит отлично. Время начинать!

Команда exploit начинает атаку, независимо оттого, что нужно сделать для выполнения шелкода на удаленной системе.

Команда check может быть использована для проверки, действительно ли целевая система уязвима для атаки. Такая возможность доступна не с каждым эксплойтом, но может быть полезна для определения, пропатчена ли система, перед попыткой ее атаки.

4. Добавление новых Эксплойтов/Модулей

Добавить новый эксплойт в MSF очень просто. MSF-совместимый удаленный эксплойт для переполнения буфера в IIS 5.x SSL PCT был публично выпущен 24/04/2004 (http://www.k-otik.com/exploits/04242004.iis5x_ssl_pct.pm.php). Для примера мы добавим этот эксплойт в нашу базу MSF.

После загрузки эксплойта, пользователь должен обратить внимание на имя Perl модуля эксплойта. Имя файла должно быть таким же, как и имя пакета, другими словами Msf::Exploit::iis5x_ssl_pct должен быть сохранен как iis5x_ssl_pct.pm. Теперь скопируйте модуль в директорию эксплойтов (если вы используете Windows это /home/framework-2.0/exploits). Как только файл скопирован, он готов к использованию и вам даже не нужно перезапускать консоль. Используйте команду show exploits, что убедиться, что модуль был загружен правильно. Эксплойт был успешно добавлен в список. Его можно запустить, так же как и любой другой эксплойт в MSF. Версия MSF 2.2 позволяет пользователям иметь собственные директории для эксплойтов, шелкодов, кодеров и nop’ов. Новый эксплойт может быть установлен для всей системы или для определенного пользователя.

5. Окружения консоли

5.1 Глобальное окружение

5.2 Временное окружение

5.3 Расширенные настройки окружения

5.3.1 Настройки логов

5.3.2 Опции сокетов

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

Msf::Socket::Proxies (глобальное имя) или Proxies (временное имя): Эта переменная может использоваться для установки настроек прокси (SOCKS4 и HTTP) для сетевого соединения. Поддерживаются цепочки прокси, которые должны быть указаны в формате тип:хост:порт и разделены запятыми для каждого прокси сервера.

Msf::Socket::RecvTimeout (глобальное имя) или RecvTimeout (временное имя): Задает максимальное число секунд чтения данных из сокета.

Msf::Socket::ConnectTimeout (глобальное имя) или ConnectTimeout (временное имя): Задает таймаут сокета при установке соединения (по умолчанию 10 секунд).

Msf::Socket::RecvTimeoutLoop (глобальное имя) или RecvTimeoutLoop (временное имя): Устанавливает максимальное время (в секундах) ожидания подключения, прежде чем сокет будет закрыт. Эта значение восстанавливается после каждого приема данных.

5.3.3 Параметры отладки

5.3.4 Опции шелкода

Переменная RandomNops указывает модулю генерации nop’ов использовать случайные последовательности nop-подобных команд вместо стандартного опкода nop. Это также может использовать для обмана сигнатур IDS. Версия 2.2 включает поддержку нового случайного генератора nop’ов, в котором для каждого эксплойта можно указать регистры, которые не должны быть изменены nop-подобными опкодами.

6. Заключение

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

Источник

О создании пэйлоадов для разных платформ с помощью msfvenom

«Голова — лучший антивирус», — эта идея никогда не потеряет актуальности. Для того, чтобы эффективно бороться с компьютерными угрозами, надо знать своих врагов. Среди таких врагов — программы, которые позволяют незаметно подключаться к компьютеру и выполнять с ним некие действия, проще говоря, софт для взлома систем. Полагаем, знание того, как создают подобный софт, хотя бы на базовом уровне, понимание того, как он работает, полезно любому, кого волнуют вопросы компьютерной безопасности. Кроме того, такой софт можно использовать для проверки защищённости собственных систем.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Предварительные требования

Для того, чтобы попробовать то, о чём пойдёт речь, на практике, вам понадобится компьютер с установленной на нём Kali Linux, компьютеры под управлением Windows и Linux, Android-смартфон. В процессе работы, при составлении команд, мы будем пользоваться следующими ключами:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Организация Bind Shell-подключения

Bind shell — это схема взаимодействия с удалённой консолью, при которой на целевом компьютере запускается сервис, к которому может подключиться атакующий. Фактически, речь идёт о прямом подключении к атакуемому компьютеру. Для того, чтобы создать соответствующий пэйлоад для Windows, нужно выполнить следующую команду в терминале:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Теперь запустим msfconsole и введём нижеприведённые команды для того, чтобы открыть сессию:

После выполнения файла в нашем распоряжении окажется meterpreter-подключение к целевому компьютеру:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Использованная здесь опция bind_tcp полезна в тех случаях, когда мы отключаемся от компьютера жертвы, но он при этом ещё работает. Мы можем выполнить ту же команду и подключиться снова, при этом не нужно, чтобы эксплойт снова запускали на удалённом компьютере.

Организация Reverse Shell-подключения

Reverse Shell (или Reverse TCP, или connect-back, или обратное подключение) — это схема взаимодействия с удалённым компьютером, обратная вышеописанной. При её использовании нужно, чтобы атакующий сначала запустил на своей машине сервер, при этом целевая машина будет играть роль клиента, который подключается к этому серверу, после чего атакующий получает доступ к оболочке целевого компьютера.

Для того, чтобы создать соответствующую полезную нагрузку, нужно ввести в терминале Kali следующую команду:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

В данном случае мы включаем в команду некоторые новые параметры, такие, как lhost (локальный хост), lport (локальный порт) для того, чтобы принять обратное соединение от компьютера жертвы.

После того, как пэйлоад создан, отправлен на атакуемый компьютер и выполнен там, мы переходим ко второму шагу атаки. Запустим msfconsole и введём следующие команды для того, чтобы организовать подключение удалённого компьютера к нашей машине.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Организация Reverse HTTPS-подключения

Обратите внимание на то, что обе вышеописанные атаки осуществимы в том случаем, если на машине жертвы имеются подходящие работающие порты. Сейчас мы попытаемся найти выход из ситуации, когда на интересующем нас компьютере порты заблокированы. В подобном случае можно сориентироваться в ситуации и создать пэйлоад, например, воспользовавшись портом 443 для HTTPS. Для этого нужно ввести в терминале Kali следующую команду:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

После создания пэйлоада и отправки его жертве, которая, как ожидается, рано или поздно запустит соответствующий файл, мы переходим к следующему шагу. Запускаем msfconsole и вводим следующие команды для организации подключения:

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

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Скрытое Bind Shell-подключение

Исследуем ещё одну возможность msfvenom и попытаемся с её помощью обрести контроль над удалённым компьютером. В этот раз мы хотим заполучить доступ к командной оболочке, а не к сессии meterpreter.

Пэйлоад, который мы создадим нижеприведённой командой, после выполнения, прячется в системе, его нельзя обнаружить сканером портов.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

После того, как файл готов и отправлен жертве, мы можем перейти к следующему шагу. А именно, воспользуемся Netcat, введя в терминале Kali следующую команду:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Reverse Shell-подключение с помощью Netcat

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

После создания файла и отправки его на атакуемый компьютер, создадим прослушиватель порта с использованием netcat :

При условии, что наш пэйлоад был успешно выполнен на удалённом компьютере, ниже показано то, как выглядит подключение к нему.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Пэйлоады-макросы на VBA

Создадим пэйлоад в виде VBA-скрипта, который будем использовать в качестве макроса MS Excel для атаки на целевую машину. Для того, чтобы это сделать, выполним следующую команду в терминале Kali:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

После этого надо вставить в редакторе VBA ранее скопированный код пэйлоада, закрыть редактор и включить макросы.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Когда Excel-файл будет открыт на интересующем нас компьютере, жертве будет предложено включить макросы. После их включения выполнится VBA-скрипт, который создаст обратное подключение к удалённому компьютеру. Выглядеть это будет так, как показано ниже.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

VNC-пэйлоад

Хотя и неприлично, без ведома человека, наблюдать за тем, что он делает за компьютером, тот пэйлоад, который мы создадим сейчас, занимается именно этим. Откроем терминал Kali и введём следующую команду:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

После создания пэйлоада мы, как обычно, отправляем его жертве, после чего начинаем готовиться к подключению. Для этого вызываем в терминале команду msfconsole и делаем следующее:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Тут можно видеть, что выполнена VNC-инъекция, что установлено удалённое соединение. Так же на компьютере под управлением Kali откроется окно Remote Desktop.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Пэйлоад для Android

Взлом мобильных устройств всегда привлекал к себе немалое внимание, поэтому рассмотрим методику создания пэйлоадов для платформы Android. Откроем терминал Kali и введём следующую команду:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

После подготовки apk-файла его нужно передать на интересующее нас мобильное устройство. Затем нужно подготовиться к подключению на Kali:

После того, как пэйлоад будет запущен, в нашем распоряжении будет сессия meterpreter и мы сможем взаимодействовать со взломанным телефоном.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Пэйлоад для Linux

Откроем терминал Kali и введём следующую команду:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

После создания файла его нужно отправить на компьютер жертвы и подготовиться к подключению:

После выполнения пэйлоада будет создано обратное TCP-подключение к нашему компьютеру, которое предоставит в наше распоряжение сессию meterpreter.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Пэйлоад для PowerShell

Для того, чтобы создать пэйлоад для PowerShell, откроем терминал Kali и введём следующую команду:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Теперь, как обычно, после создания пэйлоада, передадим его на интересующий нас компьютер и подготовимся принять подключение:

После запуска пэйлоад создаст обратное подключение к оболочке. Выглядит это так, как показано ниже.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Итоги

Как видите, с использованием msfvenom очень просто создавать программы, предназначенные для удалённого подключения к самым разным системам. То, что это доступно даже пользователям с минимальной подготовкой, придаёт особую актуальность правилу, которое знают все, но далеко не все соблюдают: «Не открывайте файлы, в происхождении которых сомневаетесь».

Уважаемые читатели! Известны ли вам случаи взлома систем с использованием пэйлоадов, похожих на те, о которых мы сегодня говорили?

Источник

Секреты Metasploit

Вступление

В 2003 году, хакеру, известному как «HD Moore», пришла идея разработать инструмент для быстрого написания эксплоитов. Так был рожден хорошо известный во всех кругах проект Metasploit. Первая версия фреймфорка была написана на языке Perl, содержавшая псевдографический интерфейс на базе библиотеки curses.

К 2007 году разработчики консолидировались, основав компанию Metasploit LLC; в это же время проект полностью переписали на Ruby и, частично на Си, Python и Ассемблер.

В октябре 2009 года, проект Metasploit был приобретен компанией Rapid7 с условием, что HD Moore останется техническим директором фреймворка, на что согласилась компания Rapid7.

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

Metasploit позволяет имитировать сетевую атаку и выявлять уязвимости системы, проверить эффективность работы IDS/IPS, или разрабатывать новые эксплоиты, с созданием подробного отчета. В народе его даже успели прозвать “хакерским швейцарским ножом”.

Благодаря переписанному, в основном на ruby, коду фреймворка, он остается кроссплатформенным, то есть не имеет конкретной привязки ни к какой ОС. HD Moore как-то продемонстрировал запуск Msfconsole на часах с linux прошивкой.

На сегодняшний день Metasploit содержится в нескольких linux-дистрибутивах:

С момента приобретения Фреймфорка, многое изменилось.
Например, появились PRO и Community версии, а в 2010 году, более упрощенная версия для «малоквалифицированных» пользователей — Metasploit Express.

Инструмент имеет несколько конфигураций:

1) Командная оболочка (msfconsole);
2) Веб-интерфейс (Metasploit Community, PRO и Express);
3) Графическая оболочка (Armitage, и более продвинутая версия — Cobalt strike).

Фреймворк: практика

Если у вас все еще нет Метасплоита — не беда, скачать его можно на официальном сайте metasploit.com.
Стоит отметить, что msf корректно работает только с базой PostgreSQL.

После того как мы загрузили пакет, откроем консоль и выполним следующее:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

(Более подробная документация по установке находится на сайте Metasploit).

В качестве краткого описания ознакомимся с основными понятиями, а также рассмотрим некоторые команды MSF.

Exploit — Фрагмент кода, использующий уязвимость в ПО или ОС для выполнения атаки на систему.
Module — Модуль, автоматизирующий процесс какой-либо атаки.
Shellcode — Шеллкод. Используется как полезная нагрузка эксплойта, обеспечивающая доступ к командной оболочке ОС.
Payload — Полезная, или смысловая нагрузка. Это код, который выполняется после успешного выполнения атаки. Видов нагрузки в msf немало.
«Stager» — Нагрузка, разбитая на части. Устанавливая соединение, шелл подгружается полностью.
«Reverse shell» — Бэкконнект шел.
«Meterpreter» — Пожалуй, один из популярных, если не самый популярный шелл. Имеет кучу возможностей: миграцию в процессы; XOR-шифрование, для обхода IDS и антивирусов; два вида dll-инжекции и т.д. Также можно выбрать «metsvc» нагрузку, что зальет и пропишет meterpreter как сервис. Более подробно о meterpreter можно почитать в статьях, ссылки на которые будут в конце статьи.

Закончим небольшой экскурс по meterpreter’у и перейдем к консоли msf.

use — Выбор эксплоита
search — Поиск. Команда поиска более расширена; если вы забыли точное название или путь расположения эксплоита, она способна отобразить всю имеющуюся информацию
show options — Просмотр параметров для настройки. После выбора эксплоита, вы можете посмотреть какие опции доступны для настройки
show payload — Просмотр полезных нагрузок. Msf содержит множество полезных нагрузок; воспользовавшись этой командой можно также посмотреть рекомендуемые нагрузки для конкретного эскплоита или ОС
info — Просмотр подробной информации о полезной нагрузке
(info payload_name)
set — Установка параметров. Команда set устанавливает нужные параметры, например, RHOST(remote) и LHOST(local), или полезную нагрузку
(set PAYLOAD windows/shell/reverse_tcp)
check — Проверка хоста на уязвимость
exploit — Запуск сплоита. Когда цель выбрана и все возможное настроено, остается только завершающий этап — команда exploit

Также стоит отметить малоизвестную, но полезную фичу msf — возможность создания resource-скриптов. Сам resource-скрипт представляет из себя текстовый файл, содержащий последовательность команд для выполнения; также он позволяет выполнить ruby код.
Эти файлы очень удобны, и позволяют практически полностью автоматизировать без того легкий процесс тестирования. Например, это может пригодится для автоматического запуска сервера, либо очистки “мусора”.

Заключение

Уязвимость RDP протокола позволяет выполнит код на удаленной системе. Рассмотрим эксплоит ms12_020, приводящий к BSOD.

Сплоит располагается по адресу auxiliary/dos/windows/rdp/ms12_020_maxchennelids:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Выбрав сплоит, настроим его. Достаточно указать удаленный хост:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost
что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost
Как мы можем наблюдать на скриншоте выше, сессия установлена.

Правильно отработанный сплоит приводит к подобной картине:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost
По умолчанию, в нынешних версиях Windows RDP протокол не включен. Так что вам следует его предварительно включить

Источник

Тест на проникновение с помощью Metasploit Framework: базовое руководство для системного администратора

Редко кто из экспертов, специализирующихся на тестировании защищенности, сталкивался с ситуацией, когда не смог полностью скомпрометировать сеть в ходе внутреннего тестирования на проникновение. Причем причины успехов этичных хакеров банальны: слабые пароли, отсутствие критичных обновлений безопасности, ошибки конфигурации. Возникает вопрос: если причины незащищенности такие тривиальные, можно ли разработать перечень ключевых проверок, которые мог бы провести системный администратор самостоятельно и есть ли единый инструмент, позволяющий это реализовать? Попробуем разобраться.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

В качестве инструмента мы выберем популярный у этичных хакеров Metasploit Framework, который можно установить самостоятельно, а можно уже воспользоваться тем, что есть в составе комплекса «Сканер-ВС» или Kali Linux. Сразу отметим, что в данной статье мы не будем фокусироваться на тестировании безопасности веб-приложений, так как это является отдельным направлением тестирования.

Прежде чем погружаться в решение технических задач, надо разобраться, а что может заинтересовать потенциальных злоумышленников, и как они будут этого добиваться.

Информация, интересующая злоумышленников

Киберзлоумышленники, как правило, руководствуются такими мотивами как непосредственный заработок на успешном взломе (кража финансовых средств, вымогательство, выполнения заказа для заинтересованной стороны) либо собственное любопытство и проверка своих возможностей. Целью может быть все, что позволит либо украсть, либо заработать. Помимо любой системы, используемой организацией, целью могут быть папки на файловых серверах, а также документы на рабочих станциях пользователей.

Зоны повышенного риска

Основными причинами того, что кто-то не поставил обновление безопасности или оставил пароль по умолчанию, является отсутствие ответственного сотрудника и/или надлежащего контроля со стороны руководства.

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

Базовый алгоритм работы с Metasploit Framework

Так как в качестве инструмента для проведения тестирования защищенности мы выбрали Metasploit Framework, то необходимо привести базовый алгоритм работы с модулями, входящими в его состав.

Работа с модулем состоит из следующих шагов:

Методология тестирования защищенности

Тестирование защищенности информационных систем зачастую представляет собой творческий процесс, который тем не менее можно и нужно структурировать, чтобы получать сопоставимые и полные результаты тестирования.

Неплохое описание методологий тестирования защищенности приводится в следующих источниках:

В PTES приведена подробная структура задач, решаемых в ходе тестирования защищенности и примеры использования различных инструментов, но при этом применение такого средства как Metasploit Framework практически не описано. OSSTM в большей степени предназначен для менеджеров по информационной безопасности и содержит техническую информацию в очень ограниченном объеме. NIST SP 800-115 был принят в 2008-м году и не полностью отражает современные подходы к тестированию защищенности. OWASP Testing Guide посвящен тестированию защищенности исключительно web-приложений и содержит подробное и структурированное описание методов тестирования, а также варианты применения различных инструментов.

Рассмотрим следующие этапы тестирования защищенности, присутствующие в практически любом проекте по тестированию на проникновение:

Этап 1. Постановка задачи

Тестирование защищенности любой ИТ-инфраструктуры начинается с постановки задачи. В нашем случае мы ограничимся поиском максимального количества реальных уязвимостей, которые могут быть проэксплуатированы потенциальными злоумышленниками, имеющими физический доступ к компьютерной сети организации.

Для демонстрации работы некоторых модулей в статье будут приводиться результаты их запуска против такой учебной цели, как Metasploitable 2. Metasploitable 2 представляет собой виртуальную Linux-машину, содержащую массу уязвимых сервисов. Является стандартом де-факто для обучения начинающих специалистов по тестированию защищенности.

Этап 2. Сбор информации и поиск целей

Для проведения тестирования защищенности специалистам предоставляют доступ в сеть предприятия. В ходе предварительного сбора проводится сканирование узлов, определяются имена компьютеров, обнаруживаются общедоступные сетевые папки, критичные ресурсы.

Сканирование портов можно провести с помощью команды db_nmap – утилиты-«обертки» для nmap в Metasploit Framework, которая позволяет сохранять результаты сканирования в базу данных.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

После завершения сканирования сети имеет смысл выгрузить данные из базы Metasploit с помощью команды db_export и импортировать получившийся xml-файл в MS Excel или LibreOffice Calc. В дальнейшем данный файл можно использовать для поиска узлов с определенными портами и вести рабочие заметки с результатами тестирования каждого узла.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Поиск общедоступных сетевых папок

Как мы уже рассмотрели выше, в общедоступных сетевых папках может быть масса полезной для злоумышленника информации. Имеет смысл искать данные папки как с анонимной учетной записью (пустой логин/пустой пароль), так и с учетной записью обычного пользователя.

Для поиска SMB-ресурсов необходимо воспользоваться модулем auxiliary/scanner/smb/smb_enumshares, а для NFS: auxiliary/scanner/nfs/nfsmount.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Поиск СУБД
Для поиска СУБД MS SQL имеет смысл использовать модуль auxiliary/scanner/mssql/mssql_ping, так как он позволяет не только обнаружить серверы СУБД по открытому UDP порту 1434, но и определить TCP-порт, по которому база данных ждет подключения.

Определение имен NetBIOS
Зачастую полезно определить имена NetBIOS, так как в них тоже может содержаться полезная информация (например, к какой системе относится тот или иной узел). Для этого можно воспользоваться модулем auxiliary/scanner/netbios/nbname.

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Этап 3. Поиск уязвимостей

Сначала рассмотрим основные методы выявления уязвимостей, которые представлены в следующей таблице:

МетодТип уязвимостейПримеры
1Определение уязвимостей по версии продуктаОпубликованныеОпределение версии продукта по баннеру сетевого сервиса и поиск информации об известных для данного продукта уязвимостях в интернет-поисковике
2Попытка эксплуатацииОшибки конфигурации, опубликованные уязвимостиПопытка подключения к Windows системе посредством нулевой сессии и выгрузки перечня учетных записей пользователей.

Запуск эксплойта против сетевого сервиса без предварительного анализа его соответствия данной службе.

Попытка перехвата трафика с помощью arp-poisoning

3Анализ конфигурацииОшибки конфигурации,
опубликованные уязвимости
Анализ содержимого реестра Windows
4Реверс-инжинирингУязвимости нулевого дняДизассемблирование исполняемого файла с целью изучения логики исполнения программы и работы с данными
5Анализ исходного кодаУязвимости нулевого дняПоиск в php-коде фрагментов, связанных с фильтрацией данных, вводимых пользователем с целью обхода правил фильтрации и внедрения JavaScript-кода
6ФаззингУязвимости нулевого дняВвод в web-форму различных вариантов SQL-запросов и анализ получаемых сообщений об ошибках

Из данного перечня в Metasploit Framework имеются модули для реализации методов «Попытка эксплуатации», «Фаззинг» и частично «Определение уязвимостей по версии продукта».

«Определение уязвимостей по версии продукта» полноценно не реализовано в Metasploit Framework, так как для автоматизированного выявления потенциальных уязвимостей в первую очередь используются сканеры уязвимостей. Тем не менее стоит отметить, что некоторые модули эксплуатации в Metasploit Framework поддерживают метод check, который можно использовать для определения наличия уязвимости до ее эксплуатации.

В случае, если под рукой нет сканера уязвимостей наподобие того, что есть в составе «Сканер-ВС», который может за десятки минут прогнать около 60 тыс. проверок, в том числе и для отечественных решений и средств защиты информации, то придется проводить анализ вручную.

Для ручного анализа уязвимостей подойдут данные о версиях сетевых сервисов, полученные на предыдущем этапе в ходе сканирования портов. Специалист по тестированию защищенности, формируя поисковые запросы Google вида «сервис версия» +vulnerability +exploit, находит страницы с описанием уязвимостей и эксплойтов.

Известные базы данных уязвимостей:

Отдельно необходимо отметить, что ФСТЭК России ведет регулярно пополняемый банк данных угроз безопасности информации.

Например, проведя анализ результаты сканирования портов Metasploitable 2, мы можем обнаружить, что на 21-м порту ждет подключений Very Secure FTP Daemon (VSFTPD) версии 2.3.4. Простой поиск в Google информации о наличии уязвимостей в данной версии FTP-сервера приведет к тому, что мы узнаем, что какой-то весельчак внедрил закладку, получившую название «smiley face backdoor». Принцип использования программной закладки прост: в ходе авторизации в имени пользователя нужно использовать смайлик «:)», после чего на удаленной машине откроется порт 6200 с командной оболочкой с правами администратора. Вводимые имя пользователя и пароль могут быть любыми.

В составе Metasploit Framework есть набор модулей для фаззинга реализаций таких протоколов как dns, ftp, http, smb, smtp, ssh и др. Данные модули доступны по адресу: auxiliary/fuzzers/.
Необходимо отметить, что так как проекты по тестированию защищенности обычно ограничены сроком в 2-3 недели, специалисты ограничиваются автоматизированным и ручным поисками уязвимостей по версиям, а также попытками эксплуатации.

Этап 4. Эксплуатация и проведение атак

Для эксплуатации уязвимостей в сетевых сервисах и прикладном ПО используются эксплойты из раздела exploit Metasploit Framework. На текущий момент в Metasploit Framework количество готовых к использованию эксплойтов уже приближается к двум тысячам.
Подходящие эксплойты можно найти с помощью команды search по коду CVE, названию или версии сервиса (например, search vsftpd).

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

При эксплуатации уязвимости задается так называемая полезная нагрузка (payload). Полезной нагрузкой называется код, который запускается на скомпрометированной машине. В Metasploit Framework имеются различные полезные нагрузки: удаленная командная строка, создание учетной записи, загрузка системы удаленного администрирования и т.п. Зачастую удобнее всего пользоваться именно командной строкой. Причем в Metasploit Framework имеется динамически расширяемая полезная нагрузка – Meterpreter, но она заслуживает отдельной статьи.

Продолжая разбор примера с vsftpd, запустим найденный эксплойт и получим удаленный доступ к командной строке с правами администратора.

Для данного эксплойта только один вариант полезной нагрузки, который и используется по умолчанию:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

Самой опасной атакой на протяжении десятилетий остается подбор паролей. Metasploit Framework содержит множество модулей, предназначенных для проведения подобных атак. В следующей таблице представлены модули, с которыми чаще всего приходится сталкиваться в ходе тестирования защищенности.

Протокол/приложениеПуть к модулю
1smbauxiliary/scanner/smb/smb_login
2ftpauxiliary/scanner/ftp/anonymous (проверка возможности анонимного входа)
auxiliary/scanner/ftp/ftp_login
3sshauxiliary/scanner/ssh/ssh_login
4telnetauxiliary/scanner/telnet/telnet_login
5postgresqlauxiliary/scanner/postgres/postgres_login
6mysqlauxiliary/scanner/mysql/mysql_login
7oracleauxiliary/admin/oracle/oracle_login
8tomcatauxiliary/scanner/http/tomcat_mgr_login

Полный список аналогичных модулей Metasploit Framework можно получить, набрав команду search login.

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

Давайте подберем пароли по умолчанию к СУБД PostgreSQL и сервер приложений Apache Tomcat, установленным на Metasploitable 2:

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

что такое lhost и rhost. Смотреть фото что такое lhost и rhost. Смотреть картинку что такое lhost и rhost. Картинка про что такое lhost и rhost. Фото что такое lhost и rhost

В Metasploit Framework имеются модули для проведения специфических компьютерных атак. В настоящей статье ограничимся рассмотрением нескольких самых распространенных.

В ходе данной атаки злоумышленник пытается «испортить» (to poison — отравить) ARP-таблицы двух узлов, трафик между которыми он хочет перехватывать. Зачастую атака проводится против рабочей станции определенного пользователя (системного администратора, главного бухгалтера и т.п.) и контроллера домена или маршрутизатора. После «порчи» ARP-таблиц оба узла-жертвы направляют сетевые пакеты друг другу через компьютер злоумышленника. Злоумышленник, запустив сниффер, перехватывает интересующие его данные, например, сессии аутентификации с хешами паролей.

Для осуществления атаки arp-poisoning в Metasploit Framework можно воспользоваться модулем:
auxiliary/spoof/arp/arp_poisoning.

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

Атаку pass-the-hash можно провести с помощью модуля exploit/windows/smb/psexec.

В результате данной фазы тестирования защищенности мы имеем перечень уязвимостей, которые реально могут быть проэксплуатированы злоумышленниками, причем удаленно. В качестве результата запуска эксплойтов и проведения атак у нас имеется доступ к различным системам, а также информация о скомпрометированных учетных записях.

Важное примечание.
Запуск эксплойтов легко может привести к недоступности сервиса или целого сетевого узла. Для минимизации негативных последствий подобных тестов специалисты по тестированию защищенности:

В качестве доказательств успешного проникновения специалисты по тестированию защищенности собирают скриншоты, подтверждающие наличие доступа.

Этап 5. Расширение зоны влияния и эскалация привилегий

Зачастую наличие доступа к какой-либо системе позволяет расширить его на другие системы. Иногда возможна и эскалация привилегий, позволяющая обычному пользователю стать администратором.

Рассмотрим две типовые ситуации, знание которых облегчает проведение тестирования защищенности.

Пользователи, использующие одинаковые пароли

Пользователи любят использовать одинаковые пароли в различных системах, поэтому целесообразно проверять однажды подобранные пары логин: пароль во всех доступных системах.

ИТ-специалисты, забывающие удалить из тестовой среды критичные данные

Модули постэксплуатации в Metasploit Framework

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

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

Этап 6. Разработка отчета

Если результаты тестирования защищенности интересуют не только самого системного администратора, то имеет смысл подготовить качественный отчет.

Основной составляющей отчета является информация об уязвимостях, которая, как правило, представляется в следующем структурированном виде:

В Metasploit Framework отсутствует функционал по генерации отчетов по тестированию защищенности, и отчет придется разрабатывать самостоятельно.

С шаблоном отчета и нюансами его разработки можно познакомиться в статье Отчет по пентесту: краткое руководство и шаблон.

Заключение

Мы рассмотрели применение Metasploit Framework для возможности самостоятельного применения администраторами для тестирования защищенности и убедились в доступности и эффективности данного инструмента. Большинство «болевых точек» могут быть с легкостью проверены благодаря широкому набору модулей данного фреймворка. Единственной проблемной областью применения для тестирования защищенности исключительно Metasploit Framework является необходимость проводить трудоемкий ручной поиск уязвимостей, но данная проблема может быть устранена применением сканера уязвимостей, например, из состава «Сканер-ВС».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *