Пользователи и группы Windows: кто есть кто и почему это влияет на безопасность

Windows раздает права не пользователям напрямую, а через группы, и большинство взломов локальной машины строятся именно на том, что кто-то не понимает, что за группы у него включены и зачем. Разбираемся по порядку: встроенные учетки, SID, группы, команды для аудита и что из этого реально используют для атак.

Встроенные учетные записи

В любой свежей установке Windows есть несколько системных аккаунтов, которые создаются автоматически:

  • Administrator — встроенная учетка с полными правами, по умолчанию отключена начиная с Vista (кроме серверных версий и режима восстановления). Ее SID всегда заканчивается на -500, и это не секрет ни для кого, включая инструменты вроде Mimikatz.
  • Guest — гостевой доступ без пароля, тоже отключен по умолчанию с Windows 10. SID заканчивается на -501.
  • DefaultAccount — служебная учетка для UWP-приложений и мультиплеерных сценариев, обычным пользователям не нужна. SID -503.
  • WDAGUtilityAccount — обслуживает Windows Defender Application Guard (изолированный браузер в контейнере). SID -504.
windows user's SID

Это видно и на скриншоте с wmic useraccount get name,sid: рядом с реальным пользователем всегда висят Administrator, Guest, DefaultAccount и WDAGUtilityAccount, даже если вы их в глаза не видели.

Структура SID: что означают эти цифры

SID (Security Identifier) — это то, чем система реально оперирует внутри, имя пользователя это просто ярлык поверх SID. Формат такой:

S-1-5-21-<домен/машина>-<RID>
  • S — обозначение, что это SID.
  • 1 — версия структуры (единственная существующая на практике).
  • 5 — authority, NT Authority.
  • 21 — означает, что дальше идет уникальный идентификатор домена или локальной машины.
  • Три числа после 21 — это идентификатор конкретного компьютера или домена, генерируется при установке системы.
  • Последнее число, RID (Relative Identifier), — это то, что реально определяет объект внутри домена/машины.

RID для встроенных объектов фиксированный и одинаковый на всех Windows-машинах в мире:

RIDОбъект
500Administrator
501Guest
503DefaultAccount
504WDAGUtilityAccount
512Domain Admins (в AD)
544Administrators (группа)
545Users (группа)
546Guests (группа)
windows group's SID

Локальные пользователи и группы, созданные вручную (как docker-users и __vmware__ на скриншоте), получают RID начиная с 1000+ и растущий с каждым новым объектом.

Почему это важно для безопасности: атака pass-the-hash или переименование учетки не спасает от идентификации по RID. Переименовали Administrator в «Vasya» — SID все равно кончается на -500, и любой инструмент разведки это увидит за секунду.

Как посмотреть пользователей, группы и SID

PowerShell:

# все локальные пользователи
Get-LocalUser

# все локальные группы с их SID
Get-LocalGroup | Select-Object Name, SID

# кто состоит в конкретной группе
Get-LocalGroupMember -Group "Administrators"

# SID текущего пользователя
whoami /user

# SID и права одной строкой
whoami /all

Через классический cmd (работает и без PowerShell, полезно на legacy-машинах):

wmic useraccount get name,sid
net user
net localgroup
net localgroup Administrators

Как создать и удалить пользователя/группу

PowerShell:

# создать пользователя
New-LocalUser "test_user" -Password P@ssw0rd1234 -FullName "Test User"

# добавить в группу
Add-LocalGroupMember -Group "Users" -Member "test_user"

# создать группу
New-LocalGroup "custom_group"

# удалить пользователя
Remove-LocalUser "test_user"

# удалить группу
Remove-LocalGroup "custom_group"

Через net (проще для скриптов и batch-файлов):

net user test_user password12345 /add
net localgroup Users test_user /add
net user test_user /delete

Основные группы и зачем их вообще создали

  • Administrators — полный контроль над машиной. Единственная группа, которую стоит держать пустой, кроме реально необходимых людей. Каждый лишний член этой группы — это лишняя точка отказа при фишинге или краже пароля.
  • Users — обычные пользователи без прав установки софта в системные папки и изменения системных настроек. Это дефолт, в котором должно сидеть 90% реальных людей за компом.
  • Guests — оставлен для совместимости. Стоит отключить.
  • Remote Desktop Users — кому разрешено подключаться по RDP без прав администратора. Классическая мишень брутфорса, если RDP торчит наружу.
  • Backup Operators — могут делать бэкап и восстановление файлов в обход ACL. Формально не админы, но по факту это путь к повышению привилегий: право на бэкап реестра позволяет вытащить SAM и SYSTEM и получить хэши всех локальных паролей. Один из самых недооцененных векторов privilege escalation в Windows.
  • Power Users — легаси-группа из NT/XP, сейчас почти не имеет реальных дополнительных прав, но иногда используется старым софтом. Проверяйте, кто там сидит, обычно там сидят по инерции.
  • Distributed COM Users — разрешает запускать, активировать и использовать DCOM-объекты удаленно. Используется для lateral movement, потому что DCOM это классический способ выполнить код на соседней машине без явного RCE.
  • Performance Log Users / Performance Monitor Users — доступ к счетчикам производительности удаленно. На вид безобидно, но это утечка информации о процессах и активности системы, которую можно использовать для разведки перед атакой.
  • Event Log Readers — чтение журналов событий без прав администратора. Полезно для мониторинга, но в чужих руках это разведка: что запускалось, кто логинился, когда были неудачные попытки входа.
  • Network Configuration Operators — могут менять сетевые настройки (IP, DNS, прокси) без прав админа. Используется при lateral movement для перенаправления трафика жертвы.
  • Hyper-V Administrators, Device Owners, System Managed Accounts Group — узкоспециализированные группы под конкретные подсистемы, интересны только если вы реально используете эту фичу.

Настройка для безопасности: практический чек-лист

  1. Отключите Guest, если он вдруг включен: net user Guest /active:no.
  2. Не работайте под встроенным Administrator и не включайте его лишний раз. Даже если вам нужны админ-права, заведите отдельную именную учетку в группе Administrators, а повседневную работу ведите из группы Users с UAC.
  3. Раз в квартал проверяйте состав группы Administrators. Софт любит незаметно добавлять туда сервисные учетки при установке.
  4. Проверьте Backup Operators и Power Users на пустоту. Если там кто-то есть без явной причины — это забытая дыра.
  5. RDP только через Remote Desktop Users, никогда через Administrators напрямую, и желательно за VPN, а не напрямую в интернет.
  6. Используйте разные локальные пароли администратора на разных машинах, если это не домен с LAPS. Одинаковый пароль локального Administrator на всем парке — это один взломанный ноутбук равно взломанная вся сеть.
  7. Помните про RID 500. Переименование встроенного Administrator задерживает автоматизированные скрипты атаки на пару секунд, но не мешает никому, кто действительно понимает, что ищет SID, а не имя.
  8. Аудитьте нестандартные группы вроде docker-users и __vmware__ — если софт снес, а группа осталась с активными членами, это тоже поверхность атаки, просто про нее забывают.