Исследователи SpecterOps описали постэксплуатационную технику, которая включает Chrome DevTools Protocol (CDP) внутри уже работающего процесса Google Chrome или Microsoft Edge в Windows. Оператор получает доступ к cookie, истории, закладкам, расширениям, снимкам экрана, метаданным сохранённых паролей, автозаполненным логинам и паролям. Через браузер можно отправлять HTTP- и HTTPS-запросы, управлять вкладками и работать с действующими авторизованными сессиями. Это не удалённая атака и не новая уязвимость Chrome или Edge: злоумышленнику заранее нужны исполнение кода на компьютере, доступ к целевому процессу и совместимый запущенный браузер. Опубликованный Beacon Object File (BOF) рассчитан на x64. В репозитории не сказано, всегда ли требуются права администратора. The Hacker News запросило у SpecterOps уточнения о привилегиях и совместимости с актуальными версиями браузеров, пообещав обновить материал после ответа.

Главное отличие этой техники от обычной кражи файлов профиля в том, что работа идёт внутри живого браузера жертвы. Там остаются cookie, браузерное хранилище, корпоративная аутентификация, поведение WebAuthn, установленные расширения, особенности JavaScript, пользовательский агент и уже открытые сессии. Защита, мешающая воспроизвести украденный cookie на другом устройстве, в такой ситуации может не сработать по замыслу: запрос выполняет легитимный браузер на исходном компьютере. Злоумышленнику не обязательно переносить сессию наружу, если нужное действие можно совершить прямо в ней.
Google обсуждала кражу cookie через интерфейс отладки ещё в 2018 году. В публикации за март 2025 года компания сообщила: «После включения App-Bound Encryption мы увидели рост числа злоумышленников, использующих удалённую отладку Chrome для извлечения cookie». Начиная с Chrome 136, параметры --remote-debugging-port и --remote-debugging-pipe игнорируются, если относятся к стандартному каталогу данных Chrome. Они принимаются лишь вместе с нестандартным --user-data-dir, для которого применяется другой ключ шифрования. Так Google закрыла удобный путь к данным обычного профиля, но метод SpecterOps этот путь вообще не использует: сервер отладки запускается изнутри существующего chrome.exe или msedge.exe на порту, выбранном оператором.
Инструмент получил название CDP-Enable-BOF. Его основой стали работа DeathFlamingo об инъекции CDP в запущенный Microsoft Edge, опубликованная в декабре 2025 года, и исследование Cedric Van Bockhaven «Современный угон сессий с использованием DevTools Protocol» ("Modern Session Hijacking by Living off the DevTools Protocol"). BOF находит загруженный модуль chrome.dll либо msedge.dll, затем разрешает внутренние символы Chromium по маскированным сигнатурам байтов. В удалённой памяти размещаются два небольших исполняемых фрагмента и блок контекста, временно устанавливается удалённая оконная процедура, а завершающий вызов исполняется в потоке пользовательского интерфейса браузера.
Внутренняя функция StartRemoteDebuggingServer запускает CDP-сервер на запрошенном порту. Выполнение последней операции именно в UI-потоке повышает надёжность там, где вмешиваются Control Flow Guard (CFG), Thread Local Storage (TLS) и Control-flow Enforcement Technology (CET). Это довольно существенная техническая деталь: инъекция может выглядеть успешной, но сорваться из-за контекста потока или механизмов контроля переходов. SpecterOps выбрала путь, учитывающий внутреннее устройство Chromium, а не простое создание случайного удалённого потока.
После появления конечной точки CDP в дело вступает CDP-Toolkit. Набор инструментов напрямую общается с браузером, автоматизирует внутренние страницы Chromium WebUI, извлекает сведения и создаёт интерактивные каналы управления. Cookie запрашиваются методом Storage.getCookies из текущего состояния браузера; читать базу cookie с диска не требуется. История посещений, закладки, расширения, снимки экрана и метаданные сохранённых паролей доступны через CDP, отрисованные браузером страницы либо WebUI. Это обходится без классического разбора файлов профиля, а данные соответствуют тому, что браузер видит в данный момент.
Восстановление сохранённых паролей тоже опирается на штатное поведение Chrome и Edge. Инструментарий открывает подходящий адрес или инициирует сценарий автозаполнения для совпадающего источника, браузер подставляет сохранённые данные, после чего значения полей имени пользователя и пароля считываются через CDP. Прямой расшифровки базы паролей здесь нет. Для полного управления создаётся фоновая либо невидимая цель браузера: через неё доступны интерактивная трансляция экрана, управление страницей и проксирование HTTP/HTTPS-запросов с авторизацией жертвы.
В режиме screencast действия остаются внутри экземпляра Chrome или Edge на скомпрометированном компьютере. Сохраняются cookie, браузерное хранилище, корпоративная аутентификация, WebAuthn, расширения и специфичное для браузера выполнение JavaScript. Режим proxy отправляет внешние HTTP- и HTTPS-запросы через браузерные цели на том же узле. Они несут действующее состояние сессии и, когда CDP позволяет его получить, пользовательский агент браузера. В результате удалённый оператор взаимодействует с сайтом словно через браузер жертвы, хотя сетевые команды поступают извне.
С Chrome 146 пользователям Windows доступна защита Device Bound Session Credentials (DBSC). Она привязывает обновление сессии к аппаратно защищённому ключу и мешает продлевать украденные cookie на другом устройстве. SpecterOps не заявляла об извлечении закрытого ключа DBSC. Подход другой: операция проходит через уже авторизованный браузер на заражённой машине, поэтому ограничение на воспроизведение сессии вне устройства может попросту не включиться. Сходная логика объясняет интерес атакующих к CDP после внедрения App-Bound Encryption: чем сложнее вынести секрет из профиля, тем привлекательнее управление программой, которая уже умеет этим секретом пользоваться.
Практическая работоспособность BOF привязана к версиям Chromium. Для поиска внутренних функций применяются версионно-зависимые маскированные байтовые сигнатуры; очередное обновление способно изменить шаблоны и сломать разрешение символов. Как The Hacker News подтвердило через GitHub 14 августа, публичный BOF был протестирован с Chrome 147.0.7727.102; отдельный фрагмент исходного текста «0.7727.102 as tested» выглядит как обрезанное или продублированное указание той же сборки. Для Edge в репозитории значится 147.0.3912.98. Между тем 22 июля Google перевела Chrome 151.0.7922.47/.48 в канал Early Stable для небольшой доли пользователей Windows и macOS, а 10 августа вышел Edge 151.0.4129.78, который по состоянию на 14 августа был последней стабильной сборкой. Скрипты для получения новых сигнатур в проекте есть, но работа комплектных шаблонов с Chrome 151 и Edge 151 не подтверждена.
Защитникам SpecterOps советует искать признаки инъекции в chrome.exe и msedge.exe. В Microsoft Sysmon полезен Event ID 8 — CreateRemoteThread, фиксирующий создание одним процессом потока внутри другого; Microsoft прямо относит такое поведение к возможным признакам внедрения кода. Event ID 10 — ProcessAccess показывает открытие одного процесса другим и способен обнаружить подозрительный доступ к Chrome или Edge. Этот источник даёт много событий, поэтому его обычно настраивают с фильтрами, исключающими штатные обращения. Следить стоит за сочетанием доступа к процессу, удалённой памятью, потоком или оконной процедурой и внезапно появившимся CDP-портом.
Windows-техника SpecterOps была описана через день после раскрытия AmnesiaStealer для macOS. Его компонент stream_module предоставляет скрытое интерактивное управление Chromium через CDP. По данным Jamf Threat Labs, оператор может вводить текст с клавиатуры, двигать мышь, прокручивать страницы, переходить по адресам и управлять вкладками; во время анализа модуль также экспортировал cookie в открытом виде. Разница в реализации заметна: AmnesiaStealer использует отдельный модуль скрытого управления браузером на macOS, тогда как CDP-Enable-BOF внедряется в уже работающий x64-процесс Chrome или Edge жертвы в Windows и открывает его существующий авторизованный контекст.[/final]

Изображение носит иллюстративный характер
Главное отличие этой техники от обычной кражи файлов профиля в том, что работа идёт внутри живого браузера жертвы. Там остаются cookie, браузерное хранилище, корпоративная аутентификация, поведение WebAuthn, установленные расширения, особенности JavaScript, пользовательский агент и уже открытые сессии. Защита, мешающая воспроизвести украденный cookie на другом устройстве, в такой ситуации может не сработать по замыслу: запрос выполняет легитимный браузер на исходном компьютере. Злоумышленнику не обязательно переносить сессию наружу, если нужное действие можно совершить прямо в ней.
Google обсуждала кражу cookie через интерфейс отладки ещё в 2018 году. В публикации за март 2025 года компания сообщила: «После включения App-Bound Encryption мы увидели рост числа злоумышленников, использующих удалённую отладку Chrome для извлечения cookie». Начиная с Chrome 136, параметры --remote-debugging-port и --remote-debugging-pipe игнорируются, если относятся к стандартному каталогу данных Chrome. Они принимаются лишь вместе с нестандартным --user-data-dir, для которого применяется другой ключ шифрования. Так Google закрыла удобный путь к данным обычного профиля, но метод SpecterOps этот путь вообще не использует: сервер отладки запускается изнутри существующего chrome.exe или msedge.exe на порту, выбранном оператором.
Инструмент получил название CDP-Enable-BOF. Его основой стали работа DeathFlamingo об инъекции CDP в запущенный Microsoft Edge, опубликованная в декабре 2025 года, и исследование Cedric Van Bockhaven «Современный угон сессий с использованием DevTools Protocol» ("Modern Session Hijacking by Living off the DevTools Protocol"). BOF находит загруженный модуль chrome.dll либо msedge.dll, затем разрешает внутренние символы Chromium по маскированным сигнатурам байтов. В удалённой памяти размещаются два небольших исполняемых фрагмента и блок контекста, временно устанавливается удалённая оконная процедура, а завершающий вызов исполняется в потоке пользовательского интерфейса браузера.
Внутренняя функция StartRemoteDebuggingServer запускает CDP-сервер на запрошенном порту. Выполнение последней операции именно в UI-потоке повышает надёжность там, где вмешиваются Control Flow Guard (CFG), Thread Local Storage (TLS) и Control-flow Enforcement Technology (CET). Это довольно существенная техническая деталь: инъекция может выглядеть успешной, но сорваться из-за контекста потока или механизмов контроля переходов. SpecterOps выбрала путь, учитывающий внутреннее устройство Chromium, а не простое создание случайного удалённого потока.
После появления конечной точки CDP в дело вступает CDP-Toolkit. Набор инструментов напрямую общается с браузером, автоматизирует внутренние страницы Chromium WebUI, извлекает сведения и создаёт интерактивные каналы управления. Cookie запрашиваются методом Storage.getCookies из текущего состояния браузера; читать базу cookie с диска не требуется. История посещений, закладки, расширения, снимки экрана и метаданные сохранённых паролей доступны через CDP, отрисованные браузером страницы либо WebUI. Это обходится без классического разбора файлов профиля, а данные соответствуют тому, что браузер видит в данный момент.
Восстановление сохранённых паролей тоже опирается на штатное поведение Chrome и Edge. Инструментарий открывает подходящий адрес или инициирует сценарий автозаполнения для совпадающего источника, браузер подставляет сохранённые данные, после чего значения полей имени пользователя и пароля считываются через CDP. Прямой расшифровки базы паролей здесь нет. Для полного управления создаётся фоновая либо невидимая цель браузера: через неё доступны интерактивная трансляция экрана, управление страницей и проксирование HTTP/HTTPS-запросов с авторизацией жертвы.
В режиме screencast действия остаются внутри экземпляра Chrome или Edge на скомпрометированном компьютере. Сохраняются cookie, браузерное хранилище, корпоративная аутентификация, WebAuthn, расширения и специфичное для браузера выполнение JavaScript. Режим proxy отправляет внешние HTTP- и HTTPS-запросы через браузерные цели на том же узле. Они несут действующее состояние сессии и, когда CDP позволяет его получить, пользовательский агент браузера. В результате удалённый оператор взаимодействует с сайтом словно через браузер жертвы, хотя сетевые команды поступают извне.
С Chrome 146 пользователям Windows доступна защита Device Bound Session Credentials (DBSC). Она привязывает обновление сессии к аппаратно защищённому ключу и мешает продлевать украденные cookie на другом устройстве. SpecterOps не заявляла об извлечении закрытого ключа DBSC. Подход другой: операция проходит через уже авторизованный браузер на заражённой машине, поэтому ограничение на воспроизведение сессии вне устройства может попросту не включиться. Сходная логика объясняет интерес атакующих к CDP после внедрения App-Bound Encryption: чем сложнее вынести секрет из профиля, тем привлекательнее управление программой, которая уже умеет этим секретом пользоваться.
Практическая работоспособность BOF привязана к версиям Chromium. Для поиска внутренних функций применяются версионно-зависимые маскированные байтовые сигнатуры; очередное обновление способно изменить шаблоны и сломать разрешение символов. Как The Hacker News подтвердило через GitHub 14 августа, публичный BOF был протестирован с Chrome 147.0.7727.102; отдельный фрагмент исходного текста «0.7727.102 as tested» выглядит как обрезанное или продублированное указание той же сборки. Для Edge в репозитории значится 147.0.3912.98. Между тем 22 июля Google перевела Chrome 151.0.7922.47/.48 в канал Early Stable для небольшой доли пользователей Windows и macOS, а 10 августа вышел Edge 151.0.4129.78, который по состоянию на 14 августа был последней стабильной сборкой. Скрипты для получения новых сигнатур в проекте есть, но работа комплектных шаблонов с Chrome 151 и Edge 151 не подтверждена.
Защитникам SpecterOps советует искать признаки инъекции в chrome.exe и msedge.exe. В Microsoft Sysmon полезен Event ID 8 — CreateRemoteThread, фиксирующий создание одним процессом потока внутри другого; Microsoft прямо относит такое поведение к возможным признакам внедрения кода. Event ID 10 — ProcessAccess показывает открытие одного процесса другим и способен обнаружить подозрительный доступ к Chrome или Edge. Этот источник даёт много событий, поэтому его обычно настраивают с фильтрами, исключающими штатные обращения. Следить стоит за сочетанием доступа к процессу, удалённой памятью, потоком или оконной процедурой и внезапно появившимся CDP-портом.
Windows-техника SpecterOps была описана через день после раскрытия AmnesiaStealer для macOS. Его компонент stream_module предоставляет скрытое интерактивное управление Chromium через CDP. По данным Jamf Threat Labs, оператор может вводить текст с клавиатуры, двигать мышь, прокручивать страницы, переходить по адресам и управлять вкладками; во время анализа модуль также экспортировал cookie в открытом виде. Разница в реализации заметна: AmnesiaStealer использует отдельный модуль скрытого управления браузером на macOS, тогда как CDP-Enable-BOF внедряется в уже работающий x64-процесс Chrome или Edge жертвы в Windows и открывает его существующий авторизованный контекст.[/final]