Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

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

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ScareCrow — ScareCrow — фреймворк для создания полезных нагрузок, разработанный для обхода EDR. | Kitploit
Инструменты/GitHubGitHub/optiv/scarecrow
Фреймворки для эксплойтовГенерация полезной нагрузкиШелл-кодТестирование на ПроникновениеRed TeamingРазработка Полезной НагрузкиArchived
GitHuboptiv/scarecrow

ScareCrow

ScareCrow — фреймворк для создания полезных нагрузок, разработанный для обхода EDR.

Репозиторий
2.9k529213 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ЭТОТ РЕПОЗИТОРИЙ ЗААРХИВИРОВАН

Чтобы просмотреть последнюю версию ScareCrow или отправить проблему, обратитесь к https://github.com/Tylous/ScareCrow.



ScareCrow

Дополнительная информация

Если вы хотите узнать больше о методах, используемых в этом фреймворке, пожалуйста, ознакомьтесь с Частью 1 и Частью 2

Описание

ScareCrow — это фреймворк для создания полезной нагрузки (payload) для боковой загрузки (side loading) (не внедрения) в легитимный процесс Windows (обход контроля белых списков приложений). После загрузки DLL-загрузчика в память он использует метод для удаления хуков EDR из системных DLL, выполняющихся в памяти процесса. Это работает, потому что мы знаем, что хуки EDR размещаются при создании процесса.

ScareCrow может нацеливаться на эти DLL и манипулировать ими в памяти с помощью API-функции VirtualProtect, которая изменяет разрешения участка памяти процесса на другое значение, в частности с Выполнение-Чтение на Чтение-Запись-Выполнение.

ScareCrow использует один из двух методов для снятия хуков.

Диск

При выполнении ScareCrow копирует байты системных DLL, хранящихся на диске в C:\Windows\System32\. Эти DLL хранятся на диске «чистыми» от хуков EDR, поскольку используются системой для загрузки неизменной копии в новый процесс при его создании. Поскольку EDR перехватывают только эти процессы в памяти, они остаются неизменными. ScareCrow не копирует весь DLL-файл целиком, а сосредотачивается только на секции .text DLL. Эта секция DLL содержит исполняемый код на ассемблере, и, делая это, ScareCrow помогает снизить вероятность обнаружения, поскольку повторное чтение целых файлов может привести к тому, что EDR обнаружит изменение системного ресурса. Затем данные копируются в нужную область памяти, используя смещение каждой функции. Каждая функция имеет смещение, которое обозначает точное количество байтов от базового адреса, где она находится, определяя местоположение функции в стеке.

Для этого ScareCrow изменяет разрешения области памяти .text с помощью VirtualProtect. Несмотря на то, что это системная DLL, поскольку она загружена в наш процесс (который мы контролируем), мы можем изменить разрешения памяти без необходимости повышенных привилегий.

Непрямые системные вызовы

ScareCrow загружает шелл-код в память, сначала расшифровывая его, который зашифрован одним из трёх методов шифрования (описанных ниже). После расшифровки и загрузки шелл-код выполняется. В зависимости от указанных параметров загрузчика, ScareCrow настроит различные экспортные функции для DLL. Загружаемая DLL также не содержит стандартную функцию DLLMain, которая обычно требуется всем DLL для работы. DLL будет выполняться без проблем, потому что процесс, в который мы загружаемся, будет искать эти экспортные функции и не будет беспокоиться о наличии DLLMain.

Пример двоичного файла

После

KnownDLLs

KnownDLLs — это список DLL, загружаемых Windows во время запуска системы. Поскольку эти DLL считаются важными для работы операционной системы, они кэшируются, чтобы сократить время загрузки и повысить производительность при запуске приложений. KnownDLLs включает такие DLL, как kernel32.dll, kernelbase.dll и ntdll.dll.

Используя эти KnownDLLs, ScareCrow отображает копию DLL из \KnownDlls\<dllname>, используя комбинацию NtOpenSection и NtMapViewOfSection, чтобы загрузить её в память процесса. ScareCrow не загружает всю DLL, а только секцию .text DLL (так как она содержит все системные вызовы). Затем ScareCrow использует непрямые системные вызовы для вызова NtProtectVirtualMemory и изменения разрешений секции памяти .text DLL, чтобы разрешить ScareCrow перезаписать хуки EDR, прежде чем восстановить разрешения.

Для получения дополнительной информации вы можете прочитать подробную статью от modexp.

После удаления хуков ScareCrow использует пользовательские системные вызовы для загрузки и выполнения шелл-кода в памяти. ScareCrow делает это даже после удаления хуков EDR, чтобы избежать обнаружения инструментами сбора телеметрии, не основанными на пользовательском пространстве и хуках, такими как Event Tracing for Windows (ETW) или другими механизмами регистрации событий. Эти пользовательские системные вызовы также используются для выполнения вызова VirtualProtect для удаления хуков, размещённых EDR, как описано выше, чтобы избежать обнаружения анти-поддельными средствами EDR. Это делается путём вызова пользовательской версии системного вызова VirtualProtect, NtProtectVirtualMemory. ScareCrow использует Golang для создания этих загрузчиков, а затем ассемблер для этих пользовательских функций системных вызовов.

В процессе создания загрузчика ScareCrow использует библиотеку для маскировки под фон после того, как бекон (beacon) связывается с домом. Эта библиотека делает две вещи:

Файлы, подписанные сертификатами подписи кода, часто подвергаются меньшей проверке, что упрощает их выполнение без проблем, поскольку файлы, подписанные доверенным именем, часто вызывают меньше подозрений, чем другие. Большинство антивирусных продуктов не имеют времени на проверку и верификацию этих сертификатов (сейчас некоторые это делают, но обычно распространённые имена поставщиков включены в белый список). ScareCrow создаёт эти сертификаты, используя Go-пакетную версию инструмента limelighter для создания файла pfx12. Этот пакет принимает введённое пользователем доменное имя для создания сертификата подписи кода для этого домена. При необходимости вы также можете использовать свой собственный сертификат подписи кода, если он у вас есть, используя параметр командной строки valid.

  • ScareCrow также содержит возможность взять полную цепочку и все атрибуты из легитимного сертификата подписи кода из файла и скопировать их в другой файл. Это включает дату подписания, встречные подписи и другие измеримые атрибуты. Эта опция может использовать DLL или .exe файлы для копирования с использованием параметра командной строки clone вместе с путём к файлу, из которого вы хотите скопировать сертификат.

Соображения OpSec:

  При подписании загрузчика с использованием microsoft.com их использование против продуктов WINDOWS DEFENDER ATP может быть не столь эффективным, поскольку они могут проверить сертификат, так как он принадлежит им. Если вы используете загрузчик против продукта Windows, возможно, используйте другой домен.
  • Подделка атрибутов загрузчика: Это делается с помощью файлов syso, которые являются формой встроенных файлов ресурсов, которые при компиляции вместе с нашим загрузчиком изменяют атрибутивную часть скомпилированного кода. Перед созданием файла syso ScareCrow генерирует случайное имя файла (на основе типа загрузчика) для использования. После выбора это имя файла будет сопоставлено с соответствующими атрибутами для этого имени файла, обеспечивая правильное присвоение значений.

Пример атрибутов файла

С этими файлами и кодом Go ScareCrow кросскомпилирует их в DLL, используя опцию библиотеки c-shared. После компиляции DLL она обфусцируется в строку сломанного base64, которая будет встроена в файл. Это позволяет удалённо получать файл, получать к нему доступ и выполнять его программно.

Скачать инструмент