LogParser解析Windows系统日志常用SQL合集

LogParser解析Windows系统日志常用SQL合集

本文建议先把logparser添加到环境变量再配合powershell使用。

将LogParser添加到环境变量

被远程登录记录

事件ID:4625 登录失败

在 Security 日志中事件 ID 为 4625 代表身份验证失败,类型 3 代表从网络登录。但Logon Type 3 并不一定是 RDP 登录失败日志,可能是共享资源或打印机之类的网络登录,并且一些该类型的日志并不能获取到源 IP。

LogParser -i:EVT -o:DATAGRID "
SELECT TimeGenerated AS 登录时间
    , EXTRACT_TOKEN(Strings, 5, '|') AS 用户名
    , EXTRACT_TOKEN(Strings, 13, '|') AS 计算机名
    , EXTRACT_TOKEN(Strings, 10, '|') AS 登录类型
    , EXTRACT_TOKEN(Strings, 19, '|') AS 源IP
    , EXTRACT_TOKEN(Strings, 17, '|') AS 请求进程ID
    , EXTRACT_TOKEN(Strings, 18, '|') AS 请求进程名
FROM Security
WHERE eventid = 4625
    AND 登录类型 LIKE '3'
    OR 登录类型 LIKE '10'
"

事件ID:4624 登录成功

在 Security 日志中事件 ID 为 4624,类型为 10 或 7,其中 7 代表会话重连(锁屏状态下重新登录)。

LogParser -i:EVT -o:DATAGRID "
SELECT TimeGenerated AS 登录时间
    , EXTRACT_TOKEN(Strings, 5, '|') AS 用户名
    , EXTRACT_TOKEN(Strings, 11, '|') AS 计算机名
    , EXTRACT_TOKEN(Strings, 8, '|') AS 登录类型
    , EXTRACT_TOKEN(Strings, 18, '|') AS 登录源IP
    , EXTRACT_TOKEN(Strings, 16, '|') AS 请求进程ID
    , EXTRACT_TOKEN(Strings, 17, '|') AS 请求进程名
FROM Security
WHERE eventid = 4624
    AND 用户名 NOT LIKE '%$'
"

事件ID:21 登录会话

日志文件名:Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx

LogParser 无法直接读取 Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx 日志文件,需要拷贝到其他路径下并指定文件路径。

logparser -i:evt -o:datagrid "
SELECT TimeGenerated AS 登录时间, ComputerName AS 计算机名
    , EXTRACT_TOKEN(Strings, 0, '|') AS 登录用户名
    , EXTRACT_TOKEN(Strings, 2, '|') AS 登录源
FROM your.evtx
WHERE EventID = 21
"

事件ID:22 shell启动

日志文件名:Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx

logparser -i:evt -o:datagrid "
SELECT TimeGenerated AS 登录时间, ComputerName AS 计算机名
    , EXTRACT_TOKEN(Strings, 0, '|') AS 登录用户名
    , EXTRACT_TOKEN(Strings, 2, '|') AS 登录源
FROM your.evtx
WHERE EventID = 22
"

事件ID:1149 远程登录记录

日志文件名:Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtx

LogParser.exe -i:reg -o:datagrid "
select LastWriteTime as 最后登录时间
	,KeyName as 远程IP
	,Value as 用户名 
from \HKEY_CURRENT_USER\SOFTWARE\Microsoft 
where Path LIKE '%\Servers%'
"

RDP会话断开/重连/注销

会话连接意外中断

会话断开(连接意外中断)会产生以下系列的日志:

  • Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
    • 24 RDP 会话断开
    • 40 RDP 会话断开或重连
  • Security
    • 4779 用户从 RDP 会话断开
    • 4634 账号注销

连接断开日志包含一个 Reason 字段,具体含义参考:ExtendedDisconnectReasonCode enumeration – Win32 apps | Microsoft Docs

事件ID:24 RDP会话断开

LogParser.exe  -i:EVT -o:DATAGRID "
SELECT
    TimeGenerated AS 登录时间,
    ComputerName AS 计算机名,
    EXTRACT_TOKEN(Strings, 0, '|') AS 用户名,
    EXTRACT_TOKEN(Strings, 1, '|') AS 会话ID,
    EXTRACT_TOKEN(Strings, 2, '|') AS 源IP
FROM Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
WHERE
    EventID = 24
"

会话连接主动关闭

会话断开(连接主动关闭)会产生以下系列的日志:

  • Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
    • 24 RDP 会话断开
    • 39 RDP 会话断开
    • 40 RDP 会话断开或重连
  • Security
    • 4779 用户从 RDP 会话断开
    • 4634 账号注销

主动关闭指的是用户有目的的断开,而不仅仅是通过关闭客户端来断开连接,通常是指通过开始菜单的断开连接选项执行的。

通过事件 ID 24 或者 ID 4779 可以确定 RDP 会话断开,如果需要确定是否主动关闭连接,需关联 ID 39 一同分析。

事件ID:39 RDP会话断开

LogParser.exe  -i:EVT -o:DATAGRID "
    SELECT
        TimeGenerated AS 登录时间,
        ComputerName AS 计算机名,
        EXTRACT_TOKEN(Strings, 0, '|') AS 目标会话,
        EXTRACT_TOKEN(Strings, 1, '|') AS 源
    FROM Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
    WHERE
        EventID = 39
    "

会话重连

会话重连一般指远程登录超时后屏幕锁定了,或者手动操作的锁定,在登录屏幕下重新登录的方式。在远程登录全屏模式下,可以通过 Win+L锁定屏幕,或执行 rundll32.exe user32.dll LockWorkStation 来锁定屏幕。

会话重连成功的记录(ID 4624 类型 7)

LogParser -i:EVT -o:DATAGRID "
SELECT TimeGenerated AS 登录时间
    , EXTRACT_TOKEN(Strings, 5, '|') AS 用户名
    , EXTRACT_TOKEN(Strings, 11, '|') AS 计算机名
    , EXTRACT_TOKEN(Strings, 8, '|') AS 登录类型
    , EXTRACT_TOKEN(Strings, 18, '|') AS 登录源IP
    , EXTRACT_TOKEN(Strings, 16, '|') AS 请求进程ID
    , EXTRACT_TOKEN(Strings, 17, '|') AS 请求进程名
FROM Security
WHERE eventid = 4624
    AND 登录类型 LIKE '7'
"

会话重连失败的记录(ID 4625 类型 7)

LogParser -i:EVT -o:DATAGRID "
SELECT TimeGenerated AS 登录时间
    , EXTRACT_TOKEN(Strings, 5, '|') AS 用户名
    , EXTRACT_TOKEN(Strings, 13, '|') AS 计算机名
    , EXTRACT_TOKEN(Strings, 10, '|') AS 登录类型
    , EXTRACT_TOKEN(Strings, 19, '|') AS 源IP
    , EXTRACT_TOKEN(Strings, 17, '|') AS 请求进程ID
    , EXTRACT_TOKEN(Strings, 18, '|') AS 请求进程名
FROM Security
WHERE eventid = 4625
    AND 登录类型 LIKE '7'
"

事件ID:23 会话注销

日志文件名:Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx

LogParser.exe  -i:EVT -o:DATAGRID "
SELECT
    TimeGenerated AS 登录时间,
    ComputerName AS 计算机名,
    EXTRACT_TOKEN(Strings, 0, '|') AS 用户名,
    EXTRACT_TOKEN(Strings, 1, '|') AS 会话ID
FROM Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
WHERE EventID = 23
"

日志服务记录

事件ID:7031 日志服务重启

LogParser.exe -i:evt -o:datagrid "
SELECT TimeGenerated AS 时间, EXTRACT_TOKEN(Strings, 0, '|') AS 服务名
    , EXTRACT_TOKEN(Strings, 4, '|') AS 动作
    , Message AS 描述
FROM System
WHERE eventid = 7031
    AND 服务名 = 'Windows Event Log' 
"

事件ID:1102 安全日志清除记录

LogParser.exe -i:evt -o:datagrid "
SELECT TimeGenerated AS 时间, Message AS 描述
FROM Security
WHERE eventid = 1102
"

事件ID:104 其他日志清除记录

LogParser.exe -i:evt -o:datagrid "
SELECT TimeGenerated AS 时间
    , EXTRACT_TOKEN(Strings, 0, '|') AS 用户
    , Message AS 描述
FROM system
WHERE eventid = 104
"

计划任务(64位系统无法查询)

由于logparser只有编译好的32位版本,在64位系统上获取注册表信息会被重定向导致获取信息为空。

LogParser.exe -i:reg -o:datagrid "
SELECT *
FROM 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache'
"

计划任务(32位系统)

计划任务(64位系统)

因此不建议使用logparser获取注册表信息!

RDP开放端口

LogParser.exe -i:reg -o:datagrid "
select LastWriteTime as 最后写入时间
	,Value as 远程端口 
from 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' where ValueName like 'PortNumber'
"

RDP远程登录其他主机记录

远程登录记录需要通过查询注册表获取。

LogParser.exe -i:reg -o:datagrid "
select LastWriteTime as 最后登录时间
	,KeyName as 远程IP
	,Value as 用户名 
'HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\Servers' 
"

Powershell执行记录

在powershell日志中,执行一个powershell命令会产生6条日志,其中2条引擎生命周期日志(EventID:400启用;EvnetID:403停止),6条程序生命周期日志(EventID:600)(Registry、Alias、Environment、FileSystem、Function、Variable的启动)

powershell 主要关注hostApplication的值。

事件ID:400 启用

日志文件名:Windows PowerShell.evtx

logparser.exe -i:evt -o:datagrid "
SELECT TimeGenerated AS 时间
    , EXTRACT_TOKEN(EXTRACT_TOKEN(Strings, 1, 'Host Application = '), 0, 'Engine Version') AS 数据
FROM your.evtx
WHERE eventid = 4103
"

注:logparser使用表格格式输出有长度限制,可能显示不全。

事件ID:4103 正在执行管道

日志文件名:Microsoft-Windows-PowerShell%4Operational.evtx

logparser.exe -i:evt "
SELECT TimeGenerated AS 时间, ComputerName AS 计算机名, Sid
    , EXTRACT_TOKEN(EXTRACT_TOKEN(Strings, 1, 'Host Application = '), 0, 'Engine Version') AS 数据
FROM your.evtx
WHERE eventid = 4103
"

事件ID: xxxx powershell下载文件记录

日志文件名:Microsoft-Windows-PowerShell-DesiredStateConfiguration-FileDownloadManager%4Operational.evtx

待补充

应用程序远程登录

日志文件名:Application.evtx

MSSQL远程登录

事件ID:18456 登录失败

logparser.exe -i:evt -o:datagrid "
SELECT TimeGenerated AS 时间, SourceName AS 来源, ComputerName AS 计算机名
    , EXTRACT_TOKEN(Strings, 0, '|') AS 登录名
    , EXTRACT_TOKEN(Strings, 1, '|') AS 原因
    , EXTRACT_TOKEN(Strings, 2, '|') AS 源IP
FROM Application.evtx
WHERE EventID = 18456
"

事件ID:18454 登录成功

logparser.exe -i:evt -o:datagrid "
select TimeGenerated as 时间
	,SourceName as 来源
	,ComputerName as 计算机名
	,EXTRACT_TOKEN(Strings,0,'|') as username as 登录名
	,EXTRACT_TOKEN(Strings,1,'|') as 原因
	,EXTRACT_TOKEN(Strings,2,'|') as 源IP 
from Application.evtx 
where EventID=18454
"

事件ID:15457 xp_cmdshell启用信息

logparser.exe -i:evt -o:datagrid  "
SELECT TimeGenerated AS 时间, SourceName AS 来源, ComputerName AS 计算机名
    , EXTRACT_TOKEN(Strings, 0, '|') AS 方法
    , EXTRACT_TOKEN(Strings, 1, '|') AS 状态1
    , EXTRACT_TOKEN(Strings, 2, '|') AS 状态2
FROM Application.evtx
WHERE EventID = 15457
    AND 方法 = 'xp_cmdshell'
"

Print Friendly, PDF & Email
赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。

3条评论

feng 发布于2:27 下午 - 4月 27, 2022

大佬,一直跟随你,就是想问问能不能出一期关于elk获取服务器日志的文章呢,五体投地,万分感谢

    Zgao 发布于1:02 下午 - 5月 10, 2022

    下次一定!

避坑指南 发布于9:04 下午 - 4月 22, 2022

虽然咯不懂,但是不妨碍我看看