Архив метки: SRP

Windows: Запретить удаление файла

В заметке «Ошибка Cannot dot-source this command because it was defined in a different language mode» я описал способ для избавления от этой ошибки. Она была связана с попыткой разработчиков реализовать защиту от выполнения вредоносного кода с помощью запуска скрипта из «Интегрированной среды сценариев». При запуске ISE она создавала в папке Temp два временных файла. Но, при активной защите SRP, эти скрипты блокировались, поэтому программа запускалась в режиме ограничения (ConstrainedLanguage).

В одном комментарии прочитал, что этот файл содержит лишь один символ (единицу) и вроде как можно создать хэш к этому файлу. Операция по созданию и удалению файла происходит очень быстро, поэтому я не успеваю заморозить процесс powershell_ise.exe и посмотреть содержимое файлов. Пришлось идти в обход…

1. Открываем папку C:\Users\<User>\AppData\Local\
2. Выделяем Temp и открываем её Свойства, потом переключаемся на вкладку «Безопасность»:
3. Теперь нажимаем кнопку «Advanced»:

4. Отключаем Наследование (нажимаем кнопку «Disable inheritance»:

5. Выбираем конвертирование разрешений

6. Теперь можно нажать кнопку «Edit», чтобы отредактировать разрешения:

7. Нажимаем «Show advanced permissions»:

8. разрешения на операцию удаления из папки:

Поскольку PowerShell ISE не может удалить файл из этой папки, можно увидеть его содержимое.

Создаётся сразу два файла:
C:\Users\Denis\AppData\Local\Temp\__PSScriptPolicyTest_m4yv4fhx.qge.psm1
И файл C:\Users\Denis\AppData\Local\Temp\___PSScriptPolicyTest_wcr4higt.w3a.ps1
Их содержимое будет одинаковым:

# PowerShell test file to determine AppLocker lockdown mode Вс, 14.04.19 19:34:45

И это нам не сильно поможет, т.к. хэш каждый раз всё равно будет разный из-за того, что в файл добавляется текущая дата и время. Т.о. мы НЕ СМОЖЕМ создать для SRP правило разрешающее выполнение этих файлов по хэшу!

Возвращаем разрешения на операцию удаления для папки Temp!
Если этого не сделать получим много проблем с разными приложениями.