О Metasploit Meterpreter

Что такое 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 клиент.

 

Как работает Meterpreter

 

Цель выполняет начальный 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 использует зашифрованное сообщение.

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

 

Мощный

 

Meterpreter использует каналы системной связи.

Протокол TLV имеет несколько ограничений.

 

Расширяемый

 

Характеристики могут быть увеличены во время выполнения и загружены по сети.

Новые функции могут быть добавлены к Meterpreter без возможности восстановления.

 

Добавление времени выполнения функции

 

Новые функции добавляются Meterpreter загрузкой расширений.

 

Клиент загружает DLL на сокет.

Сервер работает на жертве загружаясь в память DLL и инициализирует его.

Новое расширение регистрирует себя на сервере.

Клиент на атакующей машине загружает локальное расширение API и может сейчас вызвать расширенные функции.

 

Этот весь процесс непрерывен и занимает около 1 секунды, до завершения.

 

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

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

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