因为增强和完善,我们将发现,在不同的系统中,调用相同的操作将会获得不同的信息(得到的子集不同),这也是影响WMI使用的一个因素。但是从技术角度说,这个不是问题。 ...使用WMI技术主要分为两个大的方面:1 获取信息;2 提供数据。其中“获取信息”需要WMI Classes(以后称为WMI类)。“提供数据”需要WMI Provider(以后称为WMI提供者)。...当一个应用通过接口向WMI发起请求时,WMI将判断该请求是请求静态数据还是动态数据。...如果请求的是一个静态数据,WMI将从WMI存储库中查找数据并返回;如果请求的是一个动态数据,比如一个托管对象的当前内存情况,WMI服务将请求传递给已经在WMI服务中注册的相应的WMI提供者。...和驱动相似,WMI提供者通过托管对象提供的数据向WMI服务提供数据,同时将WMI服务的请求传递给托管对象。
1.信息收集当我们在拿到内网某一台机器权限时,第一时间要做的就是信息收集,WMI中的各种类为我们在内网信息收集方面提供了十分有利的条件,作为红队的我们可以利用如下WMI中各种类的子集来对目标进行全方面信息收集...4.WMI攻击检测WMI拥有极其强大的事件处理子系统,因在操作系统中所有的操作行为都可以触发WMI的事件,我们可以将WMI理解成是微软操作系统中自带的一个免费IDS(入侵流量检测),WMI的定位就是实时捕获攻击者的攻击操作...,那么我们利用WMI所产生的事件可进一步的判断是否是攻击者的操作,如下是攻击者常见的攻击利用手法,对VMI所触发产生的事件。...创建WMI类存储攻击者数,__ClassCreationEvent事件会被触发。...当攻击者安装恶意WMI提供程序时,⼀个Provider类的实例会被创建,InstanceCreationEvent事件会被触发。
,一般情况下,WMI为存储在WMI存储库中的对象创建内部事件,提供程序为动态类生成内部事件,如果没有可用的提供程序,WMI将会为动态类创建一个实例,以下为WMI用于报告内部事件的系统类。...,解决了内部事件时间间隔的问题,虽说外部的事件通常不会包含太多的信息,但其事件功能还是及其强大的,以下为常见的外部事件类:ROOT\CIMV2:Win32_ComputerShutdownEvent ROOT...2)永久消费者类实例注册在WMI命名空间中,一直有效直至注销(永久性的WMI事件是持久性驻留的,并且以SYSTEM权限运行,重启后仍然还在),永久事件使用者一直运行到其注册被显式取消,然后在 WMI 或系统重新启动时启动...LogFileEventConsumer \\将事件数据写入到指定的日志文件ActiveScriptEventConsumer \\允许执行任意脚本(VBScript/JScript)NTEventLogEventConsumer...\\创建一个包含事件数据的日志入口点SMTPEventConsumer \\将事件数据用邮件发送CommandLineEventConsumer \\执行一个命令 从红队的角度来看
一.WMI远程交互当前,WMI支持两种远程交互的协议:DCOM协议和WinRm协议。...我们可以通过这两种协议对远程的机器进行对象查询、事件注册以及WMI类方法的执行等操作,攻击者要有效的利用WMI的两种远程交互协议则需要一定的特权用户凭证,因此大多数的安全厂家通常都不会对WMI这两种协议所传输的恶意内容以及恶意流量进行审查...,这就让攻击者对WMI这两种协议有了可利用的空间,那么,接下来给大家分别介绍WMI所支持的两种协议—DCOM协议和WinRm协议。...WinRM是基于Web服务管理规范(Web Services Management )所构建的一种基于SOAP的设备管理协议,它允许使用SOAP通过HTTP(S)远程管理Windows计算机,在后端其是利用了WMI...,我们也可以把它看作是一个基于HTTP的WMI API。
在 PowerShell 可以很容易使用 WMI 拿到系统的信息,如果有关注我的网站,就会发现我写了很多通过 WMI 拿到系统的显卡,系统安装的软件等方法,本文告诉大家如果通过 PowerShell 拿到...WMI 类里面的属性 在 Windows 系统通过 Windows Management Instrumentation (WMI) 统一管理系统的配置,在 PowerShell 能使用 WMI 的功能进行获取系统...很少有人知道 WMI 里面包含了多少可以使用的类,包括我之前写的很多博客,实际上也只是里面的很少,通过下面的例子告诉大家如何获取设备里面包含的类 获取 WMI 类 在使用 WMI 之前需要知道 WMI...是能做什么的,这个方法能做的就是描述系统能被管理的资源,在系统里面包含了几百个类,一个类里面包含很多属性 通过 Get-WmiObject 可以找到设备里面所有可以被找到的 WMI 类 Get-WmiObject...} CSName Property string CSName {get;set;} // 还有很多属性 总结一下,获取一个 WMI
本文记录 WPF 的已知问题,在 .NET Core 版本的 WPF 应用里面,应用启动的过程监听 WMI 事件,将导致触摸模块 COM 接口获取失败,进而导致触摸失效 此问题仅在 .NET Core...版本复现,在 .NET Framework 框架下能正常工作 复现步骤如下: 安装 System.Management 库用于使用 WqlEventQuery 监听 WMI 变更 监听 TouchDown...Penimc.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid) 此问题已经报告给
Windows管理工具(WMI)是基于Windows操作系统的管理数据和操作的基础设施。...#这里给出两种执行方式,推荐存储的是powershell脚本,否则执行可能会遇到问题 $PowerShellPayload = "powershell -ep bypass -NoLogo -NonInteractive...构造C2 (下同),但我这里代码的用途仅仅是通过 Class 的 Properties 储存数据。...,远程使用Powershell读取类中的数据写入到文件系统中 WMI Attacks – C2 Communication (Registry) – “Pull” Attack $Username ="...或者获取用户的数据。
Form1: TForm1; implementation function GetWMIProperty(WMIType, WMIProperty: string): string; var Wmi..., Objs, Obj: OleVariant; Enum: IEnumVariant; C: Cardinal; s:string; begin Wmi:= CreateOleObject...('WbemScripting.SWbemLocator'); Objs := Wmi.ConnectServer('.'...RPC_C_IMP_LEVEL_IMPERSONATE, nil, EOAC_NONE, nil)) then Exit; // Obtain the initial locator to WMI...CLSID_WbemLocator, nil, CLSCTX_INPROC_SERVER, IID_IWbemLocator, FWbemLocator)) then try // Connect to WMI
---- 您可以使用本主题中的过程和代码示例来创建完整的WMI客户端应用程序,该应用程序执行COM初始化,连接到远程计算机上的WMI,半同步获取数据,然后清理。...---- 以下过程显示了如何执行WMI应用程序。步骤1至5包含设置和连接到WMI所需的所有步骤,而步骤6和7是查询和接收数据的位置。...从远程计算机获取WMI数据 通过调用CoInitializeEx初始化COM参数。 通过调用CoInitializeSecurity初始化COM进程安全性。...从WQL查询获取并显示数据。所述IEnumWbemClassObject指针被链接到的数据对象,该查询返回,并且数据对象可以与该被检索 IEnumWbemClassObject::Next 方法。...下面的代码示例演示如何从远程计算机半同步获取WMI数据。 ---- 下面我给出了一个外链。代码可download下来测试 https://paste.ubuntu.com/p/bMfNwrw98k/
WMI介绍 WMI的全名为"Windows Management Instrumentation"。 从win98开始,Windows操作系统都支持WMI,WMI可以在本地或者远程管理计算机系统。...WMI常用命令 以下操作均在win7上执行。...+ FullyQualifiedErrorId : RuntimeException,Microsoft.PowerShell.Commands.ImportModuleCommand 此时的问题主要是没有设置...shell cscript.exe //nologo wmiexec.vbs /cmd 192.168.135.15 administrator Admin@admin "命令" 在这里一定要注意空格问题...总结 本文对WMI的基本用法做了一个归类,其中参考了众多师傅的文章,WMI的用法远不止于此,而且本文是未对存在杀软的环境进行分析,等以后有机会再去探讨吧。
WMI利用(权限维持) 今天主要分享的是WMI攻击检测。...无论何种攻击手法在日志或流量是都会留下一定的痕迹,但是使用何种的规则将其监控到,这是令防守方头大的问题。WMI横向移动、权限维持都会在日志监控到。至于如何制定规则,本文不展开。...日志检测 注意:在日志检测中,最重要的数据来源就是Windows日志,而Windows日志也不是说全部选项都开启就可以,因为必须要考虑到机器本身的性能,很多无关紧要的日志数据我们可以将其监控选项关闭。...下图为sc.exe 创建远程服务的 wireshark 捕获 尽管WMIC仍然基于 DCEPC,但所有 WMI DCOM 方法调用都是通过单个接口完成的,并且当与“数据包隐私”级别的加密相结合时,流量监控的解决方案只能知道调用了某些...下图为DCEPRC数据包 缓解措施 - 限制 WinRM信任的主机数量 winrm 设置 winrm/config/client '@{TrustedHosts="指定主机"}' - 在日志中重点监控
WMI利用 (权限维持) 讲在前面 作者:pingpig@深蓝攻防实验室 在简单了解了WMI后,我们开始了横向移动,包括其中的信息收集,工具利用。...笔者看了国内外部分文章后,发现WMI做权限维持主要是介绍WMI事件,并将其分为永久事件和临时事件,本文参考部分博客文章对WMI事件进行讲解,不足之处,望及时指出。...相关文章:WMI讲解(是什么,做什么,为什么) WMI利用(横向移动) 什么是WMI事件 WMI事件,即特定对象的属性发生改变时发出的通知,其中包括增加、修改、删除三种类型。...通俗的可以说:WMI内部出现什么变化就由WMI事件来进行通知。...对于WMI事件的官方解释以及部分博客解释: · WMI事件通知 · 接收WMI事件 查询事件 列出事件过滤器 Get-WMIObject -Namespace root\Subscription -Class
WMI 全称为:Microsoft Windows Management Instrumentation (WMI) 按微软的介绍大致如下: WMI 是 Microsoft...最好的一点是,系统管理员可以使用 WMI 脚本库创建系统管理脚本,从而管理任何通过 WMI 公开的 Windows 资源! ...确保WMI或相关服务正在运行。...Performance Adapter Workstation 问题: 监视器报错:WMI服务不可用,请开启目标服务器并启动RPC和WMI服务。...目标机器ip> /user: ,将返回具体的错误号: 错误号5,拒绝访问 : 很可能你使用的用户不是管理员权限的,先提升权限; 错误号51,Windows 无法找到网络路径 : 网络有问题
ManagementClass c = new ManagementClass("Win32_DiskQuota");
13、 一些技巧 我使用WMI可以取出网卡的MAC地址,CPU的系列号,主板的系列号,其中主板的系列号已经核对过没有错的,其余的有待于验证,因为我使用的是笔记本,笔记本背面有一个主板的系列号,所以可以肯定主板系列号没有问题...后的异常处理的问题 下面是我整理的一段代码. ...通过定义完善的架构向客户端和应用程序无缝地提供了数据和事件以及配置系统的能力。在 .NET 框架中,System.Management 命名空间提供了用于遍历 WMI 架构的公共类。...分析一下上面的代码,可以看到一下几点: 1、似乎是在进行数据库操作,有点像SQL语句。...其实就是SQL操作,这种语句被成WQL(WMI Query Language),实际上是标准SQL的一个子集加上了WMI的扩展. 2、WQL是个只读的查询语言,我们只能查询响应的数据,不能用UPDATE
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。...但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。...在《WMI技术介绍和应用——WMI概述》中我们提到,WMI中存在诸如root\default、root\cimv2等WMI命令空间。...这样就要求我们应用和WMI服务进程有通信。在我们应用这边,就需要创建一个进程内COM服务器用于接发数据。...工程源码见《WMI技术介绍和应用——WMI概述》结尾。
PS C:\Users\AT> Get-CimInstance -query 'Select * from Win32_BIOS' -Namespace roo...
2021 WMI利用 (横向移动) 谢公子学安全 讲在前面 作者:pingpig@深蓝攻防实验室 上一篇文章我们简单的解释了什么是WMI,WMI做什么,为什么使用WMI。...本文是笔者在阅读国内部分的解释WMI横向移动的文章后写下的一篇文章,希望帮助同学们在攻防中进入横向移动后根据实际场景利用WMI来解决问题。...administrator -p:win@123 远程静默启动进程 部分意见 笔者上述罗列的部分工具原理都是一样,在实现的方法上各有千秋,建议各位同学根据实际场景需要针对性的DIY来满足自己的需求,解决问题...参考文章 内网横移之WinRM 内网渗透|基于WMI的横向移动 WmiScan 135端口智能密码/WMI密码爆破 WinRM的横向移动详解 WMI横向移动 不需要 Win32_Process – 扩展...WMI 横向运动 利用wmic调用xsl文件的分析与利用 利用WMIC执行Payload
它属于管理数据和操作的基础模块,设计WMI的初衷是为了能达到一种通用性,通过WMI去操作系统、应用程序等去管理本地或者远程资源。...2.WQL语言 WQL也就是WMI的SQL,WQL的全称是WMI Query Language(Windows管理规范查询语言),主要用于查询WMI任何托管资源,其查询语言与SQL语法相似,但只能执行数据的查询...WMI Client 在WMI交互时有很多客户端,我们在实战中可以根据不同的场景适当的去选择已有的客户端进行操作,接下来详细介绍可以用于实战中的WMI Client。...Poweshell支持WMI和CIM两种命令方式与WMI进行交互,两种命令方式的不同的点在于WMI命令只能用做于DCom协议,而CIM命令不仅支持DCom协议还支持WINRm协议,由此可见,CIM命令与...WMI交互时更具有一定的灵活性,下述为Powershell可与WMI交互的功能。
########################################################### import os, sys import time import wmi...##################################### def get_memory_info(): tmpdict = {} c = wmi.WMI