Windows日志致盲与绕过

news/2024/9/20 2:32:08/文章来源:https://www.cnblogs.com/nobunaga/p/18355688

前言

在渗透测试过程中,Windows日志往往会记录系统上的敏感操作,如添加用户、写计划任务、远程登录执行等操作,对于会审计的安全运维人员或者网络管理员来说,简直就是脱掉衣服走路,被看的一清二楚。对于比较高阶的渗透操作中,要讲究的是动作无感化,来无影去无踪。而对于防御者来说,了解常用的绕过方法也有助于更好的保护自己的系统。

Windows日志介绍

Windows系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。

Windows主要有以下三类日志记录系统事件:应用程序日志系统日志安全日志

1.1 系统日志

记录操作系统组件产生的事件,主要包括驱动程序、系统组件和应用软件的崩溃以及数据丢失错误等。系统日志中记录的时间类型由Windows NT/2000操作系统预先定义。

默认位置:

 %SystemRoot%\System32\Winevt\Logs\System.evtx

1.2 应用程序日志

包含由应用程序或系统程序记录的事件,主要记录程序运行方面的事件,例如数据库程序可以在应用程序日志中记录文件错误,程序开发人员可以自行决定监视哪些事件。如果某个应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,也许会有助于你解决问题。

默认位置:

%SystemRoot%\System32\Winevt\Logs\Application.evtx

1.3 安全日志

记录系统的安全审计事件,包含各种类型的登录日志、对象访问日志、进程追踪日志、特权使用、帐号管理、策略变更、系统事件。安全日志也是调查取证中最常用到的日志。默认设置下,安全性日志是关闭的,管理员可以使用组策略来启动安全性日志,或者在注册表中设置审核策略,以便当安全性日志满后使系统停止响应。

默认位置:

%SystemRoot%\System32\Winevt\Logs\Security.evtx

Windows日志信息分析

对于Windows事件日志分析,不同的EVENT ID代表了不同的意义,摘录一些常见的安全事件的说明:

事件ID 说明
4624 登录成功
4625 登录失败
4634 注销成功
4647 用户启动的注销
4648 试图使用显式凭据登录。
4672 使用超级用户(如管理员)进行登录
4720 创建用户
4774 帐户已登录映射。
4775 无法映射的登录帐户。
4776 计算机试图验证的帐户凭据。
4777 域控制器无法验证帐户的凭据
4778 到窗口站重新连接会话。
4779 从窗口站,会话已断开连接。
6005 表示计算机日志服务已启动,如果在事件查看器中发现某日的事件D号为6005,就说明这天正常启动了windows系统。
6006 表示事件日志服务已停止,如果没有在事件查看器中发现某日的事牛ID为6006的事件,就表示计算机在这天没关机或没有正常关机

每个成功登录的事件都会标记一个登录类型,不同登录类型代表不同的方式:

图片

对于比较熟练操作日志的管理员来说,很快就可以将日志筛选出来。如果看出来有高危的。那小则排查发现主机,大则溯源。这样你的权限就会摇摇欲坠。

有的人说了,那我删掉不就好了。确实可以,没问题。但是windows也考虑到这一点了。比如不能单条删除、删除会有日志ID:6006。删掉对于一个合格的红队人员来说,为下下策。如下我将介绍删除的方法:

Windows日志的常用清除方法

Wevtutil.exe(不支持删除多条)

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

常用命令如下:

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

wevtutil.exe gli Application

图片

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

wevtutil qe /f:text Security

图片

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

wevtutil cl Application

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

Windows日志的绕过方法

绕过原理

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,就可以判读该线程实现了日志记录功能

  1. Kill掉记录日志线程,注意是线程

这里我使用C++完成了这个功能:

运行如下:

运行前:

图片

运行后:

图片

看到日志已经关闭

启动还原

可以使用启动服务方式重新加载线程

net start eventlog

或主机重启后自己加载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/782913.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java maven项目配置及IDEA配置

一:maven作用项目管理:编译、测试、打包、部署、运行,这一套流程都可以用maven来管理。管理jar包:也就是上述提到的问题。管理插件:开发过程中会需要使用各种插件。3maven环境变量配置和Java一样,也需要配置maven环境变量。环境变量的作用在于: 可以让该程序在任何路径下…

Go并发原语之SingleFlight

引入 如下图所示,可能存在来自桌面端和移动端的用户有 1000 的并发请求,同一时刻来访问的获取文章列表的接口,获取前 20 条信息,如果这时服务直接去访问 redis 出现 cache miss, 那就会去请求 1000 次数据库,这时可能会给数据库带来较大的压力(这里的1000 只是一个例子,…

词向量的转换理解以及与真实的关系

实际上就是去除该矩阵的某一行。该矩阵实际上就是一个有N个词的300维向量,或者说该矩阵就是一个完整的词向量词汇表。而这个词汇表是通过交叉熵损失最小来构造的。 即归根到底是“在特定语料库中(包含context中共现概率),以数学方法计算输入产生哪些输出”最复合“实际情况…

盘点国内外有哪些软件测试认证

在软件测试行业,技术实力固然重要,但手握权威认证更能为职业发展增添砝码。无论你是刚入行的新人,还是经验丰富的测试工程师,获取一张含金量高的软件测试认证都能让你的职场之路更加平坦。那么,国内外有哪些值得考取的软件测试认证呢?让我们一起来盘点。 你是否正在为选择…

用友金蝶怎么选

财务知识——用友和金蝶选择谁?

概率论沉思录:合情推理

最近蔻享学术主办了每周一次的《概率论沉思录》读书会活动,恰好我也正在读该书中译版,通过该活动我了解到了不同学科的老师(数学/物理/统计/计算机)对这本书的不同理解,而我自己对该书的理解也在这个过程中逐渐深入了。于是准备每周都持续更新一下我的读书笔记。本书作者是…

八重终结 Phase 4 狱火焚天

Ending Time Octet 【八重终结】 Phase 4 Inferno Combusts 【狱火焚天】 PV on Bilibili Part 1 联合动画 Part 1 Part 2 完整音乐 涉及 AU Murder Time Trio Former Time Trio Karmatic Time Trio Chaotic Time Trio Phase 3 Chaotic Time Trio Phase 4 归冢余妄个人曲 传说之…

【grpcurl】使用grpcurl测试GRPC服务

一、场景由于我们需要访问GRPC服务的方法,便于我们进行测试,所以我们开启了grpc服务的反射机制二、安装grpcurlhttps://github.com/fullstorydev/grpcurlhttps://github.com/fullstorydev/grpcurl/releases 下载对应环境的包即可sudo dpkg -i grpcurl_1.9.1_linux_amd64.debu…

windbg 搭建双机调试环境

当我们搭建好驱动开发环境后,就可以设置双机调试了,虚拟机的安装可以参考网上其他教程,比较简单,我们直接来讲设置双击调试需要注意的一些地方。 1.设置被调试的虚拟机 首先,将虚拟机关机,如果此时已经有了串行端口存在首先移除,管道名字输入 \\.\pipe\com_1,并选择“该…

windbg 搭建双击调试环境

当我们搭建好驱动开发环境后,就可以设置双机调试了,虚拟机的安装可以参考网上其他教程,比较简单,我们直接来讲设置双击调试需要注意的一些地方。 1.设置被调试的虚拟机 首先,将虚拟机关机,如果此时已经有了串行端口存在首先移除,管道名字输入 \\.\pipe\com_1,并选择“该…

NDT算法详解与C++实现

点云匹配在感知环节是一个很重要的信息获取手段,而其中的算法也有几个比较经典了,例如ICP(Iterative Closest Point,迭代最近点)算法,而本文决定记录学习的是NDT算法,也就是Normal Distribution Transform,正态分布变换算法。什么是正态分布变换算法呢,简言之,就是把…

HBase学习的第一天--hbase的简介和搭建

HBase架构与基础命令 一、了解HBase 1.1 HBase概述HBase是基于Hadoop中HDFS做存储的数据库HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,用于存储海量的结构化或者半结构化,非结构化的数据(底层是字节数组做存储的) HBase是Hadoop的生态系统之一,是建立…