powershell(11)-Powershell与事件日志
在渗透的过程中,我们难免遇到有删除日志的需求,比如我们做了某些操作是必须要进行日志的删除,同时作为系统管理员也是必须掌握日志的操作与备份等等才能在遇到事件后的第一时间定位攻击和修复方案的提出。我们下面来看看Powershell在Windows事件日志中的表现。
CmdLet
Powershell Version 2.0
关于PowershellV2的关于日志的CmdLet有下面的命令,给大家准备了官方的文档,可以自行研究。
- Clear-EventLog
- Get-EventLog
- Get-WinEvent
- Limit-EventLog
- New-EventLog
- Remove-EventLog
- Show-EventLog
- Write-EventLog
常见的日志操作
下面介绍一下Powershell中常见的事件日志操作
列出事件日志列表
Get-Eventlog -List
查看security日志
Get-Eventlog -LogName security
列出最近日志
Get-EventLog -LogName security -Newest 5
列出指定时间段内的日志
Get-EventLog -LogName security -After 2017-11-15 -Before 2017-11-17
根据事件ID列出日志
Get-EventLog -LogName security -InstanceId 4624
获取某一条事件日志
通过index获取:
Get-EventLog -LogName system -Index 32324
那么当我们获取到一条日志之后我们就把他完全看作是一个对象了,我们直接对其操作即可,下面是查看日志的一些属性的方法。
查看此条日志的一些属性
$log = Get-EventLog -LogName system -Index 32324
- 类型
$log.EntryType
# Warning
- 事件ID
$log.InstanceId
# 1014
- 日志消息
$log.Message
# 在没有配置的 DNS 服务器响应之后,名称 teredo.ipv6.microsoft.com 的名称解析超时。
- 事件源
$log.Source
# Microsoft-Windows-DNS-Client
- 日志产生时间
$log.TimeGenerated
# 2017年11月17日 21:33:17
- 产生日志的用户
$log.UserName
# NT AUTHORITY\NETWORK SERVICE
删除事件日志
Remove-Eventlog
这个cmdlet会注销掉事件源
Remove-EventLog -LogName security
仅注销事件源,不删除日志
注销事件源后 app将无法写入事件日志
Remove-EventLog -Source app
Clear-Eventlog
这个cmdlet仅会清除日志
Clear-Eventlog -LogName security
# 可以直接远程删除
Clear-Eventlog -LogName security -computername localhost, Server02