16 апреля, 2024

Metasploit для начинающего хакера. Payloads ( Часть 3)

Содержание:

С возвращением, мои начинающие хакеры!

Как вы знаете, Metasploit — это эксплуатационный фреймворк, в котором каждый хакер должен уметь работать.

Metasploit позволяет нам использовать предварительно написанные эксплоиты против известных уязвимостей в операционных системах, браузерах и других приложениях, а также размещать на целевой системе некоторый код, который иногда называют руткитами (rootkit), «слушателями» (listener) или полезными нагрузками (payload). Payload’ы позволяют нам подключаться к целевой системе и использовать ее как нашу собственную, после того как мы воспользуемся уязвимостью в этой системе. В этой статье мы рассмотрим те payload, которые встроены в Metasploit.

Metasploit имеет множество различных типов payload, которые можно оставить в целевой системе. Мы уже знакомы с generic, shell, reverse_tcp и payload‘ами windows, meterpreter, reverse_tcp, и уже использовали их в нескольких хаках. Теперь рассмотрим, как работают payload, классификации и типы payload в Metasploit. Мы надеемся, это поможет вам выбрать подходящий payload для вашего хака.

Шаг 1. Запустите Kali Linux и откройте Metasploit

Мы видим, что Metasploit вывел нам список эксплойтов, вспомогательных модулей, модулей пост-эксплуатации, payload-модулей, кодировщиков и nops («No operation» — команда ничего не делать).

На скриншоте ниже видно, что в текущей версии Metasploit есть 335 payload (у вас это количество может отличаться в зависимости от того, какую версию вы используете). Это огромное количество payload, которое можно использовать в различных ситуациях.

Когда мы вводим в консоль:

msf > show payloads

Metasploit показывает 335 payload‘ов, как на скриншоте ниже.

Шаг 2. Типы payload

Эти 335 payload‘ов разделены на 8 типов.

Inline

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

Читать также:  Как проверить анонимность vpn сервера

Staged

Эти payload способны встраиваться в очень маленький объем памяти и создавать целый плацдарм в целевой системе, а затем вытаскивать остальную часть payload в систему.

Meterpreter

Является самым мощным payload, который мы чаще всего хотели бы видеть в системе жертвы. Он работает путем инъекций в .dll и полностью находится в памяти целевой системы, не оставляя при этом следов своего присутствия на жестком диске или в файловой системе. У него есть ряд специальных команд и скриптов, разработанных для него, которые позволяют работать в системе жертвы так, как нам вздумается.

PassiveX

Этот payload предназначен для использования в тех ситуациях, когда правила брандмауэра ограничивают исходящий трафик. По сути, он использует ActiveX через браузер Internet Explorer. Чтобы скрыть свой исходящий трафик и избежать блокировки брандмауэром он использует HTTP-запросы и отвечает на запросы так же, как и любой браузер.

NoNX

В некоторых процессорах есть встроенная функция безопасности, называемая DEP (Data Execution Prevention — предотвращение выполнения данных). В Windows это называется No eXecute или NX. Задача этой функции — не допустить, чтобы данные поступали в центральный процессор и им выполнялись. Задача payload NoNX — обойти эту функцию.

Ord

Эти типы payload работают со всеми операционными системами Windows. Они чрезвычайно малы, но несколько нестабильны. Их работа заключается в загрузке DLL (динамически подключаемых библиотек) в эксплуатируемый процесс.

IPv6

Эти payload, как и следует из названия, предназначены для работы в сетях IPv6.

Reflective DLL Injection («Отражающая DLL-инъекция»)

Эти payload-модули вводятся прямо в целевой процесс, в то время, когда он запущен в память, тем самым никогда ничего не записывая на жесткий диск и не оставляя следов.

Читать также:  ФБР массово взламывало учетные записи пользователей Tor

Шаг 3. Payload-модули

Если мы посмотрим в директории Metasploit в терминале Kali Linux, мы увидим, что Metasploit делит свои payload‘ы на три типа. Очевидно, что восемь перечисленных выше типов объединены в эти три директории внутри самого Metasploit‘а.

kali > cd /usr/share/metasploit-framework/modules/payloads
 kali > ls -l

Staged

Выполняемые поэтапно payload используют крохотные модули Stagers (см. ниже), чтобы встроиться в небольшие эксплуатируемые нами участки памяти. Другими словами, если буфер эксплуатации системы жертвы или другая область памяти очень мала и позволяет выполнить только очень небольшой код, то сначала в область памяти внедряется небольшой Stager-модуль. После того, как он внедрится, он начинает работать как плацдарм для «вытягивания» остального payload‘а.

В свою очередь эти крупные Staged payload’ы включают еще более сложные payload-модули, такие как Meterpreter и VNC Injection, каждый из которых имеет большой и сложный код. Как правило, имя Staged payload вставляется в имя основного payload между символами «/». Например, как это сделано в payload windows/shell/tcp_bind, где «Tcp_bind» — это «Stager» (см. ниже), а «shell» — это «Staged».

К сожалению, это соглашение не используется последовательно в Metasploit, поэтому часто нужно переходить в раздел «info» конкретного payload или искать директорию, в которой он находится, чтобы определить, является ли он Staged payload.

Stagers

Stagers — небольшие payload, единственная задача которых заключается в том, чтобы внедриться в небольшую область памяти, а затем «вытащить» большой Staged payload-модуль. Это похоже на то, как если бы они «установили флаг» на системе-жертве, а затем начали бы загружать больший по размерам payload.

Читать также:  Как взламывать пароли. Часть 3: использование Hashcat

Singles

Часто их называют «встроенными полезными нагрузками» (Inline payloads). Cинглы — самодостаточные сущности, для которых не требуется Stager. Они, как правило, более стабильны и их использование предпочтительно, но во многих случаях их код слишком велик для уязвимой области памяти в целевой системе.

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

kali > cd singles
 kali > ls -l

Как мы видим, синглы разделены по типам уязвимых платформ. Если мы хотим увидеть те синглы, которые доступны для платформы Windows, мы просто вводим:

kali > cd windows
 kali > ls -l

Внутри этой директории мы видим все синглы, доступные для Windows. Мы выделили один из них — shell_reverse_tcp, это тот, который мы использовали во многих наших хаках.

Payload являются ключевой частью инфраструктуры Metasploit и предоставляют доступ к системе после завершения работы эксплоита. Чем лучше мы их понимаем, тем круче мы будем как хакеры.

Вот и все. Обязательно посмотрите нашу серию постов про Основы Metasploit (1 , 2).
До новых встреч, мои хакеры!

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