当前位置: 首页 > news >正文

Windows 主机侧日志排查

0x00 背景

应急响应时,有些日志在主机侧没有收集到日志平台,需要上主机快速排查日志定位问题。

0x01 powershell 日志排查

1. 查询 Security 日志的 EventID 4624(成功登录事件),并列出所有字段

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4624]]" -MaxEvents 1 | ForEach-Object { $xml = [xml]$_.ToXml()$xml.Event.EventData.Data | Select-Object Name, "#text" | Format-Table -AutoSize}

Name                      #text
-----                          -----
SubjectUserSid            S-1-5-18
SubjectUserName           W01Server0111$
SubjectDomainName         yourdomain
SubjectLogonId            0x3e7
TargetUserSid             S-1-5-21-1xxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-1003
TargetUserName            XXXX
TargetDomainName          W01Server0111
TargetLogonId             0x3xxxxxxxx
LogonType                 10
LogonProcessName          User32
AuthenticationPackageName Negotiate
WorkstationName           W01Server0111
LogonGuid                 {00000000-0000-0000-0000-000000000000}
TransmittedServices       -
LmPackageName             -
KeyLength                 0
ProcessId                 0x58
ProcessName               C:\Windows\System32\svchost.exe
IpAddress                 10.111.1.100
IpPort                    0
ImpersonationLevel        %%1833
RestrictedAdminMode       %%1843
TargetOutboundUserName    -
TargetOutboundDomainName  -
VirtualAccount            %%1843
TargetLinkedLogonId       0x3e4cdeb1e
ElevatedToken             %%1843

2. 查询 Security 日志的 EventID 4624(成功登录事件),并过滤特定字段

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4624]]" -MaxEvents 1 | ForEach-Object { $xml = [xml]$_.ToXml(); $xml.Event.EventData.Data | Where-Object { $_.Name -in "TargetUserName", "IpAddress" } | Select-Object Name, "#text"}

Name                      #text
-----                          -----
TargetUserName    XXXX
IpAddress               10.111.1.100

3. 查询 Security 日志的 EventID 4688(进程创建事件),并列出所有字段

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4688]]" -MaxEvents 1 | ForEach-Object { $xml = [xml]$_.ToXml()$xml.Event.EventData.Data | Select-Object Name, "#text" | Format-Table -AutoSize}

 Name               #text
----               -----
SubjectUserSid     S-1-5-18
SubjectUserName    W01Server0111$
SubjectDomainName  yourdomain
SubjectLogonId     0x3e8
NewProcessId       0x1688
NewProcessName     C:\Program Files\TitanAgent\titan_guard.exe
TokenElevationType %%1936
ProcessId          0x24dc
CommandLine        titan_guard.exe  --log
TargetUserSid      S-1-0-0
TargetUserName     -
TargetDomainName   -
TargetLogonId      0x0
ParentProcessName  C:\Windows\System32\cmd.exe
MandatoryLabel     S-1-16-16384

4. 获取时间字段

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4688]]" -MaxEvents 2 | ForEach-Object { $xml = [xml]$_.ToXml()[PSCustomObject]@{Time = $_.TimeCreated NewProcessName = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "NewProcessName" }).'#text'CommandLine = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "CommandLine" }).'#text'SubjectUserName = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "SubjectUserName" }).'#text'}} | Format-Table -AutoSize

 Time                 NewProcessName                                                           CommandLine                                                                 SubjectUserName
----                 --------------                                                           -----------                                                                 ---------------
7/01/2025 11:00:01 PM C:\Program Files\TitanAgent\titan_guard.exe                              titan_guard.exe  --monitor                                                  W01Server0111$
7/01/2025 11:00:02 PM C:\Program Files\TitanAgent\titan_guard.exe                              titan_guard.exe  --full_check                                               W01Server0111$

5. 查询最近1000条日志,并排除processName和CommandLine含有一些关键字的单词

Get-WinEvent -LogName Security -FilterXPath "*[System[EventID=4688]]" -MaxEvents 1000 | Where-Object { $xml = [xml]$_.ToXml()$processName = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "NewProcessName" }).'#text'$CommandLine = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "CommandLine" }).'#text'$processName -notmatch 'titan_guard\.exe' -and $processName -notmatch 'splunk-.*\.exe' -and $processName -notmatch 'conhost\.exe' -and $processName -notmatch 'Dllhost\.exe' -and$CommandLine -notmatch 'agent_.*\.bat'} | ForEach-Object { $xml = [xml]$_.ToXml()[PSCustomObject]@{Time    = $_.TimeCreatedProcess = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "NewProcessName" }).'#text'Command = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "CommandLine" }).'#text'User    = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "SubjectUserName" }).'#text'}} | Format-Table -AutoSize

6. 新增时间过滤条件

$StartTime = Get-Date "2025-07-01 00:00:00" # 开始时间  
$EndTime = Get-Date "2025-07-01 01:50:59"   # 结束时间$Filter = @{LogName   = 'Security'ID        = 4688            # 进程创建事件      StartTime = $StartTime          EndTime   = $EndTime              
}Get-WinEvent -FilterHashtable $Filter -MaxEvents 1000 | Where-Object { $xml = [xml]$_.ToXml()$processName = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "NewProcessName" }).'#text'$CommandLine = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "CommandLine" }).'#text'$processName -notmatch 'titan_guard\.exe' -and $processName -notmatch 'splunk-.*\.exe' -and $processName -notmatch 'conhost\.exe' -and $processName -notmatch 'Dllhost\.exe' -and$CommandLine -notmatch 'agent_.*\.bat'} | ForEach-Object { $xml = [xml]$_.ToXml()[PSCustomObject]@{Time    = $_.TimeCreatedProcess = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "NewProcessName" }).'#text'Command = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "CommandLine" }).'#text'User    = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "SubjectUserName" }).'#text'}} | Format-Table -AutoSize

# 0x02 后记

点赞,收藏,关注,后续会持续更新该笔记!

http://www.lryc.cn/news/598315.html

相关文章:

  • CentOS7 安装 rust 1.82.0
  • 小模数齿轮的加工方法有哪些?
  • 医疗系统国产化实录:SQL Server国产替代,乙方保命指南
  • MySQL 表的操作
  • 【Haproxy】七层代理
  • 详解力扣高频SQL50题之1683. 无效的推文【入门】
  • MySQL深度理解-MySQL事务优化
  • SQL173 店铺901国庆期间的7日动销率和滞销率
  • 详解力扣高频SQL50题之197. 上升的温度【简单】
  • 【MySQL】MySQL 事务和锁详解
  • Redis--哨兵机制详解
  • day20 双向链表
  • 适配器模式——以springboot为例
  • RK3568笔记九十一:QT环境搭建
  • 【Java基础06】ArrayList
  • AudioLLM 开源项目了解学习
  • 构建企业级Docker日志驱动:将容器日志无缝发送到腾讯云CLS
  • 新mac电脑软件安装指南(前端开发用)
  • 2025年计算机网络与教育科学国际会议(ICCNES 2025)
  • IntelliJ IDEA中管理多版本Git子模块的完整指南
  • Elasticsearch安全审计日志设置与最佳实践
  • 从零构建:Jenkins与Kubernetes集成的完整指南
  • 福佑储能轴流风扇对储能安全的重要影响
  • 陪诊小程序系统开发:开启医疗陪护新时代
  • JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
  • 盲盒抽谷机小程序:二次元经济的“社交裂变引擎”如何引爆用户增长?
  • Apache 消息队列分布式架构与原理
  • 移动端自动化Appium框架
  • [数据结构]#7 哈希表
  • 2025年6月GESP(C++六级):学习小组