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

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

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

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

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

Категории

Все категории
Loading categories
PhantomCtx — Инструмент обхода перехвата контекста активации | Kitploit
Инструменты/GitHubGitHub/r3xmax/phantomctx
Повышение привилегийЭксплуатацияПост-эксплуатацияRed TeamingРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubr3xmax/phantomctx

PhantomCtx

Инструмент обхода перехвата контекста активации

Репозиторий
3065283 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

PhantomCtx

PhantomCtx — это инструмент, автоматизирующий перехват контекста активации (Activation Context) с целью загрузки произвольной DLL в подавляющее большинство подписанных исполняемых файлов (например, Microsoft, Adobe, Mozilla).

Загрузчик представлен как современная альтернатива традиционному перехвату и подгрузке DLL (DLL Hijacking & Sideloading): в отличие от традиционных подходов, он не требует уязвимого бинарного файла. Метод может быть применён до тех пор, пока целевой исполняемый файл разрешает DLL через свою таблицу импорта (IAT) или, в худшем случае, через LoadLibrary без абсолютного пути.```c C:\PhantomCtx\x64>.\PhantomCtx.exe

            +----------------------------------+
            |         PhantomCtx v1.0          |
            +----------------------------------+

Usage: PhantomCtx.exe -m [MODE] [OPTIONS]

Modes: -m recon Displays information about the Activation Context DLL redirections of a running process or one to be spawned.

    -m spawn        Perform Activation Context Hijacking using an on-disk executable
                    (preferably a signed binary for OPSEC purposes).

    -m runtime      Perform Activation Context Hijacking on an already running process.
Для более глубокого погружения в то, как это работает внутри и как обходит агрессивные EDR-решения, ознакомьтесь с постом в [моём техническом блоге](https://rexmax.dev/posts/phantomctx-new-approach-to-activation-context-hijacking-for-edr-evasion/).

# Содержание

- [Внутренний механизм](#internal-mechanism)
  - [Новый метод перехвата контекста активации, ориентированный на обход EDR](#a-new-method-for-activation-context-hijacking-focused-on-edr-evasion)
- [Как скомпилировать](#how-to-compile)
- [Использование: модульный рабочий процесс](#usage-module-based-workflow)
  - [Разведка](#recon)
  - [Запуск (рекомендуется)](#spawn-recommended)
  - [Во время выполнения](#runtime)
- [Пример: перехват контекста активации + DLL-проксинг mpnotify.exe](#example-activation-context-hijacking--dll-proxying-mpnotifyexe)
- [Отказ от ответственности](#disclaimer)
- [Ссылки](#references)

# Внутренний механизм

`PhantomCtx` злоупотребляет **легитимной** функцией Windows, присутствующей в большинстве процессов, называемой **контексты активации**. Согласно Microsoft:

>[_Контексты активации_](https://learn.microsoft.com/en-us/windows/win32/sbscs/a-sbscs-gly) — это структуры данных в памяти, содержащие информацию, которую система может использовать для перенаправления приложения **на загрузку определённой версии DLL**, экземпляра COM-объекта или пользовательской версии окна...

Когда загрузчик Windows разрешает DLL (через `LoadLibrary` или таблицу импорта), он следует определённому порядку разрешения:

1. Перенаправление DLL
2. Наборы API
3. **Перенаправление манифеста SxS**
4. Список загруженных модулей
5. Известные DLL
6. Граф зависимостей пакетов процесса  
7 – 12. Стандартный порядок поиска файлов на диске

`PhantomCtx` нацелен на шаг 3: **перенаправление манифеста SxS**. Контексты активации создаются из [Side-by-Side](https://en.wikipedia.org/wiki/Side-by-side_assembly) (`.manifest`) файлов, связанных с исполняемыми файлами, обычно встроенных в PE-бинарники. Внутренне контекст активации содержит **оглавление (ToC)**, индексирующее несколько разделов, включая **раздел перенаправления DLL**. Загрузчик обычно обращается к контекстам активации через `PEB.ActivationContextData`.

Исследование [Куроша Даббага Эскаланте](https://github.com/Kudaes) показало, что вредоносный контекст активации можно создать с помощью `CreateActCtxW`, записать в память `RW` в целевой процесс, а затем активировать, перезаписывая `PEB.ActivationContextData` так, чтобы он указывал на сфабрикованную структуру.

После перехвата загрузчик разрешает перенаправления DLL, определённые в вредоносном контексте активации, **перенаправляя разрешение библиотек** на пути, контролируемые атакующим.

Загрузчик под названием `Eclipse`, разработанный в рамках его исследования, можно найти в [официальном репозитории](https://github.com/Kudaes/Eclipse).

## Новый метод перехвата контекста активации, ориентированный на обход EDR

После множества тестов `Eclipse` был обнаружен агрессивными EDR, такими как Elastic, в следующих точках:

- `Potential Suspended Process Code Injection`: создание приостановленного процесса с последующим `NtWriteVirtualMemory` для копирования AC-блобов в удалённый процесс.
- `Remote Process Memory Write by Low Reputation Module`: `NtWriteVirtualMemory` без `CreateProcess` в стеке вызовов и модуль с низкой репутацией, что необходимо для перезаписи `PEB.ActivationContextData`.
- `Remote Memory Write to Trusted Target Process`: `WriteProcessMemory` без `CreateProcess` в стеке вызовов, ограниченная системными/установленными пользователем бинарниками.

После одного дня исследований в поисках альтернативных подходов для реализации в `PhantomCtx` я обнаружил, что **область памяти исходного контекста активации является представлением раздела, отображаемым во время создания процесса**. Можно **отменить отображение этого представления раздела с помощью** `NtUnmapViewOfSection`, а затем создать новое представление раздела только для чтения, поддерживаемое нашим вредоносным контекстом активации, и отобразить его **по тому же самому адресу памяти**, где находился исходный.

В результате **больше нет необходимости** загрузчику перезаписывать указатель `PEB.ActivationContextData`. Это устраняет необходимость использования `NtAllocateVirtualMemory` и `NtWriteVirtualMemory`, обходя все правила мониторинга EDR, связанные с записью в память удалённого процесса и инъекцией.

Кроме того, для повышения сложности обнаружения `PhantomCtx` не использует `CreateActCtxW`, снимая необходимость работы с `.manifest` файлами во время атаки. В зависимости от выбранного режима он может **украсть контекст активации из другого удалённого процесса**, содержащего корректный раздел перенаправления DLL, с помощью `NtReadVirtualMemory`, реконструировать записи перенаправления DLL локально, пропатчить их, а затем заменить исходные.

# Как скомпилировать

Для компиляции инструмента рекомендуется использовать Visual Studio или совместимый компилятор.

Если вы используете VS, откройте `x64 Native Tools Command Prompt for VS`, перейдите в корневой каталог проекта и скомпилируйте с помощью `compile.bat`:```
C:\PhantomCtx>.\compile.bat
[INFO] Created output directory: x64
[INFO] Compiling PhantomCtx...
main.c
utils.c
recon.c
actctx.c
c_runtime.c
dynamic_resolution.c
process_utils.c
spawn.c
runtime.c
Generating Code...
[SUCCESSFUL] Build successful: x64\PhantomCtx.exe

Использование: Модульный рабочий процесс

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

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

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

Атака может быть выполнена либо на процесс, который будет запущен (рекомендуется), либо на уже работающий процесс. Инструмент предназначен для работы с обоими сценариями.```c C:\PhantomCtx\x64>.\PhantomCtx.exe

            +----------------------------------+
            |         PhantomCtx v1.0          |
            +----------------------------------+

Usage: PhantomCtx.exe -m [MODE] [OPTIONS]

Modes: -m recon Displays information about the Activation Context DLL redirections of a running process or one to be spawned.

    -m spawn        Perform Activation Context Hijacking using an on-disk executable
                    (preferably a signed binary for OPSEC purposes).
Скачать инструмент