У вас есть учетные данные локального администратора, но вам мешает EDR (Endpoint Detection and Response)? Отключение или прямые системные вызовы не работают против EDR? В это статье я познакомлю вас с инструментом, с помощью которого можно убить защищенный процесс системы обнаружения атак EDR.
Еще по теме: Как принудительное завершить сторонние процессы Windows
Backstab — это инструмент, способный завершать защищенные процессы, с помощью драйвера Process Explorer (ProcExp) от sysinternals, подписанного Microsoft.
Как работает Backstab
ProcExp имеет подписанный драйвер ядра, который загружает при запуске, что позволяет ему уничтожать дескрипторы, которые нельзя убить даже с правами админа.
При использовании пользовательского интерфейса невозможно убить защищенный процесс, но вы можете убить его дескрипторы, потому что ProcExp UI инструктирует драйвер ядра уничтожить эти дескрипторы. Backstab делает то же самое, но без элемента пользовательского интерфейса.
Вот краткое изложение того, что происходит:
- Встроенный драйвер дропается на диск.
- Создается ключ реестра в
1HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services - Права SE_PRIVILEGE_ENABLED получены, для загрузки драйвера.
- Драйвер загружается с помощью NtLoadDriver, чтобы избежать создания службы.
- Созданный ключ реестра удаляется (служба не отображается во время выполнения).
- Связь с драйвером осуществляется через DeviceIoControl.
- Для перечисления дескрипторов вызывается NtQuerySystemInformation.
Как убить защищенный процесс с помощью Backstab
1 |
backstab.exe <-n name || -p PID> [options] |
- -n — выбрать процесс по имени, включая суффикс .exe
- -p — Выбрать процесс по PID
- -l — перечислить дескрипторы защищенного процесса
- -k — убить защищенный процесс, закрыв его дескрипторы
- -x — закрыть определенный дескриптор
- -d — указать путь к которому будет извлечен ProcExp
- -s — указать ключ реестра для имени службы
- -u — выгрузить драйвер ProcExp
- -a — добавляет SeDebugPrivilege
- -h — Распечатать это меню
Примеры использования Backstab:
1 2 3 4 |
backstab.exe -n cyserver.exe -k [убить cyserver] backstab.exe -n cyserver.exe -x E4C [Закрыть дескриптор E4C Cyserver] backstab.exe -n cyserver.exe -l [перечислить все дескрипторы Cyserver] backstab.exe -p 4326 -k -d c: \\ driver.sys [убить защищенный процесс с PID 4326, извлечь драйвер ProcExp на диск C: \] |
Скачать Backstab с GitHub.
От автора:
Хотя целью инструмента является перечисление и уничтожение ручек, возможности огромны. Можно дублировать дескрипторы вашего собственного процесса вместо их уничтожения. Это может позволить более глубокое вмешательство, когда вы пишете в файлы, запускаете события, удерживаете мьютексы.
Чтобы поддержать дальнейшие исследования, я попытался сделать код читабельным и разделить его на множество методов, чтобы облегчить повторное использование, я также оставил описание всех методов, связанных с ProcExp.
Не стесняйтесь обращаться ко мне в Twitter или по электронной почте.
Еще по теме: Как создать руткит для Linux с помощью LD_PRELOAD