WMI的查询语言来过滤审核特定的事件,一个事件过滤器接受一个WMI事件查询参数,同时EventFilter事件过滤器可以对Intrinsic Events (内部事件)和Extrinsic Events...(外部事件)进行事件查询。...2)Extrinsic Events外部事件是非系统类预定义事件,WMI使外部事件提供程序直接定义描述事件的事件类(例如:当计算机切换到待机模式的事件为外部事件时),与内部事件相比较而言,外部事件能够及时响应触发...2)永久消费者类实例注册在WMI命名空间中,一直有效直至注销(永久性的WMI事件是持久性驻留的,并且以SYSTEM权限运行,重启后仍然还在),永久事件使用者一直运行到其注册被显式取消,然后在 WMI 或系统重新启动时启动...\\root\\subscription")2.创建_EventFilter类的实例并使用其查询属性来存储您的WQL事件查询。
在 PowerShell 可以很容易使用 WMI 拿到系统的信息,如果有关注我的网站,就会发现我写了很多通过 WMI 拿到系统的显卡,系统安装的软件等方法,本文告诉大家如果通过 PowerShell 拿到...WMI 类里面的属性 在 Windows 系统通过 Windows Management Instrumentation (WMI) 统一管理系统的配置,在 PowerShell 能使用 WMI 的功能进行获取系统...很少有人知道 WMI 里面包含了多少可以使用的类,包括我之前写的很多博客,实际上也只是里面的很少,通过下面的例子告诉大家如何获取设备里面包含的类 获取 WMI 类 在使用 WMI 之前需要知道 WMI...类的信息 从上面列出的任意一个 WMI 类,可以使用下面代码显示这个类里面的属性 PS> Get-WmiObject -Class Win32_OperatingSystem SystemDirectory...SerialNumber : 00331-10000-00001-AA523 Version : 10.0.17763 这里的输出只是简要的信息,没有包含所有的属性,如果想输出所有的属性,可以使用下面代码
WMI介绍 WMI的全名为"Windows Management Instrumentation"。 从win98开始,Windows操作系统都支持WMI,WMI可以在本地或者远程管理计算机系统。...WMI常用命令 以下操作均在win7上执行。...localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List ### ###查询...使用方法与wmiexec.py一模一样: 5.2.1 有账号密码 如果有账号和密码的情况下,在win7上操作winserver08: wmiexec.exe 用户名:密码@目标IP wmiexec.exe...总结 本文对WMI的基本用法做了一个归类,其中参考了众多师傅的文章,WMI的用法远不止于此,而且本文是未对存在杀软的环境进行分析,等以后有机会再去探讨吧。
" 查询应用程序数据(使用对象关系的遍历和查询)。 " 执行无缝的本地或远程管理操作。 ...WMI 结构由以下三层组成: " 客户端 使用 WMI 执行操作(例如,读取管理详细信息、配置系统和预订事件)的软件组件。 ..." 对象管理器 提供程序与客户端之间的中间装置,它提供一些关键服务,如标准事件发布和预订、事件筛选、查询引擎等。 ..." ManagementEventWatcher:用于预订来自 WMI 的事件通知。 " ManagementQuery:用作所有查询类的基础。 ...请参见 使用 WMI 管理应用程序 | 检索管理对象的集合 | 查询管理信息 | 预订和使用管理事件 | 执行管理对象的方法 | 远程处理和连接选项 | 使用强类型对象 获取CPU序列号代码 string
在之前,我曾在安全客分享过《wmi攻击与防御》的相关议题。...比如如何使用CobaltStrike、Impacket等工具进行横向移动时最小化操作的技巧等。本文将讲解如何使用wmi事件订阅来进行横向移动。...关于wmi事件的横向移动 和大多数的横向移动手法一样,我们使用wmi事件进行横向移动时依旧要求我们有对目标机器的操作权限(或访问凭据),该技术可以实现无文件的效果,这也是该技术的优点之一。...而我们今天要说的则是使用wmi事件订阅进行横向移动。...,然后查询是否具有该进程,有的话,则触发。
介绍了这么多基础知识了,那如何查询事件通知呢?在《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中,我们讲解WMI查询静态数据时,我们可以使用同步查询和半同步查询两种查询方式。...这就意味着查询事件通知,是不可能使用同步查询方式,我们可以选择异步查询或者半同步查询方式。 ...作为查询的载体——事件使用者(Event Consumers),也是分为两种:临时事件使用者和永久事件使用者。 ...临时事件使用者是我们未来最早接触到的一个使用者,顾名思义,它是指WMI接收事件通知的生命周期和发起查询的应用程序一致。WMI包含一个统一的接口用来向客户端应用程序提供WMI事件。 ...永久事件使用者是一种更复杂的使用者——它是一个COM对象,用于持续接收WMI事件通知。它使用一些现有的对象和过滤器去获取WMI事件。我们可以设置一些WMI对象和过滤器去获取WMI事件。
之前介绍的基本都是查询静态数据,而本文将要介绍非常有意思的事件接收功能。...有一种做法就是使用Windows API遍历系统的进程,而实际上我们可以通过WMI获取这样的信息。...的确是个强大的功能,如果一个进程内部集成一个WMI查询器,那么很多复杂的功能就会变成简单的WQL语句。...当然它被使用最广的还是远程查询,我们可能在之后的章节中介绍这块的使用。 ...技术介绍和应用——WMI概述》结尾。
在《WMI技术介绍和应用——VC开发WMI应用的基本步骤》文中,我们介绍了VC使用WMI技术的基本框架。本节我将讲解封装和实现一个用于半同步查询WMI的类。...(转载请指明出于breaksoftware的csdn博客) 我曾思考过如何编写一个比较有用的类,因为不同平台上WMI的查询结果集是不同的,很难做个通用的类。...于是,我使用了最简单的方法——遍历返回结果。...当半同步内部线程查询到并封装完一个对象后,便会通知我们外面枚举结果的函数,告诉我们:一个结果准备好了,你可以使用了。这个相当于将合并结果集的过程去掉。...我会之后若干节,结合实际应用场景,利用这个框架,讲解WMI的实际应用。 工程源码见《WMI技术介绍和应用——WMI概述》结尾。
通过 WMI 事件订阅的持久性可以通过使用常见的 Microsoft 实用程序来实现,因此无需将文件放入磁盘。...PowerShell PowerShell 包含可以查询 WMI 对象并将信息检索回控制台的 cmdlet。以下命令可用于验证是否已创建任意事件以及恶意负载/命令是否存储在 WMI 存储库中。...该脚本使用 WMI 存储库来存储恶意命令,该命令将执行任意脚本、可执行文件或任何其他带有参数的命令。以下函数将检索所有活动的 WMI 事件对象。...、事件使用者和订阅。...i 与 Metasploit 模块类似,当使用“ FailedLogon ”选项时,可以使用失败的 SMB 连接来触发基于 PowerShell 的植入。
WMI 自从 PsExec 在内网中被严格监控后,越来越多的反病毒厂商将 PsExec 加入了黑名单,于是黑客们渐渐开始使用 WMI 进行横向移动。...通过渗透测试发现,在使用 wmiexec 进行横向移动时,windows 操作系统默认不会将 WMI 的操作记录在日志中。因此很多 APT 开始使用 WMI 进行攻击。...WMI wmic ---- 使用目标系统的 cmd.exe 执行一条命令,并将结果保存在 C 盘的 ip.txt 文件中: wmic /node:192.168.3.21 /user:god\Administrator...我们可以通过建立 IPC$(2008域用户-->2008域管),使用 type 命令读取执行结果: # 建立IPC$ net use \\192.168.3.21 /u:god\administrator...此外 wmic 命令没有回显,需要使用 ipc$ 和 type 命令来读取信息。 PS:wmic 执行的是一些恶意文件程序,那么将不会留下攻击日志。
WMI 是基于 Web 的企业管理 (WBEM) 标准的 Microsoft 实现,WCF 公开服务的属性,如地址、绑定、行为和侦听器。您可以在应用程序的配置文件中激活内置 WMI 提供程序。...wmiProviderEnabled="true" performanceCounters="ServiceOnly"/> … 此配置项公开 WMI
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 ...以下内容将介绍如何使用WMI查询桌面的相关信息。(转载请指明出于breaksoftware的csdn博客) 如何使用WMI枚举所有的桌面?...如何使用WMI查询光标闪烁的时间间隔时间?...如何使用WMI查询桌面图标下的文字字体大小?...如何使用WMI查询桌面的背景图路径?
通过WMI,可以使用各种编程语言(如C#、VBScript、PowerShell等)来执行诸如查询系统信息、监控性能、配置系统设置等任务。...当需要通过WMI编程提取参数时,我们就需要使用WQL(Windows Management Instrumentation Query Language)它是一种查询语言,专门用于查询Windows Management...WMI 是Windows操作系统中用于管理和监视的框架,而WQL则是用于与WMI进行交互的查询语言。...),使用WQL可以执行各种查询来检索关于计算机系统、硬件、软件和其他管理信息的数据。...为了让读者更加方便的使用查询功能,此处我封装了一个SelectQuerySQL查询函数,该函数需要传入特定的查询语句,特定的查询字段以及返回值缓冲区,此时只需要读取缓冲区内的数据即可得到查询结果。
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。 如何使用WMI查询所有驱动信息?...如何使用WMI查询指定驱动服务是否可以暂停?...如何使用WMI查询指定驱动服务是否可以终止?...如何使用WMI查询指定驱动服务的状态?...如何使用WMI查询指定驱动服务的启动方式?
每个WMI 对象都是代表着获取各种操作系统信息与进行相关操作的类实例,以ROOT\CIMV2 作为默认的命名空间,CIM为数据库,并以WQL 查询语句用于查询 WMI 对象实例、类和命名空间。...“ROOT” -Class __NAMESPACE 2、Wmic 例如:wmic/NAMESPACE:"\\root\CIMV2" PATH Win32_OperatingSystem WMI事件 WMI...事件会创建一个查询请求,请求中定义了我们需要执行的操作,一旦事件发生就会执行我们定义的操作,支持两种事件。...(以system权限运行,且重启保持不变) 持久事件与后门 利用持久事件来做后门(创建需要管理员权限)需要三个部分。...1、事件过滤器(Filter):用来定义触发的条件,包括系统启动、特定程序执行、特定时间间隔等,存储在ROOT\subscription的实例__ EventFilter对象中,多数事件使用WQL WITHIN
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。...如何使用WMI获取本地时间? SELECT Year,Month,Day,Hour,Minute,Second FROM Win32_LocalTime ? 如何使用WMI获取格林威治时间?...如何使用WMI获取当前时间在所属月中属于第几个星期? SELECT WeekInMonth FROM Win32_LocalTime ? 如何使用WMI获取当前时间是星期几?...工程源码见《WMI技术介绍和应用——WMI概述》结尾。
https://blog.csdn.net/breaksoftware/article/details/8579620 本文使用了《WMI技术介绍和应用...——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。...如何使用WMI枚举系统中的服务? SELECT * FROM Win32_Service 我们以Application Experience服务为例,介绍各对应关系。 ?...如何使用WMI查询指定服务是否已经开启? SELECT State FROM Win32_Service WHERE Name = 'AeLookupSvc' ?...如何使用WMI查询指定服务对应的进程ID? SELECT ProcessID FROM Win32_Service WHERE Name = 'AeLookupSvc' ?
查询BIOS信息 如何使用WMI查询BIOS的序列号? SELECT SerialNumber FROM Win32_BIOS ? 如何使用WMI查询BIOS的厂商?...如何使用WMI查询内存信息? SELECT * FROM Win32_MemoryDevice ? 查询显示器信息 如何使用WMI查询显示器的分辨率?...查询CPU信息 如何使用WMI查询CPU的序列号? SELECT ProcessorId FROM Win32_Processor ? 如何使用WMI查询CPU的名称?...如何使用WMI查询有几个物理核心和几个逻辑核心?...至此,使用WMI查询的内容就讲完了。之后我将讲解如何使用WMI监听事件,这也是个非常强大和有趣的功能,我们拭目以待吧。 工程源码见《WMI技术介绍和应用——WMI概述》结尾。
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。...如果我们想知道本次电脑的启动方式,就可以使用这个方法查询到。同时,我们可以由此推断,在安全模式下,WMI也是可以使用的。 如何使用WMI查询当前系统所属的域?...如果当前系统不在任何域中,则这个查询将返回工作组(WorkGroup)名字。那怎么辨别呢,我们看下面一个查询。 如何使用WMI查询当前系统是否属于某个域?...如果通过对PartOfDomain的查询得出FALSE的答案,则可以查询Workgroup字段,查看该系统属于哪个工作组。 如何使用WMI查询当前系统属于域或工作组中属于什么角色?...如何使用WMI查询是否设置了键盘密码(Keyboard Password)?
在 PowerShell 可以很容易使用 WMI 拿到系统的信息,如果有关注我的网站,就会发现我写了很多通过 WMI 拿到系统的显卡,系统安装的软件等方法,本文告诉大家如果通过 PowerShell 拿到...WMI 类里面的属性 在 Windows 系统通过 Windows Management Instrumentation (WMI) 统一管理系统的配置,在 PowerShell 能使用 WMI 的功能进行获取系统...很少有人知道 WMI 里面包含了多少可以使用的类,包括我之前写的很多博客,实际上也只是里面的很少,通过下面的例子告诉大家如何获取设备里面包含的类 获取 WMI 类 在使用 WMI 之前需要知道 WMI...类的信息 从上面列出的任意一个 WMI 类,可以使用下面代码显示这个类里面的属性 PS> Get-WmiObject -Class Win32_OperatingSystem SystemDirectory...WMI 获取系统安装的驱动 PowerShell 通过 WMI 获取系统服务 PowerShell 通过 WMI 获取补丁 PowerShell 通过 WMI 获取系统安装软件 Getting
领取专属 10元无门槛券
手把手带您无忧上云