🛡️ Windows (Security): Аудит UAC. "Почему админ нажимает 'Да'?"
Боль: Вы настроили LAPS, убрали права. Но UAC (User Account Control) — это "внутренний файрвол" Windows, который останавливает 90% атак с повышением привилегий. И многие админы его отключают или ослабляют до "тихого" режима, потому что он "мешает".
Реакция админа: "Я просто нажму 'Да', я же админ".
Реакция архитектора: "Я принудительно включу безопасный UAC через GPO и буду аудировать тех, кто его отключает".
Этот PowerShell-скрипт — ваш аудитор. Он проверит критически важные ключи реестра UAC на списке машин.
Код скрипта:
Взгляд архитектора: Отключение UAC (EnableLUA = 0) — это не "удобство", это приглашение для mimikatz и шифровальщиков. Этот скрипт — ваш первый шаг к Security Baseline (базовому уровню безопасности).
#windows #powershell #security #uac #audit #скрипты #sysadmin
Боль: Вы настроили LAPS, убрали права. Но UAC (User Account Control) — это "внутренний файрвол" Windows, который останавливает 90% атак с повышением привилегий. И многие админы его отключают или ослабляют до "тихого" режима, потому что он "мешает".
Реакция админа: "Я просто нажму 'Да', я же админ".
Реакция архитектора: "Я принудительно включу безопасный UAC через GPO и буду аудировать тех, кто его отключает".
Этот PowerShell-скрипт — ваш аудитор. Он проверит критически важные ключи реестра UAC на списке машин.
Код скрипта:
[CmdletBinding()]
param (
[string[]]$ComputerNames = @("SERVER01", "WKS-01")
)
$UAC_Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
$Report = @()
foreach ($Server in $ComputerNames) {
Write-Host "Проверяю UAC на $Server..."
if (-not (Test-Connection -ComputerName $Server -Count 1 -Quiet)) {
$Report += [PSCustomObject]@{ ComputerName = $Server; Status = "НЕДОСТУПЕН" }
continue
}
try {
$RegKey = Get-ItemProperty -Path $UAC_Path -ComputerName $Server -ErrorAction Stop
$Report += [PSCustomObject]@{
ComputerName = $Server
Status = "OK"
# 1 = Включен (Хорошо)
EnableLUA = $RegKey.EnableLUA
# 2 = "Prompt for consent on the secure desktop" (Лучший)
# 5 = "Prompt for consent" (Нормально)
# 0 = "Elevate without prompting" (КРИТИЧЕСКАЯ УЯЗВИМОСТЬ)
ConsentPromptBehaviorAdmin = $RegKey.ConsentPromptBehaviorAdmin
}
}
catch {
$Report += [PSCustomObject]@{ ComputerName = $Server; Status = "ОШИБКА ДОСТУПА" }
}
}
Write-Host "`n--- РЕЗУЛЬТАТ АУДИТА UAC ---"
$Report | Format-Table
Write-Host "[!] 'EnableLUA = 0' или 'ConsentPromptBehaviorAdmin = 0' — это дыра в безопасности!" -ForegroundColor Red
Взгляд архитектора: Отключение UAC (EnableLUA = 0) — это не "удобство", это приглашение для mimikatz и шифровальщиков. Этот скрипт — ваш первый шаг к Security Baseline (базовому уровню безопасности).
#windows #powershell #security #uac #audit #скрипты #sysadmin