Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。
存放目录:X:\Windows\System32\winevt\Logs\
System.evtx 系统日志
Application.evtx 应用程序日志
Security.evtx 安全日志
审核策略与事件查看器
# 管理工具 → 本地安全策略 → 本地策略 → 审核策略,参考配置操作:
# 设置合理的日志属性,即日志最大大小、事件覆盖阀值等:
"Window+R",输入 ”eventvwr.msc“
事件日志分析
对于Windows事件日志分析,不同的EVENT ID代表了不同的意义,摘录一些常见的安全事件的说明:
事件ID | 说明 |
---|---|
4624 | 登录成功 |
4625 | 登录失败 |
4634 | 注销成功 |
4647 | 用户启动的注销 |
4672 | 使用超级用户(如管理员)进行登录 |
4720 | 创建用户 |
每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:
登录类型 | 描述 | 说明 |
---|---|---|
2 | c(Interactive) | 用户在本地进行登录。 |
3 | 网络(Network) | 最常见的情况就是连接到共享文件夹或共享打印机时。 |
4 | 批处理(Batch) | 通常表明某计划任务启动。 |
5 | 服务(Service) | 每种服务都被配置在某个特定的用户账号下运行。 |
7 | 解锁(Unlock) | 屏保解锁。 |
8 | 网络明文(NetworkCleartext) | 登录的密码在网络上是通过明文传输的,如FTP。 |
9 | 新凭证(NewCredentials) | 使用带/Netonly参数的RUNAS命令运行一个程序。 |
10 | 远程交互,(RemoteInteractive) | 通过终端服务、远程桌面或远程协助访问计算机。 |
11 | 缓存交互(CachedInteractive) | 以一个域用户登录而 |
详细的安全事件的说明:
https://support.microsoft.com/zh-cn/help/977519/description-of-security-events-in-windows-7-and-in-windows-server-2008
案例1:可以利用eventlog事件来查看系统账号登录情况:
在“开始”菜单上,依次指向“所有程序”、“管理工具”,然后单击“事件查看器”;
在事件查看器中,单击“安全”,查看安全日志;
在安全日志右侧操作中,点击“筛选当前日志”,输入事件ID进行筛选。
4624 --登录成功
4625 --登录失败
4634 -- 注销成功
4647 -- 用户启动的注销
4672 -- 使用超级用户(如管理员)进行登录
我们输入事件ID:4625进行日志筛选,发现事件ID:4625,事件数175904,即用户登录失败了175904次,那么这台服务器管理员账号可能遭遇了暴力猜解。
案例2:可以利用eventlog事件来查看计算机开关机的记录:
1、在“开始”菜单上,依次指向“所有程序”、“管理工具”,然后单击“事件查看器”;
2、在事件查看器中,单击“系统”,查看系统日志;
3、在系统日志右侧操作中,点击“筛选当前日志”,输入事件ID进行筛选。
其中事件ID 6006 ID6005、 ID 6009就表示不同状态的机器的情况(开关机)。
6005 信息 EventLog 事件日志服务已启动。(开机)
6006 信息 EventLog 事件日志服务已停止。(关机)
6009 信息 EventLog 按ctrl、alt、delete键(非正常)关机
我们输入事件ID:6005-6006进行日志筛选,发现了两条在2018/7/6 17:53:51左右的记录,也就是我刚才对系统进行重启的时间。
日志分析工具
Log Parser
Log Parser(是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件、XML 文件、CSV(逗号分隔符)文件,以及操作系统的事件日志、注册表、文件系统、Active Directory。它可以像使用 SQL 语句一样查询分析这些数据,甚至可以把分析结果以各种图表的形式展现出来。
Log Parser 2.2下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=24659
Log Parser 使用示例:https://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/
基本查询结构
Logparser.exe –i:EVT –o:DATAGRID "SELECT * FROM c:xx.evtx"
# 登录成功的所有事件
LogParser.exe -i:EVT -o:DATAGRID "SELECT * FROM c:\xx\Security.evtx where EventID=4624"
# 指定登录时间范围的事件
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM c:Security.evtx where TimeGenerated>'2018-06-19 23:32:11' and TimeGenerated<'2018-06-20 23:34:00' and EventID=4624"
# 提取登录成功的用户名和IP:
LogParser.exe -i:EVT –o:DATAGRID "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as Username,EXTRACT_TOKEN(Message,38,' ') as Loginip FROM c:Security.evtx where EventID=4624"
# 查询登录失败的事件
LogParser.exe -i:EVT –o:DATAGRID "SELECT * FROM c:Security.evtx where EventID=4625"
# 提取登录失败用户名进行聚合统计:
LogParser.exe -i:EVT "SELECT EXTRACT_TOKEN(Message,13,' ') as EventType,EXTRACT_TOKEN(Message,19,' ') as user,count(EXTRACT_TOKEN(Message,19,' ')) as Times,EXTRACT_TOKEN(Message,39,' ') as Loginip FROM c:Security.evtx where EventID=4625 GROUP BY Message"
# 系统历史开关机记录
LogParser.exe -i:EVT –o:DATAGRID "SELECT TimeGenerated,EventID,Message FROM c:System.evtx where EventID=6005 or EventID=6006"
# Log Parser Lizard
LPL Quick Query
Log Parser Lizard
http://www.lizard-labs.com/log_parser_lizard_installation_complete.aspx
--rem 运行最慢的20个页面
select Top 20
date,time,s-ip,cs-method,cs-uri-stem,s-port,cs-username,c-ip,cs(User-Agent),sc-status,sc-substatus,sc-win32-status,time-taken
FROM D:\iislog\W3SVC799753000\u_ex190614.log
Order by time-taken Desc
--rem 访问量最大的IP的访问明细
Select cs-uri-stem as [RequestURI],count(cs-uri-stem) AS VisitCounts,c-ip AS [ClientIP] FROM D:\iislog\W3SVC799753000\u_ex190614.log
GROUP BY cs-uri-stem,c-ip ORDER BY VisitCounts DESC
Log Parser Studio
https://gallery.technet.microsoft.com/Log-Parser-Studio-cd458765
待研究
参考资料:
https://www.secpulse.com/archives/106858.html