От Запрета к Контролю: Харденинг Windows с AppLocker на Уровне Архитектора
В современных IT-инфраструктурах традиционные антивирусы и черные списки уже недостаточны. Они реагируют на известные угрозы, оставляя систему уязвимой для атак "нулевого дня". Настоящая безопасность начинается с проактивного контроля.
AppLocker — это не просто блокировщик .exe, а мощный фреймворк для реализации принципа наименьших привилегий на уровне приложений. В отличие от WDAC, AppLocker идеально подходит для гранулярного управления доступом для конкретных пользователей или групп, например, на терминальных серверах.
Шаг 1: Создание Базовой Политики в Режиме Аудита
Самая дорогая ошибка при внедрении AppLocker — немедленное включение блокирующих правил. Это почти гарантированно нарушит бизнес-процессы. Архитектурный подход начинается со сбора данных в безопасном "режиме аудита" (Audit mode). В этом режиме все действия лишь записываются в журнал, не влияя на работу пользователей.
План действий:
▪️ Убедитесь, что служба "Удостоверение приложения" (Application Identity) запущена и настроена на автозапуск. Без нее AppLocker не работает.
▪️ Через GPO перейдите в Computer Configuration > ... > AppLocker.
▪️ Для каждого типа правил (Executable, Script и т.д.) создайте правила по умолчанию (Default Rules). Они разрешают запуск всего из C:\Windows и C:\Program Files, что необходимо для работы ОС.
▪️ В свойствах AppLocker установите режим принуждения в "Audit only" для всех категорий.
Шаг 2: Архитектурный Подход к Исключениям через Группы AD
Управление исключениями через прямое редактирование GPO — негибко. Мощь AppLocker раскрывается при привязке правил к группам безопасности Active Directory. Это превращает статическую политику в динамическую систему управления доступом.
Сценарий: Заблокировать mmc.exe для всех, кроме системных администраторов.
❌ Неправильный подход: Создать правило "Deny" для "Everyone" и "Allow" для "Admins". Microsoft не рекомендует смешивать Deny и Allow для одного приложения.
✅ Правильный подход: Использовать только разрешающие правила. Мы создаем правило, которое разрешает запуск mmc.exe только членам специальной группы. Чтобы дать доступ, нужно просто добавить пользователя в группу, а не лезть в GPO.
Действия:
Создайте группу безопасности в AD:
PowerShell
В AppLocker (Executable Rules) создайте новое правило "Allow".
Укажите созданную группу SG_AppLocker_Allow_MMC.
В качестве условия выберите "Издатель" (Publisher) и укажите путь к mmc.exe. Это правило не сломается при обновлении файла, в отличие от хэша.
Шаг 3: Блокировка Microsoft Store и WinGet
Правила по умолчанию для упакованных приложений слишком разрешающие. Они позволяют любому пользователю устанавливать ПО из Microsoft Store.
План действий:
▪️ Удалите стандартное правило "Allow all signed packaged apps".
▪️ Создайте новое правило по издателю, разрешающее приложения только от CN=Microsoft Corporation.... Это позволит работать системным UWP-приложениям (Калькулятор, Фото), но заблокирует установку сторонних.
🔄 Заключение: От Политики к Процессу
Внедрение AppLocker — это не разовая настройка, а непрерывный процесс: аудит, анализ логов (Event Viewer > AppLocker), уточнение правил и только потом — переход в режим принудительного применения (Enforce rules). Регулярно просматривайте логи, чтобы адаптировать политики к новым легитимным приложениям.
#Security #Windows #AppLocker #BlueTeam #Hardening #GPO
В современных IT-инфраструктурах традиционные антивирусы и черные списки уже недостаточны. Они реагируют на известные угрозы, оставляя систему уязвимой для атак "нулевого дня". Настоящая безопасность начинается с проактивного контроля.
AppLocker — это не просто блокировщик .exe, а мощный фреймворк для реализации принципа наименьших привилегий на уровне приложений. В отличие от WDAC, AppLocker идеально подходит для гранулярного управления доступом для конкретных пользователей или групп, например, на терминальных серверах.
Шаг 1: Создание Базовой Политики в Режиме Аудита
Самая дорогая ошибка при внедрении AppLocker — немедленное включение блокирующих правил. Это почти гарантированно нарушит бизнес-процессы. Архитектурный подход начинается со сбора данных в безопасном "режиме аудита" (Audit mode). В этом режиме все действия лишь записываются в журнал, не влияя на работу пользователей.
План действий:
▪️ Убедитесь, что служба "Удостоверение приложения" (Application Identity) запущена и настроена на автозапуск. Без нее AppLocker не работает.
▪️ Через GPO перейдите в Computer Configuration > ... > AppLocker.
▪️ Для каждого типа правил (Executable, Script и т.д.) создайте правила по умолчанию (Default Rules). Они разрешают запуск всего из C:\Windows и C:\Program Files, что необходимо для работы ОС.
▪️ В свойствах AppLocker установите режим принуждения в "Audit only" для всех категорий.
Шаг 2: Архитектурный Подход к Исключениям через Группы AD
Управление исключениями через прямое редактирование GPO — негибко. Мощь AppLocker раскрывается при привязке правил к группам безопасности Active Directory. Это превращает статическую политику в динамическую систему управления доступом.
Сценарий: Заблокировать mmc.exe для всех, кроме системных администраторов.
❌ Неправильный подход: Создать правило "Deny" для "Everyone" и "Allow" для "Admins". Microsoft не рекомендует смешивать Deny и Allow для одного приложения.
✅ Правильный подход: Использовать только разрешающие правила. Мы создаем правило, которое разрешает запуск mmc.exe только членам специальной группы. Чтобы дать доступ, нужно просто добавить пользователя в группу, а не лезть в GPO.
Действия:
Создайте группу безопасности в AD:
PowerShell
New-ADGroup -Name "SG_AppLocker_Allow_MMC" -GroupScope Global
В AppLocker (Executable Rules) создайте новое правило "Allow".
Укажите созданную группу SG_AppLocker_Allow_MMC.
В качестве условия выберите "Издатель" (Publisher) и укажите путь к mmc.exe. Это правило не сломается при обновлении файла, в отличие от хэша.
Шаг 3: Блокировка Microsoft Store и WinGet
Правила по умолчанию для упакованных приложений слишком разрешающие. Они позволяют любому пользователю устанавливать ПО из Microsoft Store.
План действий:
▪️ Удалите стандартное правило "Allow all signed packaged apps".
▪️ Создайте новое правило по издателю, разрешающее приложения только от CN=Microsoft Corporation.... Это позволит работать системным UWP-приложениям (Калькулятор, Фото), но заблокирует установку сторонних.
🔄 Заключение: От Политики к Процессу
Внедрение AppLocker — это не разовая настройка, а непрерывный процесс: аудит, анализ логов (Event Viewer > AppLocker), уточнение правил и только потом — переход в режим принудительного применения (Enforce rules). Регулярно просматривайте логи, чтобы адаптировать политики к новым легитимным приложениям.
#Security #Windows #AppLocker #BlueTeam #Hardening #GPO
Windows Security: Как правильно заблокировать Microsoft Store через AppLocker
Доброе утро! Начинаем день с важного шага по усилению безопасности рабочих станций.
Одна из неочевидных «лазеек» в Windows — стандартные правила AppLocker для упакованных приложений (Packaged apps). По умолчанию они слишком разрешающие и позволяют любому пользователю устанавливать ПО из Microsoft Store, что открывает вектор для нежелательного ПО и потенциальных атак.
Давайте закроем эту дверь, оставив работать только необходимые системные приложения.
План действий:
❌ 1. Удаляем слишком общее правило
В политике AppLocker для Packaged App Rules найдите и удалите правило по умолчанию, которое называется (Default Rule) Allow all signed packaged apps.
✅ 2. Создаём точечное разрешающее правило
Вместо удаленного правила создайте новое, основанное на издателе (Publisher). Разрешите приложения только от Microsoft:
Издатель: CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Результат: После применения этой политики системные UWP-приложения (Калькулятор, Фотографии и т.д.) продолжат работать, но возможность установки сторонних приложений из Microsoft Store будет заблокирована.
🔄 От Политики к Процессу
Помните главный принцип работы с AppLocker: это не разовая настройка, а непрерывный процесс.
Аудит → Анализ логов → Уточнение правил → Принуждение
Регулярно просматривайте журналы событий AppLocker в режиме аудита, чтобы адаптировать политики к новым легитимным приложениям в вашей среде, прежде чем включать блокировку.
#Security #Windows #AppLocker #BlueTeam #Hardening #GPO
Доброе утро! Начинаем день с важного шага по усилению безопасности рабочих станций.
Одна из неочевидных «лазеек» в Windows — стандартные правила AppLocker для упакованных приложений (Packaged apps). По умолчанию они слишком разрешающие и позволяют любому пользователю устанавливать ПО из Microsoft Store, что открывает вектор для нежелательного ПО и потенциальных атак.
Давайте закроем эту дверь, оставив работать только необходимые системные приложения.
План действий:
❌ 1. Удаляем слишком общее правило
В политике AppLocker для Packaged App Rules найдите и удалите правило по умолчанию, которое называется (Default Rule) Allow all signed packaged apps.
✅ 2. Создаём точечное разрешающее правило
Вместо удаленного правила создайте новое, основанное на издателе (Publisher). Разрешите приложения только от Microsoft:
Издатель: CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Результат: После применения этой политики системные UWP-приложения (Калькулятор, Фотографии и т.д.) продолжат работать, но возможность установки сторонних приложений из Microsoft Store будет заблокирована.
🔄 От Политики к Процессу
Помните главный принцип работы с AppLocker: это не разовая настройка, а непрерывный процесс.
Аудит → Анализ логов → Уточнение правил → Принуждение
Регулярно просматривайте журналы событий AppLocker в режиме аудита, чтобы адаптировать политики к новым легитимным приложениям в вашей среде, прежде чем включать блокировку.
#Security #Windows #AppLocker #BlueTeam #Hardening #GPO
Windows & Security: Внедряем LAPS. Прощайте, одинаковые пароли локальных админов!
Использование одного и того же пароля для локального администратора на всех машинах — это огромная дыра в безопасности. Если злоумышленник его получает, он получает всю сеть (атака Pass-the-Hash).
LAPS (Local Administrator Password Solution) — это бесплатный инструмент от Microsoft, который решает эту проблему элегантно.
Как это работает:
Устанавливается агент на клиентские машины.
Агент генерирует уникальный, сложный пароль для встроенной учетной записи "Администратор".
Пароль сохраняется в атрибуте объекта-компьютера в Active Directory.
Пароль автоматически меняется по заданному расписанию (например, каждые 30 дней).
План внедрения (взгляд архитектора):
Расширение схемы AD:
На контроллере домена выполните из PowerShell: Update-AdmPwdADSchema. Это добавит два новых атрибута для хранения пароля и даты его смены.
Настройка прав доступа:
Выдайте права на чтение пароля только определённым группам (например, "Администраторы домена" или "Help Desk").
PowerShell
Развёртывание через GPO:
Создайте новую групповую политику.
В разделе Конфигурация компьютера → Политики → Административные шаблоны → LAPS включите политику "Enable local admin password management".
Через GPO также разверните MSI-пакет с агентом LAPS на все нужные компьютеры.
Получение пароля:
Используйте утилиту LAPS UI, которая идёт в комплекте, или PowerShell:
PowerShell
Результат: Вы централизованно управляете паролями, которые уникальны для каждой машины. Это не просто "удобство", это фундаментальное усиление безопасности вашей инфраструктуры.
#windows #security #laps #activedirectory #gpo #architect #гайд
Использование одного и того же пароля для локального администратора на всех машинах — это огромная дыра в безопасности. Если злоумышленник его получает, он получает всю сеть (атака Pass-the-Hash).
LAPS (Local Administrator Password Solution) — это бесплатный инструмент от Microsoft, который решает эту проблему элегантно.
Как это работает:
Устанавливается агент на клиентские машины.
Агент генерирует уникальный, сложный пароль для встроенной учетной записи "Администратор".
Пароль сохраняется в атрибуте объекта-компьютера в Active Directory.
Пароль автоматически меняется по заданному расписанию (например, каждые 30 дней).
План внедрения (взгляд архитектора):
Расширение схемы AD:
На контроллере домена выполните из PowerShell: Update-AdmPwdADSchema. Это добавит два новых атрибута для хранения пароля и даты его смены.
Настройка прав доступа:
Выдайте права на чтение пароля только определённым группам (например, "Администраторы домена" или "Help Desk").
PowerShell
# Даём группе 'HelpDesk' право читать пароли на OU 'Workstations'
Set-AdmPwdReadPasswordPermission -OrgUnit "Workstations" -AllowedPrincipals "HelpDesk"
Развёртывание через GPO:
Создайте новую групповую политику.
В разделе Конфигурация компьютера → Политики → Административные шаблоны → LAPS включите политику "Enable local admin password management".
Через GPO также разверните MSI-пакет с агентом LAPS на все нужные компьютеры.
Получение пароля:
Используйте утилиту LAPS UI, которая идёт в комплекте, или PowerShell:
PowerShell
Get-ADComputer -Identity "PC001" -Properties "ms-Mcs-AdmPwd" | Select-Object "ms-Mcs-AdmPwd"
Результат: Вы централизованно управляете паролями, которые уникальны для каждой машины. Это не просто "удобство", это фундаментальное усиление безопасности вашей инфраструктуры.
#windows #security #laps #activedirectory #gpo #architect #гайд
Windows: Ваши GPO — это код. Резервное копирование и версионирование групповых политик
Групповые политики — это центральный нерв вашей Windows-инфраструктуры. Одна случайная ошибка в GPO может привести к глобальному сбою. Как защититься от этого? Относитесь к своим политикам как к коду: создавайте резервные копии и контролируйте изменения.
PowerShell — ваш лучший инструмент для этого:
Сделать бэкап ВСЕХ политик в домене:
Эта одна команда сохранит все ваши GPO в указанную папку. Идеально для ежедневного бэкапа.
PowerShell
Восстановить политику из бэкапа:
Если что-то пошло не так, вы можете быстро откатить конкретную GPO.
PowerShell
Сравнить текущую политику с бэкапом:
Самое интересное. Как узнать, что изменилось?
PowerShell
# Сравниваем два отчета (в браузере или через утилиты сравнения)
Взгляд архитектора:
Бэкап GPO — это не просто страховка. Это основа для управления изменениями (Change Management). Храните резервные копии в системе контроля версий (Git). Это позволит вам видеть, кто, когда и что изменил в политиках, проводить ревью изменений и безопасно откатываться к любой предыдущей версии. Так вы превращаете "магию" GPO в прозрачный и контролируемый процесс.
#windows #powershell #gpo #security #backup #гайд
Групповые политики — это центральный нерв вашей Windows-инфраструктуры. Одна случайная ошибка в GPO может привести к глобальному сбою. Как защититься от этого? Относитесь к своим политикам как к коду: создавайте резервные копии и контролируйте изменения.
PowerShell — ваш лучший инструмент для этого:
Сделать бэкап ВСЕХ политик в домене:
Эта одна команда сохранит все ваши GPO в указанную папку. Идеально для ежедневного бэкапа.
PowerShell
# Убедитесь, что папка C:\GPO_Backup существует
Backup-Gpo -All -Path C:\GPO_Backup -Comment "Daily backup $(Get-Date -Format yyyy-MM-dd)"
Восстановить политику из бэкапа:
Если что-то пошло не так, вы можете быстро откатить конкретную GPO.
PowerShell
# Восстанавливаем политику "Default Domain Policy"
Restore-Gpo -Name "Default Domain Policy" -Path C:\GPO_Backup
Сравнить текущую политику с бэкапом:
Самое интересное. Как узнать, что изменилось?
PowerShell
# Генерируем отчеты по текущей и резервной GPO
Get-GPOReport -Name "Firewall Rules Policy" -ReportType Html -Path C:\Temp\Current.html
Get-GPOReport -BackupLocation C:\GPO_Backup -Name "Firewall Rules Policy" -ReportType Html -Path C:\Temp\Backup.html
# Сравниваем два отчета (в браузере или через утилиты сравнения)
Взгляд архитектора:
Бэкап GPO — это не просто страховка. Это основа для управления изменениями (Change Management). Храните резервные копии в системе контроля версий (Git). Это позволит вам видеть, кто, когда и что изменил в политиках, проводить ревью изменений и безопасно откатываться к любой предыдущей версии. Так вы превращаете "магию" GPO в прозрачный и контролируемый процесс.
#windows #powershell #gpo #security #backup #гайд
🔥2
Windows: "Антивирус не спас". Внедряем AppLocker — настоящую защиту от шифровальщиков
Антивирус — это реакция на известные угрозы. AppLocker — это проактивная стратегия "нулевого доверия" (Zero Trust) для исполняемых файлов. Он работает по принципу "белого списка": "Запрещено всё, что не разрешено".
Если шифровальщик (даже неизвестный антивирусу) попытается запуститься из C:\Users\User\Downloads или AppData — у него ничего не выйдет.
Как внедрить это как архитектор (через GPO и PowerShell):
Создайте эталонную GPO: Настройте базовые правила AppLocker в новой групповой политике (например, разрешить запуск из Program Files и Windows).
Экспортируйте политику в XML: Это ключ к Policy as Code. Не "кликайте" на каждом сервере, а управляйте политикой как файлом.
PowerShell
Внедрение (сначала в режиме аудита!): Разверните политику на серверы, но сначала только в режиме аудита. Это позволит собрать события (в Event Viewer) о том, что было бы заблокировано, не ломая прод.
PowerShell
Включение службы: AppLocker не заработает, пока не запущена служба AppIDSvc. Включите её запуск через GPO.
Взгляд архитектора: AppLocker — это не "еще один инструмент", это фундаментальный сдвиг в мышлении. Вы перестаете гоняться за угрозами и начинаете диктовать системе, что является доверенным. Управление политикой через XML-файлы, хранимые в Git, — это вершина зрелости: Policy as Code.
#windows #security #applocker #gpo #powershell #zerotrust #architect #musthave
Антивирус — это реакция на известные угрозы. AppLocker — это проактивная стратегия "нулевого доверия" (Zero Trust) для исполняемых файлов. Он работает по принципу "белого списка": "Запрещено всё, что не разрешено".
Если шифровальщик (даже неизвестный антивирусу) попытается запуститься из C:\Users\User\Downloads или AppData — у него ничего не выйдет.
Как внедрить это как архитектор (через GPO и PowerShell):
Создайте эталонную GPO: Настройте базовые правила AppLocker в новой групповой политике (например, разрешить запуск из Program Files и Windows).
Экспортируйте политику в XML: Это ключ к Policy as Code. Не "кликайте" на каждом сервере, а управляйте политикой как файлом.
PowerShell
# Экспорт текущей политики в файл
Get-AppLockerPolicy -Local -Xml > C:\Policies\AppLocker_Policy.xml
Внедрение (сначала в режиме аудита!): Разверните политику на серверы, но сначала только в режиме аудита. Это позволит собрать события (в Event Viewer) о том, что было бы заблокировано, не ломая прод.
PowerShell
# Применение политики из XML на целевом сервере (или через GPO)
Set-AppLockerPolicy -XmlPolicy C:\Policies\AppLocker_Policy.xml -Merge
Включение службы: AppLocker не заработает, пока не запущена служба AppIDSvc. Включите её запуск через GPO.
Взгляд архитектора: AppLocker — это не "еще один инструмент", это фундаментальный сдвиг в мышлении. Вы перестаете гоняться за угрозами и начинаете диктовать системе, что является доверенным. Управление политикой через XML-файлы, хранимые в Git, — это вершина зрелости: Policy as Code.
#windows #security #applocker #gpo #powershell #zerotrust #architect #musthave
👍2
Windows: Не жди 90 минут! Применяем GPO немедленно на 100+ машинах
Вы внесли критическое изменение в GPO (например, правило AppLocker или LAPS) и вам нужно, чтобы оно применилось сейчас, а не "в течение 90-120 минут". Подключаться к каждой машине по RDP и писать gpupdate /force — это не вариант.
Архитектор решает эту задачу параллельно и мгновенно.
Командлет Invoke-GPUpdate — ваш пульт управления GPO:
Принудительное обновление на одном ПК:
PowerShell
Обновление на всех компьютерах в OU: Это настоящая магия. Находим все ПК в OU "Workstations" и обновляем их.
PowerShell
-RandomDelayInMinutes 0 — применить немедленно, не создавая "шторм" на контроллерах домена (для 100 машин это безопасно).
Взгляд архитектора: Это не просто "удобство". Это контроль над изменениями (Change Management). Когда вы внедряете критический патч безопасности через GPO, вы должны быть уверены, что он применился. Invoke-GPUpdate дает вам этот контроль, превращая "надежду" в инженерную точность.
#windows #powershell #gpo #automation #activedirectory #скрипты #musthave
Вы внесли критическое изменение в GPO (например, правило AppLocker или LAPS) и вам нужно, чтобы оно применилось сейчас, а не "в течение 90-120 минут". Подключаться к каждой машине по RDP и писать gpupdate /force — это не вариант.
Архитектор решает эту задачу параллельно и мгновенно.
Командлет Invoke-GPUpdate — ваш пульт управления GPO:
Принудительное обновление на одном ПК:
PowerShell
Invoke-GPUpdate -Computer "WKS-001" -Force
Обновление на всех компьютерах в OU: Это настоящая магия. Находим все ПК в OU "Workstations" и обновляем их.
PowerShell
Get-ADComputer -Filter * -SearchBase "OU=Workstations,DC=corp,DC=local" | ForEach-Object {
Invoke-GPUpdate -Computer $_.Name -Force -RandomDelayInMinutes 0 -ErrorAction SilentlyContinue
}-RandomDelayInMinutes 0 — применить немедленно, не создавая "шторм" на контроллерах домена (для 100 машин это безопасно).
Взгляд архитектора: Это не просто "удобство". Это контроль над изменениями (Change Management). Когда вы внедряете критический патч безопасности через GPO, вы должны быть уверены, что он применился. Invoke-GPUpdate дает вам этот контроль, превращая "надежду" в инженерную точность.
#windows #powershell #gpo #automation #activedirectory #скрипты #musthave
Windows: "Кладбище" GPO. Наводим порядок в Active Directory
Судя по нашему опросу, Windows и AD — ядро нашей аудитории. И вот одна из самых частых "болей": со временем AD превращается в свалку из пустых, отключенных и не прилинкованных групповых политик (GPO).
Это замедляет вход в систему, усложняет аудит и создает хаос.
Этот PowerShell-скрипт — ваша "метла". Он найдет весь этот мусор за вас.
Что делает скрипт:
Получает все GPO в домене.
Находит пустые GPO (в которых нет настроек).
Находит отключенные GPO (которые не применяются).
Находит "сирот" (GPO, которые не прилинкованы ни к одному OU).
Код скрипта:
PowerShell
Взгляд архитектора: Гигиена Active Directory — это фундамент безопасности и производительности. Архитектор не допускает "цифрового мусора". Этот скрипт — ваш первый шаг к автоматизированному аудиту GPO, который должен выполняться по расписанию, а не когда "всё упало".
#windows #powershell #gpo #activedirectory #audit #скрипты #security
Судя по нашему опросу, Windows и AD — ядро нашей аудитории. И вот одна из самых частых "болей": со временем AD превращается в свалку из пустых, отключенных и не прилинкованных групповых политик (GPO).
Это замедляет вход в систему, усложняет аудит и создает хаос.
Этот PowerShell-скрипт — ваша "метла". Он найдет весь этот мусор за вас.
Что делает скрипт:
Получает все GPO в домене.
Находит пустые GPO (в которых нет настроек).
Находит отключенные GPO (которые не применяются).
Находит "сирот" (GPO, которые не прилинкованы ни к одному OU).
Код скрипта:
PowerShell
Import-Module GroupPolicy
Import-Module ActiveDirectory
Write-Host "--- Начинаю аудит GPO в домене... ---" -ForegroundColor Cyan
# 1. Получаем все GPO
$AllGpos = Get-GPO -All
# 2. Ищем пустые GPO (версии User и Computer = 0)
$EmptyGpos = $AllGpos | Where-Object { $_.User.Version -eq 0 -and $_.Computer.Version -eq 0 }
if ($EmptyGpos) {
Write-Host "`n[!!!] НАЙДЕНЫ ПУСТЫЕ GPO (Empty):" -ForegroundColor Yellow
$EmptyGpos | Select-Object DisplayName, Owner
}
# 3. Ищем отключенные GPO
$DisabledGpos = $AllGpos | Where-Object { $_.GpoStatus -ne 'AllSettingsEnabled' }
if ($DisabledGpos) {
Write-Host "`n[!!!] НАЙДЕНЫ ОТКЛЮЧЕННЫЕ GPO (Disabled):" -ForegroundColor Yellow
$DisabledGpos | Select-Object DisplayName, GpoStatus
}
# 4. Ищем GPO без линков (сироты)
$LinkedGpoGuids = (Get-ADOrganizationalUnit -Filter * | Get-GPLink -ErrorAction SilentlyContinue).GpoId
$LinkedGpoGuids += (Get-ADDomain | Get-GPLink -ErrorAction SilentlyContinue).GpoId
$LinkedGpoGuids += (Get-ADSite | Get-GPLink -ErrorAction SilentlyContinue).GpoId
$UnlinkedGpos = $AllGpos | Where-Object { $_.Id -notin $LinkedGpoGuids }
if ($UnlinkedGpos) {
Write-Host "`n[!!!] НАЙДЕНЫ НЕ ПРИЛИНКОВАННЫЕ GPO (Unlinked):" -ForegroundColor Yellow
$UnlinkedGpos | Select-Object DisplayName
}
Write-Host "`n--- Аудит завершен ---"
Взгляд архитектора: Гигиена Active Directory — это фундамент безопасности и производительности. Архитектор не допускает "цифрового мусора". Этот скрипт — ваш первый шаг к автоматизированному аудиту GPO, который должен выполняться по расписанию, а не когда "всё упало".
#windows #powershell #gpo #activedirectory #audit #скрипты #security
👍3🔥2
☠️ Windows Hardening: Убиваем LLMNR и NBT-NS
Если вы проведете аудит безопасности (или пригласите пентестеров), первое, за что они скажут «спасибо» — это включенные протоколы LLMNR и NBT-NS.
В чем суть: Когда Windows не может найти компьютер через DNS, она кричит на всю локальную сеть: «Эй, кто-нибудь знает этот адрес?». Злоумышленник (или утилита Responder) отвечает: «Да, это я, давай свои хеши паролей». И Windows их отдает. Это классическая атака LLMNR Poisoning.
Как закрыть дыру (GPO): Вам не нужны эти протоколы в современной сети с настроенным DNS.
1. LLMNR: Computer Configuration -> Administrative Templates -> Network -> DNS Client 👉 Turn off multicast name resolution = Enabled
2. NBT-NS (NetBIOS): Раздавайте через DHCP опцию: 👉 001 Microsoft Disable Netbios Option = 0x2
Или в свойствах TCP/IP v4 вручную: Disable NetBIOS over TCP/IP.
Результат: Сеть становится тише, а вектор атаки Man-in-the-Middle внутри периметра закрывается.
#windows #security #gpo #hardening #activedirectory
Если вы проведете аудит безопасности (или пригласите пентестеров), первое, за что они скажут «спасибо» — это включенные протоколы LLMNR и NBT-NS.
В чем суть: Когда Windows не может найти компьютер через DNS, она кричит на всю локальную сеть: «Эй, кто-нибудь знает этот адрес?». Злоумышленник (или утилита Responder) отвечает: «Да, это я, давай свои хеши паролей». И Windows их отдает. Это классическая атака LLMNR Poisoning.
Как закрыть дыру (GPO): Вам не нужны эти протоколы в современной сети с настроенным DNS.
1. LLMNR: Computer Configuration -> Administrative Templates -> Network -> DNS Client 👉 Turn off multicast name resolution = Enabled
2. NBT-NS (NetBIOS): Раздавайте через DHCP опцию: 👉 001 Microsoft Disable Netbios Option = 0x2
Или в свойствах TCP/IP v4 вручную: Disable NetBIOS over TCP/IP.
Результат: Сеть становится тише, а вектор атаки Man-in-the-Middle внутри периметра закрывается.
#windows #security #gpo #hardening #activedirectory
👍1
🪟 CMD: Почему политика не применилась? (
Пользователь жалуется: "У меня нет нужного принтера" или "Обои не поменялись". Вы смотрите в редактор GPO — всё настроено. В чем дело? Наследование? WMI-фильтр? Группа безопасности?
Не гадайте. Сделайте HTML-отчет прямо на машине пользователя.
Команда (запуск от Админа):
Что это дает: Откройте
* Какая политика победила (Winning GPO).
* Какая была отклонена и почему (Access Denied / Empty / Disabled).
* Время применения.
Это в 100 раз понятнее, чем сухой вывод консольного
#windows #gpo #ad #troubleshooting #gpresult #cmd #sysadmin
gpresult /h )Пользователь жалуется: "У меня нет нужного принтера" или "Обои не поменялись". Вы смотрите в редактор GPO — всё настроено. В чем дело? Наследование? WMI-фильтр? Группа безопасности?
Не гадайте. Сделайте HTML-отчет прямо на машине пользователя.
Команда (запуск от Админа):
gpresult /h C:\report.html
Что это дает: Откройте
report.html в браузере. Это красивый, цветной отчет, где показано:* Какая политика победила (Winning GPO).
* Какая была отклонена и почему (Access Denied / Empty / Disabled).
* Время применения.
Это в 100 раз понятнее, чем сухой вывод консольного
gpresult /r .#windows #gpo #ad #troubleshooting #gpresult #cmd #sysadmin
✍2
🎯 WMI Filters: Групповые политики с лазерным прицелом
Вам нужно применить политику только к ноутбукам с Windows 11. Создавать отдельную OU (Organizational Unit) и переносить туда компьютеры? Долго и ломает структуру.
Используйте WMI-фильтры. Это SQL-запросы к железу перед применением политики.
Сценарий: Применить GPO только к Windows 11/Server 2025.
1. В
2. Пишем запрос:
(Где ProductType="1" — это рабочие станции, а не серверы).
3. Привязываем фильтр к нужной GPO.
Теперь политика "постучится" на Windows 10, увидит несоответствие версии и пройдет мимо. Чисто, красиво, профессионально.
#windows #gpo #wmi #activedirectory #sysadmin #automation #filtering
Вам нужно применить политику только к ноутбукам с Windows 11. Создавать отдельную OU (Organizational Unit) и переносить туда компьютеры? Долго и ломает структуру.
Используйте WMI-фильтры. Это SQL-запросы к железу перед применением политики.
Сценарий: Применить GPO только к Windows 11/Server 2025.
1. В
Group Policy Management идем в раздел WMI Filters -> New .2. Пишем запрос:
SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "10.0.26%" AND ProductType="1"
(Где ProductType="1" — это рабочие станции, а не серверы).
3. Привязываем фильтр к нужной GPO.
Теперь политика "постучится" на Windows 10, увидит несоответствие версии и пройдет мимо. Чисто, красиво, профессионально.
#windows #gpo #wmi #activedirectory #sysadmin #automation #filtering
🛡️ Security: Отключаем LLMNR и NetBIOS через GPO — закрываем дверь перед Responder 🚫
В разборе книги Эбнера мы упоминали Responder.
Главная причина, по которой он работает — это древние протоколы Windows для поиска имен в локалке.
Если твой контроллер домена (DC) всё еще их транслирует, ты даришь злоумышленнику хэши паролей твоих юзеров.
Техническое решение:
В 2026 году эти протоколы не нужны. Отключаем их через групповые политики (GPO).
1. LLMNR: Computer Configuration -> Administrative Templates -> Network -> DNS Client
Включаем: "Turn off multicast name resolution".
2. NetBIOS: Тут сложнее (через DHCP или реестр). Чтобы наверняка, раскатай скрипт через GPO:
Результат: Responder в твоей сети станет бесполезным куском кода. Ты только что убрал один из самых простых способов взлома домена.
#security #windows #gpo #activedirectory #infosec #sysadmin #admin_future
В разборе книги Эбнера мы упоминали Responder.
Главная причина, по которой он работает — это древние протоколы Windows для поиска имен в локалке.
Если твой контроллер домена (DC) всё еще их транслирует, ты даришь злоумышленнику хэши паролей твоих юзеров.
Техническое решение:
В 2026 году эти протоколы не нужны. Отключаем их через групповые политики (GPO).
1. LLMNR: Computer Configuration -> Administrative Templates -> Network -> DNS Client
Включаем: "Turn off multicast name resolution".
2. NetBIOS: Тут сложнее (через DHCP или реестр). Чтобы наверняка, раскатай скрипт через GPO:
# PowerShell для отключения NetBIOS на всех адаптерах
$regKeys = Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces"
foreach($key in $regKeys) {
Set-ItemProperty -Path "Registry::$key" -Name "NetbiosOptions" -Value 2
}
Результат: Responder в твоей сети станет бесполезным куском кода. Ты только что убрал один из самых простых способов взлома домена.
#security #windows #gpo #activedirectory #infosec #sysadmin #admin_future
🤔1🐳1
🧹 Windows: Уборка в лесу — ищем GPO-призраки через PowerShell
Коллеги, в любом домене со временем накапливается мусор. Мы создаем тестовые политики, применяем их, а потом забываем удалить. Когда приходит время провести масштабную реструктуризацию политик и передать часть функционала коллеге, этот мусор сильно мешает и путает.
Код для PowerShell:
#windows #powershell #activedirectory #gpo #sysadmin #admin_future
Коллеги, в любом домене со временем накапливается мусор. Мы создаем тестовые политики, применяем их, а потом забываем удалить. Когда приходит время провести масштабную реструктуризацию политик и передать часть функционала коллеге, этот мусор сильно мешает и путает.
Скрипт ниже найдет все групповые политики, которые либо полностью отключены, либо никуда не привязаны.
Код для PowerShell:
$AllGPOs = Get-GPO -All
foreach ($GPO in $AllGPOs) {
$Report = Get-GPOReport -Guid $GPO.Id -ReportType Xml
if ($GPO.GpoStatus -eq 'AllSettingsDisabled' -or $Report -notmatch 'LinksTo') {
Write-Host "Кандидат на удаление: " $GPO.DisplayName}
}
Чистый Active Directory работает быстрее и предсказуемее. Любая реструктуризация GPO должна начинаться с удаления всего, что не работает и просто висит мертвым грузом.
#windows #powershell #activedirectory #gpo #sysadmin #admin_future
🔥1