windows安全日志分析工具logparser用法详解
<p><strong>logparser使用介绍</strong></p><p>首先,让我们来看一下Logparser架构图,熟悉这张图,对于我们理解和使用Logparser是大有裨益的</p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592892610002.jpg?20158289273" /></p>
<p>简而言之就是我们的输入源(多种格式的日志源)经过 SQL语句(有SQL引擎处理)处理后,可以输出我们想要的格式。</p>
<p><strong>1、输入源</strong></p>
<p>从这里可以看出它的基本处理逻辑,首先是输入源是某一种固定的格式,比如EVT(事件),Registry(注册表)等,对于每一种输入源,它所涵盖的字段值是固定的,可以使用logparser –h –i:EVT查出(这里以EVT为例): </p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592892845409.jpg?20158289295" /></p>
<p>这里是一些可选参数,在进行查询的时候,可对查询结果进行控制,不过我们需要重点关注的是某一类日志结构里含有的字段值(在SQL查询中匹配特定的段): </p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592892924753.jpg?201582892955" /></p>
<p align="left">对于每一类字段值的详细意义,我们可以参照logparser的自带文档的参考部分,这里以EVT(事件)为例: </p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592893147310.jpg?20158289325" /></p>
<p align="left"><strong>2、输出源</strong> </p>
<p align="left">输出可以是多种格式,比如文本(CSV等)或者写入数据库,形成图表,根据自己的需求,形成自定的文件(使用TPL)等,比较自由</p>
<p><strong>基本查询结构</strong></p>
<p>了解了输入和输出源,我们来看一则基本的查询结构</p>
<p><font style="BACKGROUND-COLOR: #c0c0c0">Logparser.exe –i:EVT –o:DATAGRID “SELECT * FROM E:\logparser\xx.evtx”</font></p>
<p>这是一则基本的查询,输入格式是EVT(事件),输出格式是DATAGRID(网格),然后是SQL语句,查询E:\logparser\xx.evtx的所有字段,结果呈现为网格的形式: </p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592893249872.jpg?20158289330" /></p>
<p align="left">看到这里,想必你已经明白了,对于windows的安全日志分析,我们只需要取出关键进行判断或者比对,就可以从庞大的windows安全日志中提取出我们想要的信息。</p>
<p><strong>windows安全日志分析</strong></p>
<p>对于windows安全日志分析,我们可以根据自己的分析需要,取出自己关心的值,然后进行统计、匹配、比对,以此有效获取信息,这里通过windows安全日志的EVENT ID迅速取出我们关心的信息,不同的EVENT ID代表了不同的意义,这些我们可以在网上很容易查到,这里列举一些我们平常会用到的。</p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592893334206.jpg?201582893345" /></p>
<p>有了这些我们就可以对windows日志进行分析了 比如我们分析域控日志的时候,想要查询账户登陆过程中,用户正确,密码错误的情况,我们需要统计出源IP,时间,用户名时,我们可以这么写(当然也可以结合一些统计函数,分组统计等等):</p>
<p><font style="BACKGROUND-COLOR: #c0c0c0">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"</font></p>
<p>查询结果如下: </p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592893401654.jpg?201582893414" /></p>
<p>如果需要对于特定IP进行统计,我们可以这么写(默认是NAT输出):</p>
<p><font style="BACKGROUND-COLOR: #c0c0c0">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'"</font></p>
<p>或者将查询保存为sql的格式:</p>
<p><font style="BACKGROUND-COLOR: #c0c0c0">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%'</font></p>
<p>然后在使用的时候进行调用</p>
<p><strong>logparser.exe file:e:\logparser\ipCheck.sql?ip=x.x.x.x –i:EVT –o:NAT</strong></p>
<p>查询结果为: </p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592893433385.jpg?201582893444" /></p>
<p>怎么样?是不是一目了然呢?根据特定登陆事件,直接定位到异常IP,异常时间段内的连接情况。</p>
<p>同样我们也可以选择其他输出格式,对日志分析和统计。上述所有操作都是在命令行下完成的,对于喜欢图形界面的朋友,We also have choices!这里我们可以选择使用LogParser Lizard。 对于GUI环境的Log Parser Lizard,其特点是比较易于使用,甚至不需要记忆繁琐的命令,只需要做好设置,写好基本的SQL语句,就可以直观的得到结果,这里给大家简单展示一下 首先选取查询类型 </p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592893508240.jpg?201582893521" /></p>
<p>这里我们选择windows event log,然后输入刚才的查询语句: 比</p>
<p>如:</p>
<p><strong>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'</strong></p>
<p>得到的查询结果为(并且这里我们可以有多种查询格式): </p>
<p align="center"><img id="theimg" onclick="window.open(this.src)" alt="" baiduimageplusrect="null" baiduimageplusstatus="2" src="https://img.jbzj.com/file_images/article/201509/201592893537657.jpg?201582893550" /></p>
<p>具体其他功能,大家可以去尝试一下~</p>
<p><strong>总结</strong></p>
<p>这里简单和大家介绍了在windows安全日志分析方面logparser的一些使用样例,logparser的功能很强大,可进行多种日志的分析,结合商业版的Logparser Lizard,你可以定制出很多漂亮的报表展现,图形统计等,至于其他的功能,留给大家去探索吧~</p>
頁:
[1]