Операционка Windows даёт возможность зарегистрировать как службу любой исполняемый файл или скрипт для закрепления в системе и обеспечить стабильность восстановления в случае его завершения. Но не только добрые IT-специалисты пользуются этим удобством.
Злоумышленники в своих атаках применяют для решения этой задачи легитимные утилиты, например NSSM, SRVANY из набора Microsoft Windows Resource Kit, или SRVANY-NG. Такие утилиты регистрируются в системе в качестве сервиса и берут на себя роль управления запуском, привилегиями, зависимостями и восстановлением исполняемого файла.
Эти утилиты имеют ещё одну приятную особенность для атакующих: они позволяют скрыть целевой исполняемый файл или выполняемую команду в событии создания службы в журналах Windows – и тем самым потенциально обойти детектирование со стороны SOC.

Что делать со стороны защиты? Чтобы задетектировать целевой файл запуска, необходимо мониторить не только события создания сервисов, но и ключи реестра, связанные с параметрами сервисов. Они расположены в таких папках:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services%Имя Сервиса%\Parameters \HKEY_LOCAL_MACHINE\SYSTEM\ControlSet???\Services%Имя Сервиса%\Parameters
В ключах Application, AppParameters и AppDirectory содержится путь к целевому исполняемому файлу и его параметры запуска:

Для сценария с использованием NSSM также актуально мониторить регистрацию источника событий в eventlog – за счёт появления ветки реестра:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\NSSM Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet???\Services\EventLog\Application\NSSM
Кроме того, об использовании утилиты NSSM на узле свидетельствует появление событий в журнале Application от источника nssm:
