В статье из прошлого номера мы познакомились с теоретической частью и провели небольшой «пентест» WordPress. В этой статье я буду призывать тебя копать глубже, вспомнив, что хакер — это в первую очередь программист :). Действительно, несмотря на то что счет встроенных в Metasploit модулей уже пошел на тысячи, рано или поздно любой, кто плотно работает с фреймворком, сталкивается с необходимостью расширить его функциональность собственными эксплоитами и вспомогательными модулями. Сегодня мы рассмотрим все необходимые аспекты создания модуля с нуля, а заодно коснемся особенностей языка Ruby, которые нужно учитывать при написании.

WARNING

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

Организация файлов в MSF

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

Первая — это директория, куда был установлен фреймворк. Например, в Kali Linux это /usr/share/metasploit-framework. В папке lib, помимо прочего, мы можем обнаружить библиотеку Rex, которая предоставляет базовые методы для работы с файлами и протоколами. Основа фреймворка — библиотеки Core и Base располагаются в директории lib/msf. Практикующим основательный подход можно начать изучение исходных кодов с класса Module из lib/msf/core, который определяет базовое поведение модулей. От него, в свою очередь, наследуются классы, которые определяют тип модуля Auxiliary, Exploit, Payload и так далее (их можно найти там же). Модули, идущие в поставке с фреймворком, можно обнаружить в директории modules, где они разбиты по типам.

Вторая локация — директория .msf4 в домашней папке пользователя. Именно она рекомендуется авторами фреймворка в качестве основного хранилища всех внешних модулей. Ее структура должна быть аналогична структуре папки modules. Например, если ты скачал эксплоит от внешнего разработчика или написал его сам, то, чтобы MSF распознал его, он должен находиться по пути ~/.msf4/modules/exploits. Внутри этой локации рекомендуется сортировать модули по подпапкам, например по операционным системам — MSF распознает их. Например, путь ~/.msf4/modules/exploits/windows/module_name будет валиден с точки зрения фреймворка.

 

Архитектура модуля

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

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


Оставить мнение

Check Also

Безопасность смарт-контрактов. Топ-10 уязвимостей децентрализованных приложений на примере спецификации DASP

Количество смарт-контрактов в блокчейне Ethereum только за первую половину 2018 года вырос…