Загрузка данных


# 1. Исправление параметров реестра (Локальные политики)
Write-Host "Применение политик безопасности реестра..." -ForegroundColor Cyan

$registryFixes = @(
    # Запрет анонимного перечисления учетных записей SAM и общих ресурсов
    @{Path="HKLM:\SYSTEM\CurrentControlSet\Control\Lsa"; Name="RestrictAnonymous"; Value=1; Type="DWord"},
    # Порог блокировки компьютера (MaxDevicePasswordFailedAttempts)
    @{Path="HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System"; Name="MaxDevicePasswordFailedAttempts"; Value=10; Type="DWord"},
    # Заголовок и текст сообщения при интерактивном входе (Wazuh требует их наличия)
    @{Path="HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"; Name="legalnoticecaption"; Value="Warning"; Type="String"},
    @{Path="HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"; Name="legalnoticetext"; Value="Authorized Access Only"; Type="String"},
    # Ограничение количества кэшированных входов (до 4)
    @{Path="HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"; Name="CachedLogonsCount"; Value="4"; Type="String"},
    # Блокировка рабочей станции при извлечении смарт-карты
    @{Path="HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon"; Name="ScRemoveOption"; Value="1"; Type="String"}
)

foreach ($fix in $registryFixes) {
    if (-not (Test-Path $fix.Path)) {
        New-Item -Path $fix.Path -Force | Out-Null
    }
    Set-ItemProperty -Path $fix.Path -Name $fix.Name -Value $fix.Value -Type $fix.Type -Force
}

# 2. Отключение уязвимых и ненужных системных служб
Write-Host "Отключение небезопасных системных служб..." -ForegroundColor Cyan

$servicesToDisable = @(
    "BTAGService", "bthserv",           # Bluetooth
    "MapsBroker", "lfsvc",              # Карты и геолокация
    "lltdsvc", "PNRPsvc", "p2psvc",     # Peer-to-peer сети и топологии
    "p2pimsvc", "PNRPAutoReg", 
    "Spooler",                          # Диспетчер печати (закрывает PrintNightmare)
    "wercplsupport", "WerSvc",          # Телеметрия и отчеты об ошибках
    "RasAuto", "SessionEnv",            # Службы удаленного доступа и RDP (если не используется)
    "TermService", "UmRdpService", 
    "RpcLocator", "LanmanServer",       # Устаревшие протоколы
    "SSDPSRV", "upnphost",              # UPnP
    "Wecsvc", "WMPNetworkSvc",          # Общий доступ Windows Media
    "icssvc", "WpnService",             # Мобильный хот-спот и Push-уведомления
    "PushToInstall", "MSiSCSI"          # iSCSI и удаленная установка приложений
)

foreach ($svc in $servicesToDisable) {
    $svcPath = "HKLM:\SYSTEM\CurrentControlSet\Services\$svc"
    if (Test-Path $svcPath) {
        # Значение Start = 4 означает "Отключено" (Disabled)
        Set-ItemProperty -Path $svcPath -Name "Start" -Value 4 -Type DWord -Force
    }
}

Write-Host "Готово! Все настройки применены успешно." -ForegroundColor Green
Write-Host "Пожалуйста, ПЕРЕЗАГРУЗИТЕ КОМПЬЮТЕР, а затем проверьте результат в Wazuh." -ForegroundColor Yellow