Filtrando logs de segurança por usuário e tipo de logon


17

Me pediram para descobrir quando um usuário fez logon no sistema na última semana. Agora, os logs de auditoria no Windows devem conter todas as informações necessárias. Acho que se eu procurar o Event ID 4624 (Logon Success) com um usuário específico do AD e o Logon Type 2 (Interactive Logon), ele deve me fornecer as informações necessárias, mas durante toda a vida não consigo descobrir como realmente filtrar o log de eventos para obter essas informações. É possível dentro do Visualizador de Eventos ou você precisa usar uma ferramenta externa para analisá-la neste nível?

Encontrei http://nerdsknowbest.blogspot.com.au/2013/03/filter-security-event-logs-by-user-in.html que parecia fazer parte do que eu precisava. Eu o modifiquei um pouco para me dar apenas os últimos 7 dias. Abaixo está o XML que tentei.

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

Só me deu os últimos 7 dias, mas o resto não funcionou.

Alguém pode me ajudar com isso?

EDITAR

Graças às sugestões de Lucky Luke, tenho feito progressos. A seguir, minha consulta atual, embora, como explicarei, não retorne nenhum resultado.

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

Como mencionei, ele não estava retornando nenhum resultado, por isso tenho mexido um pouco. Posso obter os resultados corretamente até adicionar a linha LogonType. Depois disso, ele não retorna resultados. Alguma idéia de por que isso pode ser?

EDIT 2

Atualizei a linha LogonType para o seguinte:

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

Isso deve capturar logons da estação de trabalho e desbloqueios da estação de trabalho, mas ainda não recebo nada. Modifico-o para procurar outros tipos de logon, como 3 ou 8, dos quais ele encontra muitos. Isso me leva a acreditar que a consulta funciona corretamente, mas, por algum motivo, não há entradas nos Logs de Eventos com o Tipo de Logon igual a 2 e isso não faz sentido para mim. É possível desativar isso?


Parece que sua consulta está funcionando se você estiver obtendo resultados com outros tipos de logon. É possível que você precise procurar outros tipos de logon, em particular o tipo 11, que é frequentemente usado em vez do tipo 2 no Vista e versões posteriores. Você pode ver todos os tipos de logon aqui: myeventlog.com/search/show/799 . Aposto que seus logons são do tipo 11. Entre em contato.
Lucky Luke

Curiosamente, o único resultado que não obtive 3 é 8 que eu identifiquei. Por alguma razão, não há 2, 7 ou 11 que eu esperaria ver.
Trido

Você verificou suas configurações de auditoria na política de segurança local (ou política de domínio, se faz parte de um domínio) para garantir que todos os logons estejam sendo auditados? Entre em contato se precisar de mais informações.
Lucky Luke

Este era realmente o problema. Entrei na Diretiva de Grupo e ela foi desativada.
Trido

Interessante. Qual configuração exata você acabou ativando? O que é um pouco estranho é que você estava vendo outros eventos de logon, mas não os logons do console. Fiquei com a impressão de que todos eles estão configurados com a mesma configuração.
Lucky Luke

Respostas:


17

Você está no caminho certo - um dos erros na sua consulta é o espaço em 'Tipo de logon', ele deve ser apenas 'LogonType'.

Colei uma consulta abaixo que acabei de verificar os trabalhos. É um pouco simplificado, mas você entendeu. Ele mostra todos os 4624 eventos com logon tipo 2, do usuário '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>

Você pode descobrir mais sobre consultas XML no visualizador de eventos aqui: http://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the-windows-event- viewer.aspx .

Você pode consultar eventos na linha de comando com o wevtutil.exe: http://technet.microsoft.com/en-us/magazine/dd310329.aspx .


Hmm, isso é estranho. Quando o executei, obtive 0 resultado retornado. Mesmo quando simplifico a consulta apenas para o Tipo de logon. Eu realmente não entendo por que não está funcionando.
Trido 04/02

Atualizei minha pergunta com minha consulta e problema atuais.
Trido 04/02

Era exatamente isso que eu precisava para descobrir quem estava conectado a um dos meus servidores via RDP. Eu apenas tive que mudar o LogonType para '10' (e remover o pouco sobre o nome de usuário).
Charles Burge

1

Encontrei essa pergunta e tive que trabalhar um pouco para analisar o conteúdo, a partir das respostas aceitas e das atualizações de perguntas, para obter uma solução funcional. Imaginei que publicaria aqui uma sintaxe de consulta de trabalho completa para referência futura:

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

A consulta acima deve funcionar para restringir os eventos de acordo com os seguintes parâmetros:

  • Eventos no log de segurança.
  • Com identificação do evento 6424
  • Ocorrendo nos últimos 30 dias.
  • Associado ao usuário john.doe.
  • Com o LogonType 10.

Você pode alterar os LogonTypes no filtro, alterando (Data='10')o código acima. Por exemplo, você pode querer fazer (Data='2')ou (Data='10' or Data='2').

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.