Admin Future
241 subscribers
51 photos
1 video
4 files
120 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
От Запрета к Контролю: Харденинг 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

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 & Security: Внедряем LAPS. Прощайте, одинаковые пароли локальных админов!

Использование одного и того же пароля для локального администратора на всех машинах — это огромная дыра в безопасности. Если злоумышленник его получает, он получает всю сеть (атака 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
# Убедитесь, что папка 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

# Экспорт текущей политики в файл
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
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

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
👍1
🪟 CMD: Почему политика не применилась? ( 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. В 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:


# 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:

$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