大家好,我是你们的老朋友全栈君。我们又见面了!
今天,我们将探讨Windows事件日志分析工具LogParser的使用指南。让我们一起来学习如何利用LogParser来分析Windows事件日志,了解不同事件ID的含义以及常见的使用场景。
0x01 基本设置 事件ID及常见场景
在进行Windows事件日志分析时,不同的事件ID有着不同的意义。以下是一些常见的安全事件及其说明:
- 4624 - 登录成功
- 4625 - 登录失败
- 4634 - 注销成功
- 4647 - 用户启动的注销
- 4672 - 使用超级用户(如管理员)进行登录
- 1074 - 通过此事件ID查看计算机的开机、关机、重启的时间以及原因和注释
- 6005 - 表示计算机日志服务已启动,若出现此事件ID,则表示当天系统正常启动
- 104 - 记录所有审计日志清除事件,当有日志被清除时出现此事件ID
- 4624 - 表示成功登陆的用户,用来筛选系统的用户登陆成功情况
- 4625 - 表示登陆失败的用户
- 4720, 4722, 4723, 4724, 4725, 4726, 4738, 4740 - 当用户账号发生创建、删除、改变密码时的事件记录
- 4727, 4737, 4739, 4762 - 当用户组发生添加、删除或组内添加成员时生成的事件
示例:
-
管理员登录
当使用mstsc远程登录某个主机,并且使用的是管理员账号时,成功的情况下会产生ID为4776、4648、4624、4672的事件。

-
执行系统命令
通过Win+R打开运行窗口,输入“CMD”,然后运行“ipconfig”,产生的日志过程如下:
- 进程创建 C:\Windows\System32\cmd.exe
- 进程创建 C:\Windows\System32\ipconfig.exe
- 进程终止 C:\Windows\System32\ipconfig.exe

-
入侵提权过程中的日志
在入侵提权过程中,常使用以下两条语句,这些语句会生成如下日志:
net user USER PASSWORD /add net localgroup administrators USER /add

0x02 日志分析工具
2.1 Log Parser 2.2 下载地址
Log Parser的下载地址为:https://www.php.cn/link/5b85f7b702c448f83eb60d77551e20f3
Log Parser允许通过SQL查询日志。
2.1.1 SQL字段

-
S:String 数组
调用格式:
EXTRACT_TOKEN(EventTypeName, 0, ' ')
- EventTypeName:字段名
- 0:顺序,从0开始
- ' ':分隔符
T:Time。时间类
-
I:integer。整数类
T和I二者都是直接调用:
SELECT TO_DATE(TimeGenerated), TO_UPPERCASE(EXTRACT_TOKEN(EventTypeName, 0, ' ')), SourceName FROM SystemTimeGenerated
2.1.2 字段解释
RecordNumber:日志记录编号,从0开始
TimeGenerated:事件生成时间
TimeWritten:事件记录时间
-
EventID:事件ID

-
EventType:事件类型
参考:Windows Logon Type的含义

EventCategory:未知,参考Windows API ReportEvent 写系统日志
-
String:
各个位置含义:
0安全IP(SID) 1账号名称 2账户域 3登录ID 4安全ID 5账户名 6账户域 7登录ID 8登录类型 9登录进程 10身份验证数据包 11网络账户名称 12账号GUID 13网络账户域 14数据包名 15密钥长度 16进程ID 17进程路径 18源网络地址 19源端口 20模拟级别 21 22 23 24 虚拟账户 25 26 提升的令牌
-
EventLog:
各个位置含义:
0 文件绝对路径
-
EventTypeName:
各个位置含义:
0 审核成功/审核失败
-
SourceName:来源
各个位置含义:
0:来源位置eg:Microsoft-Windows-Security-Auditing
-
SID:查看结果为全空

-
Message:消息
各个位置含义:
0 The description for Event ID 4625 in Source "Microsoft-Windows-Security-Auditing" cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote compute
Data:全空
-
ComputerName:计算机名称
0 WIN-L5ST0VQ25FA 计算机名称
-
EventCategoryName:
0 The name for category 12544 in Source "Microsoft-Windows-Security-Auditing" cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer
主要字段为:
- TimeGenerated:事件生成时间
- EventID:事件ID
- EventType:事件类型
- String:
- EventLog
- ComputerName:计算机名称
2.1.3 命令组成
基本格式:
logparser -i:输入文件格式 [-输入文件参数] -o:输出文件格式 [-输出格式参数] "SQL 查询语句"
示例:
LogParser.exe -i:EVT "SELECT EventID as EventID,TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as username,EXTRACT_TOKEN(Strings,19,'|') as ip FROM C:\Users\172.16.5.30\sec.evtx where EventID=4625"
EventID:该值为System节点下的EventID
-
TimeGenerated:该值类似于EventID,表示时间

-
EXTRACT_TOKEN(Strings,5,'|'):该值为EventData部分的第六部分的值,为TargetUserName的值

2.1.1 常用命令
-
管理员登录时间和登录用户名(登陆成功)
LogParser.exe -i:EVT "SELECT EXTRACT_TOKEN(Strings,1,'|') as username,EXTRACT_TOKEN(Strings,5,'|') as username1,EXTRACT_TOKEN(Strings,19,'|') as ip,EventID,TimeGenerated FROM C:\sec.evtx where EventID = 4625"

-
查看(登陆失败)的记录
LogParser.exe -i:EVT "SELECT TimeGenerated as LoginTime,EXTRACT_TOKEN(Strings,5,'|') as username FROM c:.evtx where EventID=4625"
-
RDP爆破使用的用户名及爆破次数
待续...
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/6c9c4ca27e9848025ab5cc56702e797b
原文链接:https://www.php.cn/link/c8377ad2a50fb65de28b11cfc628d75c










