Просмотр успешных и неудачных попыток локального входа в Windows

При расследовании различных инцидентов администратору необходимо знать, кто и когда входил в систему на том или ином компьютере Windows. Историю входов пользователей в доменной сети можно получить из журналов контроллера домена. Тем не менее, иногда проще получить информацию непосредственно из журналов событий локального компьютера. В этой статье мы покажем, как получить и проанализировать события входа пользователей на компьютере/сервере под управлением Windows. Эта статистика поможет вам ответить на вопросы «Как посмотреть, кто и когда пользовался компьютером под управлением Windows?» и «Как проверить историю входа пользователей в Windows?».

Включение политики аудита входа пользователей в Windows

Прежде всего, включите политику аудита входа пользователя в систему. Чтобы настроить параметры локальной групповой политики на отдельном компьютере, используйте оснастку gpedit.msc. Если вы хотите включить политику для компьютеров в домене Active Directory, используйте редактор GPO домена (gpmc.msc).

  1. Откройте консоль управления групповой политикой, создайте новый GPO и назначьте его организационным единицам (OU), содержащим компьютеры и/или серверы, для которых вы хотите включить политику аудита событий входа в систему;
  2. Откройте GPO и перейдите в раздел Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Advanced Audit Policy Configuration -> Audit Policies -> Logon/Logoff;
  3. Включите две опции политики аудита: Аудит входа в систему и Аудиторский выход. Это поможет отслеживать события как входа, так и выхода пользователей из системы. Если вы хотите отслеживать только успешные попытки входа в систему, установите флажок Успех опция в настройках политики;
    В этом же разделе содержатся настройки политики для аудита событий блокировки учетных записей, изменений в группах Active Directory и т. д.

    Включение политики аудита событий входа в систему в WindowsВключение политики аудита событий входа в систему в Windows

  4. Закройте редактор GPO и обновите параметры групповой политики на клиентах.

Как найти события входа пользователей в систему в средстве просмотра событий Windows?

После того как вы включили политики аудита входа в систему, запись о событии входа в систему будет появляться в журнале Event Viewer каждый раз, когда пользователь входит в Windows. Давайте посмотрим, как это выглядит.

  1. Откройте средство просмотра событий (eventvwr.msc);
  2. Разверните раздел Журналы Windows и выберите Безопасность;
  3. Щелкните его правой кнопкой мыши и выберите Фильтр текущего журнала;
  4. Введите идентификатор события 4624 в поле и нажмите OK. Фильтр журнала в Event Virwer по идентификатору событияФильтровать журнал в Event Virwer по идентификатору события
  5. Только события входа в систему пользователей и системных служб будут отображаться с описанием: An account was successfully logged on.
  6. Описание события содержит имя и домен пользователя, вошедшего в систему на компьютере:
    New Logon:
    Security ID: WOSHUB\a.muller
    Account Name: a.muller
    Account Domain: WOSHUB

Просмотр событий входа пользователя в систему в WindowsПросмотр событий входа пользователя в систему в Windows

Ниже приведены другие полезные идентификаторы событий:

Идентификатор события Описание
4624 Событие успешного входа в учетную запись
4625 Учетной записи не удалось войти в систему
4648 Была предпринята попытка входа в систему с использованием явных учетных данных
4634 Учетная запись была выведена из системы
4647 Выход из системы по инициативе пользователя

Отфильтрованный журнал событий будет содержать не только события входа локального пользователя. Есть также события сетевого доступа к этому компьютеру (когда вы открываете общие файлы или используете общие принтеры), события запуска различных служб и запланированных задач и т. д. Другими словами, существует множество событий, не связанных с входом локального пользователя в систему.

[Тип входа в систему Код можно использовать для фильтрации только событий интерактивных входов пользователей в консоль компьютера (локально). В таблице ниже приведены коды Logon Type.

Код типа входа Описание
0 Система
2 Интерактивный
3 Сеть
4 Пакет
5 Сервис
6 Прокси-сервер
7 Разблокировать
8 NetworkCleartext
9 NewCredentials
10 RemoteInteractive
11 CachedInteractive
12 CachedRemoteInteractive
13 CachedUnlock
Записи с типом входа в систему 10 или 3 появляются в журнале событий при удаленном подключении к рабочему столу компьютера с помощью RDP. Подробнее о том, как анализировать журналы подключений RDP в Windows.

Согласно этой таблице, событие входа локального пользователя в систему должно содержать Logon Type: 2.

Этот идентификатор события также появится, если вы используете автоматический вход в систему Windows.

Для фильтрации событий входа в систему по типу входа в систему лучше использовать PowerShell.

Разбор событий входа пользователей в систему с помощью PowerShell

Предположим, ваша задача — выяснить, какие пользователи недавно входили в систему на этом компьютере. Нас интересуют только интерактивные события входа в систему (с помощью консоли компьютера) с параметром LogonType =2. Мы будем использовать Get-WinEvent Команда для выбора событий из журналов Event Viewer.

Следующий сценарий PowerShell отображает историю входа пользователей на текущем компьютере и представляет ее в виде графической таблицы Out-GridView.

$query = @'
<QueryList>
<Query Id='0' Path="Security">
<Select Path="Security">
*[System[EventID='4624']
and(
EventData[Data[@Name="VirtualAccount"]='%%1843']
and
EventData[Data[@Name="LogonType"]='2']
)
]
</Select>
</Query>
</QueryList>
'@
$properties = @(
@{n='User';e={$_.Properties[5].Value}},
@{n='Domain';e={$_.Properties[6].Value}},
@{n='TimeStamp';e={$_.TimeCreated}}
@{n='LogonType';e={$_.Properties[8].Value}}
)
Get-WinEvent -FilterXml $query | Select-Object $properties|Out-GridView

Получение истории входа пользователей в систему локально в Windows с помощью PowerShellПолучение истории входа пользователей в систему локально в Windows с помощью PowerShell

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

|Where-Object {$_.TimeStamp -gt '27/04/23'}

Для получения информации с удаленных компьютеров можно использовать команду Get-WinEvent. Например, чтобы получить историю входа пользователей с двух удаленных компьютеров, запустите этот сценарий:

'mun-rds1', 'mun-rds2' |
ForEach-Object {
Get-WinEvent -ComputerName $_ -FilterXml $query | Select-Object $properties
}

Если протокол RPC не разрешен, для получения данных с удаленных компьютеров можно использовать команду Invoke-Command PowerShell:

Invoke-Command -ComputerName 'mun-rds1', 'mun-rds2' {Get-WinEvent -FilterXml $query | Select-Object $properties}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *