安服仔应急响应 LogParser 原生日志分析

admin 2024年2月24日22:48:30评论19 views字数 12193阅读40分38秒阅读模式

create by pphua 2023/05/05

logparser下载 https://www.microsoft.com/en-us/download/details.aspx?id=24659

LogParser –i:输入文件的格式 –o:想要输出的格式 :SQL语句"

在线事件ID查询 https://learn.microsoft.com/zh-cn/windows/security/threat-protection/auditing/security-auditing-overview

安服仔应急响应 LogParser 原生日志分析

pdf版本下载 https://learn.microsoft.com/pdf?url=https%3A%2F%2Flearn.microsoft.com%2Fzh-cn%2Fwindows%2Fsecurity%2Fthreat-protection%2Fauditing%2Ftoc.json

打开系统事件查看器

安服仔应急响应 LogParser 原生日志分析

将LogParser添加到环境变量

安服仔应急响应 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.evtx
WHERE eventid = 4625
AND 登录类型 LIKE '3'
OR 登录类型 LIKE '10'
"
安服仔应急响应 LogParser 原生日志分析

事件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 '%$'
"

过滤指定时间

.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 '%$'
AND TimeGenerated>'2023-01-10 23:32:11' and TimeGenerated<'2023-10-11 23:34:00'
"

事件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启动

.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_USERSOFTWAREMicrosoft
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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionScheduleTaskCache'
"

事件ID:4698 已创建计划任务

.LogParser.exe -i:EVT -o:datagrid "
select TimeWritten as 创建时间
,extract_token(Strings,1,'|') as 创建者
,extract_token(Strings,4,'|') as 计划任务名称
,extract_token(Strings,1,'Exec>') as 执行命令
,extract_token(Strings,1,'Enabled>') as 是否启用
from Security where eventid=4698
"

事件ID:4699 已删除计划任务

.LogParser.exe -i:EVT -o:datagrid "
select TimeGenerated as 删除时间
,extract_token(Strings,1,'|') as 删除者
,extract_token(Strings,4,'|') as 计划任务名称
from Security where eventid=4699
"

系统用户变更记录

事件ID:4720 用户创建

.LogParser.exe -i:EVT -o:datagrid "
select TimeGenerated as 创建时间
,extract_token(Strings,0,'|') as 被创建用户名
,extract_token(Strings,4,'|') as 创建者
from Security where eventid=4720
"

事件ID:4722 用户启用

.LogParser.exe -i:EVT -o:datagrid "
select TimeGenerated as 启用时间
,extract_token(Strings,0,'|') as 被启用用户名
,extract_token(Strings,4,'|') as 启用者
from Security where eventid=4722
"

事件ID:4726 用户删除

.LogParser.exe -i:EVT -o:datagrid "
select TimeGenerated as 删除时间
,extract_token(Strings,0,'|') as 被删除用户名
,extract_token(Strings,4,'|') as 删除者
from Security where eventid=4726
"

事件ID:4732 用户属组变更

.LogParser.exe -i:EVT -o:datagrid "
select TimeGenerated as 操作时间
,extract_token(Strings,0,'|') as 被变更用户名
,extract_token(Strings,2,'|') as 变更组
,extract_token(Strings,6,'|') as 操作者
from Security where eventid=4732
"

RDP开放端口

.LogParser.exe -i:reg -o:datagrid "
select LastWriteTime as 最后写入时间
,Value as 远程端口
from 'HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp' where ValueName like 'PortNumber'
"

RDP远程登录其他主机记录

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

.LogParser.exe -i:reg -o:datagrid "
select LastWriteTime as 最后登录时间
,KeyName as 远程IP
,Value as 用户名
'HKEY_CURRENT_USERSOFTWAREMicrosoftTerminal Server ClientServers'
"

历史进程

.LogParser -i:EVT -o:DATAGRID "
SELECT TimeGenerated AS 进程启动时间
, EXTRACT_TOKEN(Strings, 0, '|') AS 用户SID
, EXTRACT_TOKEN(Strings, 5, '|') AS 进程名
FROM Security
WHERE eventid = 4688
"

域控Hash

.LogParser -i:EVT -o:DATAGRID "
SELECT *
FROM Security
WHERE eventid = 4662
"

psexec

.LogParser -i:EVT -o:DATAGRID "
SELECT *
FROM Security
WHERE eventid = 4652 or eventid = 7045 or eventid = 4697
"

进程崩溃

.LogParser -i:EVT -o:DATAGRID "
SELECT TimeGenerated AS 崩溃时间
, EXTRACT_TOKEN(Strings, 10, '|') AS 进程名
FROM Application
WHERE eventid = 1000
"
安服仔应急响应 LogParser 原生日志分析

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 Windows%40PowerShell.evtx
WHERE eventid = 4103
"

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

事件ID:4103 正在执行管道

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

CMD命令执行记录

事件ID:4688 创建新进程

4688 Windows默认没有开启,需要提前手动开启。

.LogParser.exe -i:EVT -o:DATAGRID "
SELECT TimeGenerated AS 时间, EXTRACT_TOKEN(Strings, 1, '|') AS 用户名
, EXTRACT_TOKEN(Strings, 4, '|') AS 进程pid
, EXTRACT_TOKEN(Strings, 5, '|') AS 进程名
, EXTRACT_TOKEN(Strings, 7, '|') AS 父进程ppid
, EXTRACT_TOKEN(Strings, 13, '|') AS 父进程名
, EXTRACT_TOKEN(Strings, 8, '|') AS 命令行
FROM Security.evtx
WHERE EventID = 4688
"

事件ID:4689 结束进程

.LogParser.exe -i:EVT  -o:DATAGRID "
SELECT TimeGenerated AS 时间, EXTRACT_TOKEN(Strings, 1, '|') AS 用户名
, EXTRACT_TOKEN(Strings, 4, '|') AS 状态码
, EXTRACT_TOKEN(Strings, 5, '|') AS 进程pid
, EXTRACT_TOKEN(Strings, 6, '|') AS 进程名
FROM Security.evtx
WHERE EventID = 4689
"

如何开启CMD命令审核策略?

运行 secpol.msc 可以打开本地安全策略,依次点开本地策略-审核策略。可以看到windows默认情况是没有开启审核策略的,不开启策略的话windows就不会记录某些事件,比如进程创建事件等。需要逐一手动修改审核策略的属性,将审核操作选上成功和失败。

安服仔应急响应 LogParser 原生日志分析

或者用管理员权限的cmd执行下面的命令一键开启。

echo [version] >1.inf && echo signature="$CHICAGO$" >>1.inf && echo [Event Audit] >>1.inf && echo AuditSystemEvents=3 >>1.inf && echo AuditObjectAccess=3 >>1.inf && echo AuditPrivilegeUse=3 >>1.inf && echo AuditPolicyChange=3 >>1.inf && echo AuditAccountManage=3 >>1.inf && echo AuditProcessTracking=3 >>1.inf && echo AuditDSAccess=3 >>1.inf && echo AuditAccountLogon=3 >>1.inf && echo AuditLogonEvents=3 >>1.inf && secedit /configure /db 1.sdb /cfg 1.inf /log 1.log

网络请求记录

事件ID:1057 WinINet网络请求记录

该日志默认是关闭的,需要提前开启。抓C2的很好使,懂的都懂。应用程序和服务日志->Microsoft->Windows->WinINet(Microsoft-Windows-WinINet),右键启动 Microsoft-Windows-WinINet/UsageLog 日志。

cs马回连c2的请求记录

安服仔应急响应 LogParser 原生日志分析

也可以通过命令行开启。wevtutil gl "Microsoft-Windows-WinINet/UsageLog" wevtutil sl /e /q "Microsoft-Windows-WinINet/UsageLog"

由于该日志是etl格式的,所以logparser无法解析。

安服仔应急响应 LogParser 原生日志分析

事件ID:5156 外对内网络连接

5156的事件也需要提前开启,开启的方式和4688相同。

.LogParser.exe -i:EVT -o:datagrid "
select TimeGenerated As 时间,extract_token(Strings,1,'|') As 应用程序名
         ,extract_token(Strings,0,'|') as 进程id
         ,extract_token(Strings,2,'|') as 方向
         ,extract_token(Strings,3,'|') as 源IP
         ,extract_token(Strings,4,'|') as 源端口
         ,extract_token(Strings,5,'|') as 目的IP
         ,extract_token(Strings,6,'|') as 目的端口
         ,extract_token(Strings,7,'|') as 协议号 
from Security where eventid=5156 and 方向='%%14593'
"

事件ID:5156 内对外网络连接

.LogParser.exe -i:EVT -o:datagrid "
select TimeGenerated As 时间,extract_token(Strings,1,'|') As 应用程序名
,extract_token(Strings,0,'|') as 进程id
,extract_token(Strings,2,'|') as 方向
,extract_token(Strings,3,'|') as 源IP
,extract_token(Strings,4,'|') as 源端口
,extract_token(Strings,5,'|') as 目的IP
,extract_token(Strings,6,'|') as 目的端口
,extract_token(Strings,7,'|') as 协议号
from Security where eventid=5156 and 方向='%%14592'
"

特权调用

域内主机才会有这类事件ID。

事件ID:4673已调用特权服务

.LogParser.exe -i:evt -o:datagrid "
SELECT TimeGenerated AS 登录时间,
EXTRACT_TOKEN(Strings, -2, '|') AS 进程pid,
EXTRACT_TOKEN(Strings, 1, '|') AS 帐户名称,
EXTRACT_TOKEN(Strings, 2, '|') AS 帐户域,
EXTRACT_TOKEN(Strings, -3, '|') AS 特权名称,
EXTRACT_TOKEN(Strings, -1, '|') AS 进程名
FROM
Security.evtx
WHERE
EventID = 4673
"

特权名称作用可以参考:https://learn.microsoft.com/zh-cn/windows/security/threat-protection/auditing/event-4673

事件ID:4674尝试对特权对象执行操作

.LogParser.exe -i:evt -o:datagrid "
SELECT TimeGenerated AS 登录时间,
EXTRACT_TOKEN(Strings, -2, '|') AS 进程pid,
EXTRACT_TOKEN(Strings, 1, '|') AS 帐户名称,
EXTRACT_TOKEN(Strings, 2, '|') AS 帐户域,
EXTRACT_TOKEN(Strings, 5, '|') AS 对象类型,
EXTRACT_TOKEN(Strings, 6, '|') AS 对象名称,
EXTRACT_TOKEN(Strings, -3, '|') AS 特权名称,
EXTRACT_TOKEN(Strings, -1, '|') AS 进程名
FROM
Security.evtx
WHERE
EventID = 4674
"
安服仔应急响应 LogParser 原生日志分析

应用程序远程登录

日志文件名: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
"
安服仔应急响应 LogParser 原生日志分析

事件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'
"

推荐项目:windodws-logs-analysis - https://github.com/dogadmin/windodws-logs-analysis

原文始发于微信公众号(Evilc0de 安全团队):安服仔应急响应 LogParser 原生日志分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月24日22:48:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安服仔应急响应 LogParser 原生日志分析http://cn-sec.com/archives/2148905.html

发表评论

匿名网友 填写信息