Фильтрация журналов безопасности по пользователю и типу входа


17

Меня попросили выяснить, когда пользователь вошел в систему на прошлой неделе. Теперь журналы аудита в Windows должны содержать всю необходимую мне информацию. Я думаю, что если я ищу событие с кодом 4624 (успешный вход в систему) с определенным пользователем AD и типом входа 2 (интерактивный вход в систему), то это должно дать мне необходимую информацию, но в течение жизни я не могу понять, как на самом деле фильтровать Журнал событий, чтобы получить эту информацию. Возможно ли это в средстве просмотра событий или вам нужно использовать внешний инструмент для его анализа на этом уровне?

Я нашел http://nerdsknowbest.blogspot.com.au/2013/03/filter-security-event-logs-by-user-in.html, который, казалось, был частью того, что мне было нужно. Я немного изменил его, чтобы получить только последние 7 дней. Ниже приведен XML, который я пробовал.

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[(EventID=4624) and TimeCreated[timediff(@SystemTime) &lt;= 604800000]]]</Select>
    <Select Path="Security">*[EventData[Data[@Name='Logon Type']='2']]</Select>
    <Select Path="Security">*[EventData[Data[@Name='subjectUsername']='Domain\Username']]</Select>
  </Query>
</QueryList>

Это дало мне только последние 7 дней, но остальное не сработало.

Может ли кто-нибудь помочь мне с этим?

РЕДАКТИРОВАТЬ

Благодаря предложениям Lucky Luke я добился прогресса. Ниже приведен мой текущий запрос, хотя, как я объясню, он не возвращает никаких результатов.

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
     *[System[(EventID='4624')]
     and
     System[TimeCreated[timediff(@SystemTime) &lt;= 604800000]]
     and
     EventData[Data[@Name='TargetUserName']='john.doe']
     and
     EventData[Data[@Name='LogonType']='2']
     ] 
    </Select>
  </Query>
</QueryList>

Как я уже упоминал, он не дал никаких результатов, поэтому я немного возился с этим. Я могу заставить его правильно выводить результаты, пока не добавлю в строку LogonType. После этого он не возвращает результатов. Есть идеи, почему это может быть?

РЕДАКТИРОВАТЬ 2

Я обновил строку LogonType следующим образом:

EventData[Data[@Name='LogonType'] and (Data='2' or Data='7')]

Это должно захватывать входы на рабочую станцию, а также разблокировки рабочих станций, но я все равно ничего не получаю. Затем я изменяю его для поиска других типов входа в систему, таких как 3 или 8, которых он находит много. Это наводит меня на мысль, что запрос работает правильно, но по какой-то причине в журнале событий нет записей с типом входа, равным 2, и для меня это не имеет смысла. Можно ли это отключить?


Похоже, ваш запрос работает, если вы получаете результаты с другими типами входа. Возможно, вам нужно взглянуть на другие типы входа, в частности тип входа 11, который часто используется вместо входа типа 2 в Vista и более поздних версиях. Вы можете увидеть все типы входа здесь: myeventlog.com/search/show/799 . Могу поспорить, что ваши логины имеют тип 11. Дайте мне знать.
Счастливчик Люк

Интересно, что единственный не 3 результат, который я получаю, - 8, который я идентифицировал. По какой-то причине нет 2, 7 или 11, которые я бы ожидал увидеть.
Trido

Вы проверили свои параметры аудита в локальной политике безопасности (или политике домена, если она является частью домена), чтобы убедиться, что все входы в систему проходят аудит? Дайте мне знать, если вам нужно больше информации.
Счастливчик Люк

Это была действительно проблема. Я вошел в групповую политику, и она была выключена.
Trido

Интересный. Какие именно настройки вы в конечном итоге включили? Немного странным является то, что вы видели другие события входа в систему, но не входы в консоль. У меня сложилось впечатление, что все они настроены с одинаковыми настройками.
Счастливчик Люк

Ответы:


17

Вы на правильном пути - одна из ошибок в вашем запросе - это пробел в поле «Тип входа», просто «LogonType».

Я вставил запрос ниже, что я только что подтвердил работы. Это немного упрощено, но вы поняли идею. Он показывает вам все 4624 события с типом входа 2 от пользователя 'john.doe'.

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
      *[
        EventData[Data[@Name='LogonType']='2']
        and
        EventData[Data[@Name='TargetUserName']='john.doe']
        and
        System[(EventID='4624')]
      ] 
    </Select>
  </Query>
</QueryList>

Вы можете узнать больше о XML-запросах в средстве просмотра событий здесь: http://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the-windows-event- viewer.aspx .

Вы можете запрашивать события из командной строки с помощью wevtutil.exe: http://technet.microsoft.com/en-us/magazine/dd310329.aspx .


Хм, это странно. Когда я его запустил, я получил 0 результатов. Даже когда я упрощаю запрос только до типа входа. Я не очень понимаю, почему это не работает.
Trido

Я обновил свой вопрос моим текущим запросом и проблемой.
Trido

Это именно то, что мне нужно было узнать, кто подключен к одному из моих серверов через RDP. Мне просто нужно было изменить LogonType на «10» (и удалить бит с именем пользователя).
Чарльз Бёрдж

1

Я нашел этот вопрос, и мне пришлось проделать небольшую работу, чтобы проанализировать содержание, исходя из принятых обновлений ответов и вопросов, чтобы получить функциональное решение. Я решил опубликовать полный, рабочий синтаксис запроса здесь для дальнейшего использования:

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
    *[System[(EventID=4624)
    and
    TimeCreated[timediff(@SystemTime) &lt;= 2592000000]]
    and
    EventData[Data[@Name='TargetUserName'] and (Data='john.doe')]
    and
    EventData[Data[@Name='LogonType'] and (Data='10')]]
    </Select>
  </Query>
</QueryList>

Вышеупомянутый запрос должен работать, чтобы сузить события согласно следующим параметрам:

  • События в журнале безопасности.
  • С событием с кодом 6424
  • Происходящий в течение последних 30 дней.
  • Связан с пользователем john.doe.
  • С LogonType 10.

Вы можете изменить LogonTypes в фильтре, изменив (Data='10')приведенный выше код. Например, вы можете сделать (Data='2')или (Data='10' or Data='2').

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.