有了这些我们就可以对windows日志进行分析了 比如我们分析域控日志的时候,想要查询账户登陆过程中,用户正确,密码错误的情况,我们需要统计出源IP,时间,用户名时,我们可以这么写(当然也可以结合一些统计函数,分组统计等等):
LogParser.exe -i:EVT "SELECT TimeGenerated,EXTRACT\_TOKEN(Strings,0,'|') AS USERNAME,EXTRACT\_TOKEN(Strings,2,'|') AS SERVICE\_NAME,EXTRACT\_TOKEN(Strings,5,'|') AS Client_IP FROM 'e:\logparser\xx.evtx' WHERE EventID=675"
查询结果如下:
如果需要对于特定IP进行统计,我们可以这么写(默认是NAT输出):
LogParser.exe -i:EVT "SELECT TimeGenerated,EXTRACT\_TOKEN(Strings,0,'|') AS USERNAME,EXTRACT\_TOKEN(Strings,2,'|') AS SERVICE\_NAME,EXTRACT\_TOKEN(Strings,5,'|') AS Client\_IP FROM 'e:\logparser\xx.evtx' WHERE EventID=675 AND EXTRACT\_TOKEN(Strings,5,'|')='x.x.x.x'"
或者将查询保存为sql的格式:
SELECT TimeGenerated,EXTRACT\_TOKEN(Strings,0,'|') AS UserName,EXTRACT\_TOKEN(Strings,1,'|') AS Domain ,EXTRACT\_TOKEN(Strings,13,'|') AS SouceIP,EXTRACT\_TOKEN(Strings,14,'|') AS SourcePort FROM 'E:\logparser\xx.evtx' WHERE EXTRACT_TOKEN(Strings,13,'|') ='%ip%'
然后在使用的时候进行调用 logparser.exe file:e:\logparser\ipCheck.sql?ip=x.x.x.x –i:EVT –o:NAT
查询结果为:
怎么样?是不是一目了然呢?根据特定登陆事件,直接定位到异常IP,异常时间段内的连接情况。
同样我们也可以选择其他输出格式,对日志分析和统计。上述所有操作都是在命令行下完成的,对于喜欢图形界面的朋友,We also have choices!这里我们可以选择使用LogParser Lizard。 对于GUI环境的Log Parser Lizard,其特点是比较易于使用,甚至不需要记忆繁琐的命令,只需要做好设置,写好基本的SQL语句,就可以直观的得到结果,这里给大家简单展示一下 首先选取查询类型
这里我们选择windows event log,然后输入刚才的查询语句: 比
如: SELECT TimeGenerated,EXTRACT\_TOKEN(Strings,0,'|') AS USERNAME,EXTRACT\_TOKEN(Strings,2,'|') AS SERVICE\_NAME,EXTRACT\_TOKEN(Strings,5,'|') AS Client\_IP FROM 'e:\logparser\xx.evtx' WHERE EventID=675 AND EXTRACT\_TOKEN(Strings,5,'|')='x.x.x.x'
得到的查询结果为(并且这里我们可以有多种查询格式):