1.概述:
Log Parser(微软网站下载)是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。可以帮助你详细的分析网站日志。是所有数据分析和网站优化人员都应该会的一个软件。Logparser是微软的一款软件完全免费的,大家可以在微软的官网上去下载,下载地址:
http://www.microsoft.com/en-us/download/details.aspx?id=24659
2.事件日志基础
2.1.Windows Logon Type
Logon Type 2 Interactive
交互登录。最常见的登录方式
Logon Type 3 – Network
网络登录。最常见的是访问网路共享文件夹或打印机。IIS认证也属于Logon Type 3 。
Logon Type 4 – Batch
计划任务
Logon Type 5 – Service
服务。某些服务用一个域账号来运行的,出现Failure常见的情况是管理员跟换了域密码但是忘了更改service的密码。
Logon Type 7 – Unlock
解除屏幕锁定。很多公司或者用户有这样的安全设置:当用户离开一段把时间,屏幕程序会锁定屏幕,解开屏幕输入账号密码就会产生该事件
Logon Type 8 – NetworkCleartext
网络明文登录,比如发生在IIS的ASP服务
Logon Type 9 – NewCredentials
新身份登录通常发生在RunAS方式运行的某程序时的登录验证
Logon Type 10 – RemoteInteractive
远程登录 产生事件10
Logon Type 11 – CachedInteractive
为方便笔记本用户,计算机会缓存前十次成功登录的登录
2.2.常见事件ID
3.事件日志分析实列
3.1.Security.evtx事件日志(4624)
其中4324为成功登录日志
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM D:Security.evtx”
查找所有的项目:
知识补充:
在提取的项目中发现其他比较简单,但是string这一项非常复杂,但是又比较重要。
使用函数EXTRACT_TOKEN(Strings, num, ‘|’)
strings使用|对数据进行分割EXTRACT_TOKEN(Strings, 0, ‘|’)提取S-1-5-18,EXTRACT_TOKEN(Strings, 1, ‘|’)提取DESKTOP-KJIHHDO$以此类推。
分析成功登录事件4624我们过滤出我们的想要提取的数据:
LogParser.exe -i:EVT -o:DATAGRID "SELECT TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as username,EXTRACT_TOKEN(Strings, 8, '|') as LogonType,EXTRACT_TOKEN(Strings, 17, '|') AS ProcessName,EXTRACT_TOKEN(Strings, 18, '|') AS SourceIP FROM D:Security.evtx where EventID=4624"其中包括,第5项用户,第8项登录类型,第17项程序路径,以及我们关心的第18项源IP地址。
3.2.Security.evtx事件日志(4625)
该案例来源bypass参考链接如下:
https://www.t00ls.net/viewthread.php?tid=48067&highlight=应急响应
登录失败日志,可以分析常见的暴力破解的行为
案件分析ftp暴力破解:
FTP是一个文件传输协议,用户通过FTP可从客户机程序向远程主机上传或下载文件,常用于网站代码维护、日常源码备份等。如果攻击者通过FTP匿名访问或者弱口令获取FTP权限,可直接上传webshell,进一步渗透提权,直至控制整个网站服务器。
应急场景:
从昨天开始,网站响应速度变得缓慢,网站服务器登录上去非常卡,重启服务器就能保证一段时间的正常访问,网站响应状态时而飞快时而缓慢,多数时间是缓慢的。针对网站服务器异常,系统日志和网站日志,是我们排查处理的重点。查看Window安全日志,发现大量的登录失败记录:
日志分析
安全日志记录着事件审计信息,包括用户验证(登录、远程访问等)和特定用户在认证后对系统做了什么。打开安全日志,在右边点击筛选当前日志, 在事件ID填入4625,查询到事件ID4625,事件数177007,从这个数据可以看出,服务器正则遭受暴力破解:
进一步使用Log Parser对日志提取数据分析,发现攻击者使用了大量的用户名进行爆破,例如用户名:fxxx,共计进行了17826次口令尝试,攻击者基于“fxxx”这样一个域名信息,构造了一系列的用户名字典进行有针对性进行爆破,如下图:
这里我们留意到登录类型为8,来了解一下登录类型8是什么意思呢?
登录类型8:网络明文(NetworkCleartext)这种登录表明这是一个像类型3一样的网络登录,但是这种登录的密码在网络上是通过明文传输的,WindowsServer服务是不允许通过明文验证连接到共享文件夹或打印机的,据我所知只有当从一个使用Advapi的ASP脚本登录或者一个用户使用基本验证方式登录IIS才会是这种登录类型。“登录过程”栏都将列出Advapi。
4、网站日志分析:
出现的是这个类似命令行的窗口,我们就是在这个窗口输入各种命令对日志进行分析。那我们怎么去运行呢?
最基本的格式:LogParser –i:输入文件的格式 –o:输出格式 “SQL语句”
我们输入一个最简单的例子,把一个IIS日志转化成一个csv格式的表格,那么我们应该怎么做呢?
C:Program FilesLog Parser 2.2> logparser -i:iisw3c -o:csv “SELECT *FROM C:rizhi.log” >D:rizhi.scv
这就是完成了最简单的转换,把C盘中rizhi.log这个日志转换成csv格式并保存到D盘。我们要注意的是-i:iisw3c,-i代表的是输入,iisw3c代表的是日志格式,例子中分析的是iis日志,因此标准格式的iisw3c。-o:scv,-o 代表的是输出,csv是输出文件的格式。”SELECT*FROM”这个是分析日志的SQL命令语句,我们可以用不同的SQL语句来分析日志。
注意:logparser是区分大小写的,因此SQL语句一定要用大写,不然会出错的。
明白了logparser怎么去用,那么接下来给大家介绍一些我们经常用到的操作命令。
--对日志中的url进行归并统计
LogParser -o:csv "SELECT cs-uri-stem, COUNT(*) into a.csv FROM iis.log GROUP BY cs-uri-stem"
--取出所有的asp页面
SELECT COUNT(*) FROM ex040528.log WHERE EXTRACT_EXTENSION(cs-uri-stem) LIKE 'asp'
--求出各个路径的访问次数
SELECT cs-uri-stem, COUNT(*) FROM ex040528.log GROUP BY cs-uri-stem
--求出各个资源类型的访问次数
SELECT EXTRACT_EXTENSION(cs-uri-stem) AS PageType, COUNT(*)
FROM ex040528.log
GROUP BY PageType
--group by两个东东
SELECT EXTRACT_EXTENSION(cs-uri-stem) AS PageType, sc-status, COUNT(*)
FROM ex040528.log
GROUP BY PageType, sc-status
--求出各个资源类型的访问次数,并按访问次数降序排列
SELECT EXTRACT_EXTENSION(cs-uri-stem) AS PageType, COUNT(*) AS PageTypeHits
FROM ex040528.log
GROUP BY PageType
ORDER BY PageTypeHits DESC
--求出各个页面类型,各种返回结果占总点击数的比重
SELECT EXTRACT_EXTENSION(cs-uri-stem) AS PageType, sc-status, MUL(PROPCOUNT(*), 100.0) AS Hits
FROM ex040528.log
GROUP BY PageType, sc-status
ORDER BY PageType, sc-status
--求出各个页面类型、各种返回结果的点击数占各种页面类型点击数的百分比
SELECT EXTRACT_EXTENSION(cs-uri-stem) AS PageType, sc-status, MUL(PROPCOUNT(*) ON (PageType), 100.0) AS Hits
FROM ex040528.log
GROUP BY PageType, sc-status
ORDER BY PageType, sc-status
--求解各种类型的客户端环境占总环境数的百分比
SELECT DISTINCT cs(User-Agent) as IEType,count(*) as total,mul(propcount(*),100) as [percent(%)]
FROM F:/挑战赛资料/ex081213.log
group by IEType
转义字符:
/
注意:
order by后只能有一个desc或者asc
order by的项必须要在select子句中
having子句必须紧跟group子句
用LogParser分析Windows日志
https://yq.aliyun.com/articles/404198
Windows 系统安全事件应急响应
https://xz.aliyun.com/t/2524#toc-5
LogParser: Filter records for specific time frame/date