H0e4a0r1t的小屋

Windows日志的删除与绕过

字数统计: 633阅读时长: 2 min
2019/10/01 Share

Windows日志的删除与绕过

0x01. Windows日志

Windows日志包括五个类别:

  • 应用程序(Application)
  • 安全(Security)
  • Setup
  • 系统(System)
  • 转发事件(Forwarded Events)

1、通过面板

位置如下:控制面板–》系统和安全–》管理工具–》查看事件日志

1.png

2、 通过Powershell

常用命令如下:

(管理员权限)

查看所有日志:

1
Get-WinEvent

2.png

查看应用程序类别下的日志:

1
Get-WinEvent -FilterHashtable @{logname="Application";}

3.png

0x02. Windows日志的常用清除方法

1、wevtutil.exe

操作系统默认包含,支持系统:Win7及以上

常用命令如下:

(1) 统计日志列表,查询指定类别的所有日志信息,包含时间,数目

1
wevtutil.exe gli Security

操作如下图

4.png

(2) 查看指定类别的日志内容

1
wevtutil qe /f:text Security

操作如下图

5.png

(3) 删除该类日志所有内容

1
wevtutil cl Application

操作如下图

6.png

Application日志全部清除,数目为0

(4) 删除单条内容

尚不支持

0x03. Windows日志的绕过方法

参考:https://artofpwn.com/phant0m-killing-windows-event-log.html

绕过原理:

Windows日志对应于eventlog服务,找到该服务对应的进程svchost.exe,进而筛选出svchost.exe进程中具体实现日志功能的线程,终止有关Windows事件日志服务的所有线程,调用TerminateThread结束线程,破坏日志记录功能破坏日志记录功能

特别的地方:

Windows事件日志服务的svchost.exe进程尚未停止,而只有相关线程已停止;因此,目标系统将无法收集日志,并且因为无法收集日志而将无法发送日志,但是Windows事件日志服务仍然正在运行

绕过方法一

1、 定位eventlog服务对应进程svchost.exe的pid

2、 遍历该进程中的所有线程

3、 判断线程是否满足条件

Windows Event Log 服务需要调用wevtsvc.dll,完整路径为%WinDir%\System32\wevtsvc.dll

并且,如果线程调用了wevtsvc.dll,就可以判读该线程实现了日志记录功能

4、 结束线程

使用TerminateThread

Phant0m(https://github.com/hlldz/Invoke-Phant0m

powershell脚本执行后,Windows日志功能失效,无法记录日志,操作如下图

3-1.png

5、 恢复方法

结束进程svchost.exe

重新开启Windows Event Log 服务:

1
net start eventlog

操作如下图

3-2.png

先水一篇吧,下期再说 :)

参考:https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E6%97%A5%E5%BF%97%E7%9A%84%E5%88%A0%E9%99%A4%E4%B8%8E%E7%BB%95%E8%BF%87/

CATALOG
  1. 1. Windows日志的删除与绕过
    1. 1.1. 0x01. Windows日志
    2. 1.2. 0x02. Windows日志的常用清除方法
    3. 1.3. 1、wevtutil.exe
    4. 1.4. 0x03. Windows日志的绕过方法