跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

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


剑道尘心

推荐的帖子

0x00 前言

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

对于完整的渗透测试,通常会清除并绕过Windows日志。对于防御者来说,了解常见的绕过方法也有助于更好的保护自己的系统。

因此,本文将介绍常见的清除和绕过Windows日志的方法,分享经验,帮助大家。

0x01 简介

本文将介绍以下内容:

Windows日志的常用清除方法

绕过Windows日志的两种方法

0x02 Windows日志

Windows日志包括五个类别:

应用程序

安全的

设置

系统

转发事件

查看方式:

1、通过面板

位置如下:

控制面板\系统和安全-查看事件日志-Windows日志

如下图

2-1.png

2、通过Powershell

常见命令如下:

(管理员权限)

查看所有日志:

获得WinEvent

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

get-WinEvent-filter hashtable @ { logname=' Application ';}

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

1、wevtutil.exe

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

常见命令如下:

(1)统计日志列表,查询所有日志信息,包括时间和数量。

wevtutil.exe gli应用程序

操作如下

2-2.png

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

文本应用程序

操作如下

2-3.png

(3)删除此类日志的所有内容。

wevtutil cl应用程序

操作如下

2-4.png

清除所有应用程序日志,数量为0。

(4)删除一条内容

尚不支持。

2、NSA DanderSpiritz

DanderSpritz是NSA的一个界面远程控制工具。

请参考:

https://3gstudent.github.io/NSA-DanderSpiritz测试指南-木马生成和测试

常见命令如下:

(1)统计日志列表,查询所有日志信息,包括时间和数量。

事件日志查询-日志应用程序

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

event log filter-日志应用程序-编号10

(3)删除此类日志的所有内容。

事件日志清除-日志应用程序

(4)删除一条内容

事件日志编辑-记录应用程序-记录1

注:

记录序列号可以通过eventlogfilter获得。

0x04 Windows日志的绕过方法

本文中介绍的思想参考了Halil Dalabasmaz@hlldz的文章,地址如下:

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

绕过原理:

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

特别的地方:

因为只有实现日志功能的线程已经结束,所以Windows事件日志服务并没有被销毁,它的状态仍然是正在运行。

绕过方法一

1、定位事件日志服务对应进程的svchost.exe的pid

2、在此过程中遍历所有线程

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

Windows事件日志服务需要调用wevtsvc.dll,完整路径为% windir % \ system32 \ wevtsvc.dll。

而且,如果线程调用了wevtsvc.dll,就可以判断线程已经实现了日志功能。

4、端螺纹

使用终端线程

注:

Halil Dalabasmaz@hlldz使用powershell实现方法一。完整的代码可以参考:

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

执行powershell脚本后,Windows日志功能失败,无法记录日志。操作如下所示

3-1.png

5、恢复方法

结束流程svchost.exe

要重新启动Windows事件日志服务:

网络启动事件日志

操作如下

3-2.png

绕过方法二

1、定位事件日志服务对应进程的svchost.exe的pid

Powershell代码如下:

get-wmio object-Class win32 _ service-Filter ' name=' event log ' ' | select-exp ProcessId

在svchost.exe找到的pid是7008,如下所示

4-1.png

2、在此过程中遍历所有线程

使用PsList

下载地址:

https://technet.microsoft.com/en-us/sysinternals/bb896682.aspx

具体参数如下:

pslist.exe/accept EULA-d 7008

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

4-2.png

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

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

使用:ScTagQuery

下载地址:

http://www.winsiderss.com/tools/sctagquery/sctagqry.zip

具体参数如下:

sctagqry.exe-t 7928

根据返回的服务标签,判断线程对应的服务。

找到eventlog对应的线程,如下所示

4-3.png

8136个线程符合条件,依次尝试,直到获得所有符合条件的线程。

注:

使用Process Explorer来简化这一过程。

找到事件日志服务对应的进程svchost.exe。

如下图

4-4.png

右键查看属性,选择线程选项卡,查看线程,可以直接获取线程对应的服务。

如下图

4-5.png

合格的线程TID是:

8136

8052

6708

2316

6356

4、端螺纹

调用TerminateThread

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

int main(int argc,char* argv[])

{

printf(' terminate thread TID:\ n ');

for(int I=1;我

完整的代码已经上传到github,地址如下:

https://github . com/3g student/Windwos-event log-Bypass/blob/master/terminateeventlogthread . CPP

控制台支持传入多个参数,有五个tid传入其中:8136 8052 6708 2316 6356。

自动结束相应的线程,日志功能失效。

具体操作如下

4-6.png

注:

我稍后会在github上更新这个bypass方法的完整实现代码,地址如下:

https://github.com/3gstudent/Windwos-EventLog-Bypass

0x05 补充

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

相关介绍和绕行思路可以参考;

通过https://3gstudent.github.io/APC的Dll注入-绕过Sysmon监控

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

应用程序和服务日志失败,如Windows Powershell

如下图

5-1.png

0x06 小结

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

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...