Windows: Скрипт-аудитор "кто имеет доступ?". Ищем "дыры" в NTFS-правах
Вы "расшарили" папку \\filesrv01\Sales. Спустя год в ее 50-ти подпапках права превратились в "паутину". Вы не знаете, у кого на самом деле есть Full Control.
Реакция админа: "Работает — не трогай". Реакция архитектора: Запустить рекурсивный аудит и найти все "опасные" права.
Этот PowerShell-скрипт — ваш аудитор. Он рекурсивно просканирует папку и найдет все явные (не-наследованные) права, выданные "Всем" (Everyone) или "Прошедшим проверку" (Authenticated Users).
Код скрипта:
PowerShell
Взгляд архитектора: Это — аудит принципа наименьших привилегий (PoLP). Вы не "верите", что права в порядке, вы проверяете. Этот скрипт — основа для ежемесячной проверки файловых шар на соответствие политикам безопасности.
#windows #powershell #security #ntfs #audit #скрипты #sysadmin
Вы "расшарили" папку \\filesrv01\Sales. Спустя год в ее 50-ти подпапках права превратились в "паутину". Вы не знаете, у кого на самом деле есть Full Control.
Реакция админа: "Работает — не трогай". Реакция архитектора: Запустить рекурсивный аудит и найти все "опасные" права.
Этот PowerShell-скрипт — ваш аудитор. Он рекурсивно просканирует папку и найдет все явные (не-наследованные) права, выданные "Всем" (Everyone) или "Прошедшим проверку" (Authenticated Users).
Код скрипта:
PowerShell
[CmdletBinding()]
param (
[string]$TargetFolder = "C:\Shares\Sales",
# Ищем эти "опасные" группы
[string[]]$DangerousPrincipals = @("Everyone", "Authenticated Users")
)
Write-Host "--- Начинаю аудит NTFS-прав в $TargetFolder ---" -ForegroundColor Cyan
# Получаем все папки рекурсивно
$Folders = Get-ChildItem -Path $TargetFolder -Recurse -Directory
$Report = foreach ($Folder in $Folders) {
# Получаем ACL (список доступа)
$Acl = Get-Acl -Path $Folder.FullName
foreach ($AccessRule in $Acl.Access) {
# Нас интересуют только ЯВНЫЕ (не наследованные) права
if ($AccessRule.IsInherited -eq $false) {
# Проверяем, есть ли группа в нашем "опасном" списке
if ($DangerousPrincipals -contains $AccessRule.IdentityReference.Value) {
[PSCustomObject]@{
Path = $Folder.FullName
User = $AccessRule.IdentityReference
Permissions = $AccessRule.FileSystemRights
Status = "DANGEROUS_EXPLICIT_PERM"
}
}
}
}
}
if ($Report) {
Write-Host "`n[!!!] ОБНАРУЖЕНЫ ОПАСНЫЕ ЯВНЫЕ ПРАВА:" -ForegroundColor Red
$Report | Format-Table
} else {
Write-Host "`n[OK] Опасных явных прав не найдено." -ForegroundColor Green
}
Взгляд архитектора: Это — аудит принципа наименьших привилегий (PoLP). Вы не "верите", что права в порядке, вы проверяете. Этот скрипт — основа для ежемесячной проверки файловых шар на соответствие политикам безопасности.
#windows #powershell #security #ntfs #audit #скрипты #sysadmin
🔥2
🛡️ Windows: Скрипт-аудит "Кто удалил файл?" (NTFS Forensics)
Боль: Критический файл в \\Shares\Data исчез. Бизнес в панике. "Кто это сделал и когда?!"
Реакция админа: "Я восстановлю из бэкапа" (но не знает, почему это случилось).
Реакция архитектора: "Я настрою аудит и найду виновного за 30 секунд".
Это двухэтапный процесс: сначала "взводим ловушку", потом "ловим".
Шаг 1: "Взвести ловушку" (Включить аудит на папке): (Это нужно сделать до инцидента)
(Также включите "Audit Object Access" в GPO)
Шаг 2: Скрипт-охотник (Когда инцидент произошел): Этот скрипт найдет в логах Security событие 4663 (Попытка доступа к объекту) с Accesses: ...Delete...
Взгляд архитектора: Вы переходите от "надежды" к "доказательствам". Это основа Форензики (Digital Forensics) и Incident Response (IR).
#windows #powershell #security #audit #ntfs #скрипты #гайд
Боль: Критический файл в \\Shares\Data исчез. Бизнес в панике. "Кто это сделал и когда?!"
Реакция админа: "Я восстановлю из бэкапа" (но не знает, почему это случилось).
Реакция архитектора: "Я настрою аудит и найду виновного за 30 секунд".
Это двухэтапный процесс: сначала "взводим ловушку", потом "ловим".
Шаг 1: "Взвести ловушку" (Включить аудит на папке): (Это нужно сделать до инцидента)
# 1. Получаем ACL папки
$Acl = Get-Acl "C:\Shares\Data"
# 2. Создаем правило аудита: "Следить за 'Delete' и 'DeleteSubtree' для 'Everyone'"
$AuditRule = New-Object System.Security.AccessControl.FileSystemAuditRule(
"Everyone",
"Delete, DeleteSubtreeAndFiles",
"None",
"None",
"Success, Failure"
)
# 3. Добавляем правило в ACL и применяем
$Acl.AddAuditRule($AuditRule)
Set-Acl -Path "C:\Shares\Data" -AclObject $Acl
(Также включите "Audit Object Access" в GPO)
Шаг 2: Скрипт-охотник (Когда инцидент произошел): Этот скрипт найдет в логах Security событие 4663 (Попытка доступа к объекту) с Accesses: ...Delete...
Write-Host "--- Ищу событие удаления файла в C:\Shares\Data ---"
Get-WinEvent -FilterHashtable @{
LogName = "Security";
ID = 4663
} | ForEach-Object {
# 'Object Name' - это 6-е свойство, 'Accesses' - 9-е
$ObjectName = $_.Properties[6].Value
$Accesses = $_.Properties[9].Value
# Проверяем, что это наша папка И это было удаление
if ($ObjectName -like "*C:\Shares\Data*" -and $Accesses -match "Delete") {
[PSCustomObject]@{
Time = $_.TimeCreated
User = $_.Properties[1].Value
Process = $_.Properties[13].Value
Object = $ObjectName
}
}
}
Взгляд архитектора: Вы переходите от "надежды" к "доказательствам". Это основа Форензики (Digital Forensics) и Incident Response (IR).
#windows #powershell #security #audit #ntfs #скрипты #гайд
🟥 WizTree: Увидеть всё, что скрыто
Диск
Старый
Он не сканирует файлы по одному (как Проводник). Он читает напрямую MFT (Master File Table) файловой системы NTFS.
Результат: Сканирование диска на 1 ТБ занимает 2 секунды.
Визуализация (Treemap): Вы видите карту диска из цветных прямоугольников.
* Большой квадрат = Большой файл.
* Вы сразу видите "сироту" — файл подкачки
Удалять можно прямо из интерфейса. Лучший инструмент для быстрой очистки.
#windows #storage #wiztree #ntfs #troubleshooting #visualization #tools
Диск
C: переполнен. Windows показывает красную полоску. Что именно сожрало место? Папка WinSxS ? Кэш Docker? Или пользователь загрузил 50 ГБ фоток на рабочий стол?Старый
WinDirStat работает вечность. Используйте WizTree.Он не сканирует файлы по одному (как Проводник). Он читает напрямую MFT (Master File Table) файловой системы NTFS.
Результат: Сканирование диска на 1 ТБ занимает 2 секунды.
Визуализация (Treemap): Вы видите карту диска из цветных прямоугольников.
* Большой квадрат = Большой файл.
* Вы сразу видите "сироту" — файл подкачки
pagefile.sys или забытый ISO-образ.Удалять можно прямо из интерфейса. Лучший инструмент для быстрой очистки.
#windows #storage #wiztree #ntfs #troubleshooting #visualization #tools