Короткий ответ
Если на WS-042 и на десятке соседних машин один и тот же пароль локального Administrator, у них один NTLM-хеш. После компрометации одной станции этот хеш можно повторно использовать против других узлов, где учётка валидна — классический pass-the-hash, без угадывания пароля. Лечение не «сменить пароль на другой общий», а уникальный пароль на каждый компьютер (Windows LAPS) плюс сужение путей, по которым хеш вообще принимают: меньше NTLM, меньше admin shares с любой станции, отдельные privileged-учётки.
Не собирайте хеши утилитиами «чтобы доказать PTH». Доказательство для IT: вход одним известным паролем на два хоста. Не публикуйте инструкции по извлечению SAM и не храните выгрузки паролей в Excel на файловом сервере.
Связанные шаги: защита локального администратора, снижение NTLM, ограничение административных шар.
Симптомы и как отличить
- Инцидент на одном ПК, через часы те же локальные права на серверах «сами собой».
- В разборе 4624 с Logon Type 3/10 и NTLM, учётка
WS-042\Administratorили.\Administratorс неожиданных источников. - Онбординг: «пароль локального админа как у всех, в вики».
- Агенты backup/RMM с одним локальным секретом в шаблоне.
| Наблюдение | Скорее другая проблема |
|---|---|
| Доменная учётка с одними правами везде | лишние группы, не локальный пароль |
| Domain Admin на повседневном ПК | разделение учёток |
| LAPS включён, но два ПК принимают один пароль | LAPS не управляет той учёткой / не на той OU |
| Только NTLM к шарам без локального админа | NTLM без нужды |
Возможные причины
- Клонирование VM/образа без уникализации локального пароля после sysprep.
- Политика «чтобы уборщица IT не звонила в AD» — один пароль в конверте.
- Скрипт
net user Administrator <пароль>по инвентарю. - LAPS стоит только на пилотной OU, прод живёт со старым секретом.
- Серверный шаблон в гипервизоре с одним локальным админом на все Windows Server 2019/2022/2025.
- RMM/антивирусный консоль-агент, который сам задаёт известный локальный пароль при установке.
Диагностика
Контур: домен contoso.example, DC DC01, станция WS-042.
1. Организационный тест (достаточный)
Возьмите пароль, которым helpdesk реально входит локально. Проверьте два хоста из разных OU. Успех на обоих — парк не уникализирован. Зафиксируйте в заявке имена хостов, не сам пароль.
2. Покрытие LAPS
$ou = 'OU=Workstations,DC=contoso,DC=example'
Get-ADComputer -Filter * -SearchBase $ou -Properties msLAPS-PasswordExpirationTime |
Where-Object { -not $_.msLAPS-PasswordExpirationTime } |
Select-Object Name, DistinguishedNameПустой expiration при компьютере старше суток после join — дыра покрытия. Для legacy смотрите ms-Mcs-AdmPwdExpirationTime.
3. Кто ещё задаёт локальный пароль
Ищите GPO Preferences, startup-скрипты, задания SCCM/Intune, документацию RMM:
Get-GPO -All | ForEach-Object { Get-GPOReport -Guid $_.Id -ReportType Xml } |
Select-String -Pattern 'Administrator|LAPS|AdmPwd' -SimpleMatch:$falseУзкий поиск по отчётам OU пилота. Не выгружайте все XML в почту.
4. Следы сетевых входов локальным админом
На подозрительном сервере, не на всём лесе сразу:
Get-WinEvent -FilterHashtable @{ LogName = 'Security'; Id = 4624 } -MaxEvents 200 |
Where-Object { $_.Message -match 'Administrator' -and $_.Message -match 'NTLM' }Это указание, что локальный админ ходит по сети. Для PTH-риска важны Type 3 к C$/ADMIN$ — см. административные шары.
Решение
Сценарий A. Парк станций без LAPS
Внедрите Windows LAPS по статье как защитить локального администратора. Порядок: схема → self-permission → GPO на пилотную OU → проверка уникальности → расширение OU → затем смена старого общего пароля уже не нужна: LAPS сам ротирует. Если LAPS ещё не доехал, а инцидент идёт — смените пароль вручную разным значением на затронутых хостах с консоли, не одним скриптом.
Сценарий B. Серверы из одного шаблона
На шаблоне Windows Server оставьте случайный пароль, не документируйте его как «стандарт датацентра». После клонирования: join в OU с LAPS, дождаться пароля в AD, только потом отдавать сервер в эксплуатацию. Проверьте Get-LapsADPassword -Identity <имя>.
Сценарий C. Нужно уменьшить ценность украденного хеша
Уникальные пароли — обязательный минимум. Дополнительно, без отключения защиты:
- включите Credential Guard там, где железо и Windows 11 23H2/24H2 / Server 2022/2025 это поддерживают и приложения совместимы;
- администрируйте с jump-хоста в Restricted Admin;
- сузьте NTLM (отдельная статья);
- ограничьте remote SAM и admin shares;
- не входите Domain Admin на
WS-042.
Не «выключайте NTLM завтра на всём лесе» без аудита потребителей.
Сценарий D. Агенты со статическим локальным паролем
Смените модель: gMSA, клиентский сертификат, отдельная учётка на хост, которую крутит тот же LAPS, либо штатный механизм вендора. Пока агент пишет фиксированный пароль после каждой политики — LAPS будет в гонке и «сломается».
Как проверить, что проблема устранена
- Выборка из 10 хостов: локальный вход паролем хоста A не проходит на хосте B.
- У всех компьютеров целевой OU заполнен
msLAPS-PasswordExpirationTime. - Документ «общий локальный админ» отозван, helpdesk открывает пароль только через AD.
- Шаблоны VM и RMM не содержат одного секрета.
Get-ADComputer -Filter * -SearchBase 'OU=Workstations,DC=contoso,DC=example' -Properties msLAPS-PasswordExpirationTime |
Group-Object { [bool]$_.msLAPS-PasswordExpirationTime } |
Select-Object Name, CountName=False должен стремиться к нулю для машин в сети. Выключенные на складе — отдельный список.
Если не помогло
- LAPS пишет пароль, но вендор снова ставит старый: политика агента, GPP «обновить пароль». Ищите, кто пишет SAM после LAPS.
- Две учётки: LAPS крутит
Administrator, а все входят в.\supportс общим паролем. Укажите в политике имя управляемой учётки или заведитеsupportпод LAPS и уберите дубль. - Кластер/NLB с требованием одного локального пароля — редкость и плохой дизайн; вынесите управление на доменные gMSA/отдельные учётки служб.
- LAPS не работает — сначала почините канал записи в AD.
Профилактика
- Запрет в регламенте: хранить локальный пароль парка в одном месте, кроме LAPS/AD.
- Контроль образов: чеклист после clone = LAPS expiration есть.
- Аудит 4624 Type 3 для
Administratorс рабочих станций — аномалия. - Не давать локальному админу сеть «с любого ПК»: jump + Restricted Admin.
- Периодический отчёт покрытия LAPS с
DC01.
FAQ
Если сменить общий пароль на более длинный, PTH исчезнет?
Нет. Длина не делает хеш уникальным между машинами. Нужны разные пароли.
Локальный админ отключён, риск снят?
Только если нет другой общей локальной учётки. Часто остаётся .\admin или учётка RMM.
Нужно ли отключать NTLM сразу?
Сначала уникальные пароли и аудит NTLM. Жёсткий deny без инвентаря ломает печать и старые приложения. Методика — в статье про NTLM.
Credential Guard заменяет LAPS?
Нет. Guard усложняет кражу билетов/хешей из памяти, но общий пароль на диске SAM по-прежнему один на парк.
Можно ли хранить уникальные пароли в KeePass вместо LAPS?
Для 5 серверов — временно. Для 200 ПК — промах: нет ротации, ACL и аудита чтения как в AD. LAPS для этого и сделан.
Одинаковый пароль DSRM на всех DC?
DSRM — отдельная учётка восстановления. Её тоже не копируют «как у DC01 на все». Windows LAPS умеет сценарии для DSRM — читайте текущую документацию Microsoft под вашу версию, не копируйте пароль DSRM в вики.