В некоторых случаях администратору нужно определить какой процесс (программа) или пользователь изменил NTFS права доступа на папку или файл на файловом сервере Windows. В этой статье мы покажем, как отслеживать изменения NTFS разрешений на объектах файловой систем с помощью полит аудита, скриптов PowerShell и утилиты ProcMon.
Чтобы отслеживать изменения NTFS разрешений на объекты файловой системы Windows, вам нужно настроить политику аудита.
gpedit.msc
). Если нужно настроить аудит на нескольких устройствах в домене (например, на всех файловых серверах), нужно создать отдельную GPO с помощью консоли Group Policy Management ( gpmc.msc
); gpupdate /force
Если кто-то изменил NTFS права на объекты в указанной папке, в журнале Security появится событий с EventID 4670.
Откройте консоль Event Viewer ( eventvwr.msc
) -> Windows Logs -> Security. Включите фильтр по событию с ID 4670 ( Permissions on an object were changed
). Откройте последнее событие.
В описании события видно имя пользователя, которые изменил разрешения (Account Name:) и имя процесса ( C:Windowsexplorer.exe
). В описании события видна информация о предыдущих разрешениях (Original Security Descriptor) и новый список доступа (New Security Descriptor).
Обратите внимание что разрешения указаны в формате DACL, и сложны для понимания.Для преобразования строки в формате Security Descriptor Definition Language в объект PSCustomObject нужно использовать встроенный PowerShell командлет ConvertFrom-SddlString .
Чтобы увидеть, какие группы доступа были изменение в NTFS разрешениях на объект, нужно сравнить старый и новый дескрипторы безопасности (скопируйте код SDDL из события 4670):
$oldperm=ConvertFrom-SddlString "D:PAI(A;OICIIO;FA;;;CO)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;S-1-5-21-1774357850-3643260196-2143367957-1125)(A;OICI;0x1301bf;;;S-1-5-21-1774357850-3643260196-2143367957-1124)"
$newperm=ConvertFrom-SddlString "D:PARAI(A;OICIIO;FA;;;CO)(A;OICI;FA;;;SY)(A;OICI;0x1301bf;;;S-1-5-21-1774357850-3643260196-2143367957-1124)(A;OICI;0x1200a9;;;S-1-5-21-1774357850-3643260196-2143367957-1125)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)"
Compare-Object -ReferenceObject $oldperm.DiscretionaryAcl -DifferenceObject $newperm.DiscretionaryAcl|FL
В данном примере видно, что в новом ACL были добавлены права чтения для группы BuiltinUsers
.
Для поиска в журнале событий Windows можно использовать PowerShell командлет Get-WinEvent . Чтобы найти событий с Event ID 4670 и получить значения OldSd и NewSD из кода скрипта, можно использовать такой код:
$event=Get-WinEvent -FilterHashtable @{logname='Security';id=4670} -MaxEvents 1
[xml]$xmlevent = $event.ToXml()
$eventobj = New-Object System.Management.Automation.PSObject
$eventobj | Add-Member Noteproperty -Name $xmlevent.Event.EventData.Data[1].name -Value $xmlevent.Event.EventData.Data[1].'#text'
$eventobj | Add-Member Noteproperty -Name $xmlevent.Event.EventData.Data[8].name -Value $xmlevent.Event.EventData.Data[8].'#text'
$eventobj | Add-Member Noteproperty -Name $xmlevent.Event.EventData.Data[9].name -Value $xmlevent.Event.EventData.Data[9].'#text'
$eventobj|format-list
Если вам нужно только понять, какой процесс и пользователь меняют NTFS разрешения на папку, можно воспользоваться утилитой Process Monitor ( https://learn.microsoft.com/en-us/sysinternals/downloads/procmon ). Она позволит в реальном времени найти источник изменений.
procmon64.exe
; CTRL+S
)Path -> begin with -> укажите путь к папке ->IncludeOperation -> is -> SetSecurityFile -> Include Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…