利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。 乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!...WMI介绍 WMI的全名为"Windows Management Instrumentation"。 从win98开始,Windows操作系统都支持WMI,WMI可以在本地或者远程管理计算机系统。...具体可以参考:https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/using-wmi 2....WMI常用命令 以下操作均在win7上执行。...总结 本文对WMI的基本用法做了一个归类,其中参考了众多师傅的文章,WMI的用法远不止于此,而且本文是未对存在杀软的环境进行分析,等以后有机会再去探讨吧。
在 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可能见过但理解不深,我也是十分想了解关于WMI的知识,可一直找不运维...WMI 结构由以下三层组成: " 客户端 使用 WMI 执行操作(例如,读取管理详细信息、配置系统和预订事件)的软件组件。 ...System.Management 类的使用编码范例对 .NET 框架环境很适合,并且 WMI 在任何适当的时候均使用标准基框架。...例如,WMI 广泛利用 .NET 集合类并使用推荐的编码模式,如 .NET 异步操作的“委托”模式。因此,使用 .NET 框架的开发人员可以使用他们的当前技能访问有关计算机或应用程序的管理信息。...请参见 使用 WMI 管理应用程序 | 检索管理对象的集合 | 查询管理信息 | 预订和使用管理事件 | 执行管理对象的方法 | 远程处理和连接选项 | 使用强类型对象 获取CPU序列号代码 string
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
在 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
当时,WMI这种“特别”的使用方式让我这个VC程序员产生了浓厚的兴趣——像写SQL般去写程序。研究WMI技术的火种一直在我内心燃烧,最近正好有时间,我准备把WMI技术做一次比较系统性的梳理。...由于WMI技术涉及的方面非常的广泛,我准备主要从应用的角度去讲解一些主要的使用场景,这样才会让该技术比较生动。...使用WMI技术主要分为两个大的方面:1 获取信息;2 提供数据。其中“获取信息”需要WMI Classes(以后称为WMI类)。“提供数据”需要WMI Provider(以后称为WMI提供者)。...WMI Consumers(WMI使用者) 它位于WMI构架的最顶层,是WMI技术使用的载体。如果我们是C++程序员,我们可以通过COM技术直接与下层通信。...通过以上对WMI的介绍,我想大家应该对WMI有了个初步的认识。下面我将讲解在VC中使用WMI的一些步骤,之后我会再从应用的角度讲解怎么使用WMI技术。
1.信息收集当我们在拿到内网某一台机器权限时,第一时间要做的就是信息收集,WMI中的各种类为我们在内网信息收集方面提供了十分有利的条件,作为红队的我们可以利用如下WMI中各种类的子集来对目标进行全方面信息收集...(1)事件订阅我们可以使用 WMI 的功能来订阅事件并在该事件发生时执行任意代码,从而在系统上提供持久化,例如:利用时间Event Consumer(事件处理)接⼝ActiveScriptEventConsumer...4.WMI攻击检测WMI拥有极其强大的事件处理子系统,因在操作系统中所有的操作行为都可以触发WMI的事件,我们可以将WMI理解成是微软操作系统中自带的一个免费IDS(入侵流量检测),WMI的定位就是实时捕获攻击者的攻击操作...攻击者使用WMI作为持久性机制,EventFilter、EventConsumer、FilterToConsumer 绑定创建,__InstanceCreationEvent事件被触发。...当攻击者使用开始菜单或注册表做持久化时,⼀个Win32_StartupCommand类的实例会被创建,__InstanceCreationEvent事件会被触发。
1.WMI永久事件订阅组成(1)EventFilter(事件过滤器)EventFilter(事件过滤器)存储在一个ROOT\subscription:__EventFilter对象的实例里,其主要作用是使用...事件的消费者大体可分为“临时事件消费者”和“永久事件消费者”两类1)临时事件消费者只在运行期间关心处理特定的事件(本地事件生命周期即为宿主进程的运行时间)临时事件使用者必须手动启动,并且不能在 WMI...临时事件使用者只能在其运行时处理事件。...2)永久消费者类实例注册在WMI命名空间中,一直有效直至注销(永久性的WMI事件是持久性驻留的,并且以SYSTEM权限运行,重启后仍然还在),永久事件使用者一直运行到其注册被显式取消,然后在 WMI 或系统重新启动时启动...在Event Consumers中,系统提供了如下WMI预安装的永久使用者的类,它们都属于Root\CTMV2以及ROOT\DEFAULT这两个命名空间中,我们可以创建这些类的实例以提供永久消费者类,以提供在过滤器中指定的事件触发时响应的逻辑消费者
一.WMI远程交互当前,WMI支持两种远程交互的协议:DCOM协议和WinRm协议。...我们可以通过这两种协议对远程的机器进行对象查询、事件注册以及WMI类方法的执行等操作,攻击者要有效的利用WMI的两种远程交互协议则需要一定的特权用户凭证,因此大多数的安全厂家通常都不会对WMI这两种协议所传输的恶意内容以及恶意流量进行审查...而DCOM是COM的扩展,使用DCOM可以不受本地限制,通过远程过程调用(RPC)技术实现客户端程序实例化和访问远程计算机的COM对象。...2.WinRMWinRM(Windows远程管理)相对于DCOM来讲,目前已成为Windows建议使用的远程管理协议。...WMI,我们也可以把它看作是一个基于HTTP的WMI API。
大多用户习惯于使用众多的图形化管理工 具来管理Windows资源,在WMI之前这些工具都是通过 Win32应用程序编程接口(Application ProgrammingInterfaces,API)...如图一:(1.gif) 在WMI 体系结构中我们最需要关心的就是WMI提供程序,WMI提供程序在WMI和托管资源之间扮演着中间方的角色。...提供程序代表使用者应用程序和脚本从WMI托 管资源请求信息,并发送指令到WMI托管资源。下面是我们利用WMI编程经常要用到的WMI内置提供程序清单,以供编程参考。...在使用类的时候要说明类所在的命名空间。类由属性和方法构成。这是可视化编程中的两个重要的概 念。属性描述的是对象的状态,方法是对象可以执行的操作。...接着看python 中的WMI使用 是Tim Golden's 的WMI.PY,使用起来非常简单.下面的例子是摘自它自身提供的example import wmi c = wmi.WMI () for
WMI使用公共信息模型 (CIM) 表示托管组件,其中包括系统、应用程序、网络等等 CIM中使用 “Class"(类)表示管理对象,类的实例是“Object”,名称空间(Namespace)是一个类的集合...Remote WMI Protocols ---- WMI 可以使用两种协议用于Remote WMI:分布式组件对象模型 (DCOM) 和 Windows 远程管理 (WinRM)。...如果CIM Cmdlets 使用DCOM 无法建立会话,可以使用 -Protocol 参数退回到DCOM #WMI Cmdlets $Username ="0day\Administrator" $Password...WMI Eventing,如果使用WmiExplorer可查看到对应命名空间中创建了新的实例。...Win32_EvilClass').Properties['EvilProperty'].value #将calc Base64吹后存储在Win32_evilClass 的 EvilProperty 中 #怎么执行
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('.'..._NewEnum)); Enum.Reset; while (Enum.Next(1,Obj,C)=s_ok) do begin //需要更多的信息请使用循环 Obj:=Obj.Properties...RPC_C_IMP_LEVEL_IMPERSONATE, nil, EOAC_NONE, nil)) then Exit; // Obtain the initial locator to WMI
在《WMI技术介绍和应用——VC开发WMI应用的基本步骤》文中,我们介绍了VC使用WMI技术的基本框架。本节我将讲解封装和实现一个用于半同步查询WMI的类。...于是,我使用了最简单的方法——遍历返回结果。...所以大部分情况下,只在同步和半同步中做出选择的情况下,优先考虑使用半同步。 ...我们使用DealWithIWbemClassObject函数处理每个结果。...我会之后若干节,结合实际应用场景,利用这个框架,讲解WMI的实际应用。 工程源码见《WMI技术介绍和应用——WMI概述》结尾。
笔者看了国内外部分文章后,发现WMI做权限维持主要是介绍WMI事件,并将其分为永久事件和临时事件,本文参考部分博客文章对WMI事件进行讲解,不足之处,望及时指出。...相关文章:WMI讲解(是什么,做什么,为什么) WMI利用(横向移动) 什么是WMI事件 WMI事件,即特定对象的属性发生改变时发出的通知,其中包括增加、修改、删除三种类型。...可以使用wmic来进行操作。通俗的可以说:WMI内部出现什么变化就由WMI事件来进行通知。...所以在权限维持中一般我们使用WMI永久事件来进行。...对于WMI事件的官方解释以及部分博客解释: · WMI事件通知 · 接收WMI事件 查询事件 列出事件过滤器 Get-WMIObject -Namespace root\Subscription -Class
WMI利用(权限维持) 今天主要分享的是WMI攻击检测。...无论何种攻击手法在日志或流量是都会留下一定的痕迹,但是使用何种的规则将其监控到,这是令防守方头大的问题。WMI横向移动、权限维持都会在日志监控到。至于如何制定规则,本文不展开。...总之两点: 做好 WMI 连接的网络流量监控,一般不使用 WMI 的环境若出现了使用 WMI的情况,则内部网络可能已经被入侵。 做好进程监控,监测”wmic.exe“的命令行参数及其执行的命令。...即使该协议使用最大加密级别,但仍然可以使用流量监控确定目标执行了哪些类型的操作(例如服务创建、服务启动等)。...WMI 方法。
ManagementClass c = new ManagementClass("Win32_DiskQuota");
PS C:\Users\AT> Get-CimInstance -query 'Select * from Win32_BIOS' -Namespace roo...
2.查询用例1)在CDM命令行中执行wbemtest命令进入WMI测试器中,如图1-1所示。2)在使用之前我们现需要进行连接,选择默认连接选项即可,如图1-2所示。...交互的命令行管理工具,他不但可以管理本地计算机,还能够在足够的权限下管理域控中的其他计算机,WMIC是windows自带的一个功能,计算机只要支持WMI即可使用WMIC,WMIC因其强大的功能以及Windows...4.WinrmWinrm(Windows remote shell)即windows远程管理,它是windows操作系统的一部分,我们可以以管理员的身份在windows中使用该命令。...5.Win explorerWin explorer(windows资源查看器)是一款图形化查看WMI信息的工具,与wbemtest类似,不过比wbemtest功能更丰富,使用起来更方便。...从当前来看这两种脚本开发语言早已过时,但是它们在与WMI交互时仍有很强大的能力,目前市面上已经出现了基于这两种语言开发,使用WMI功能完成基本的Command and Control机制的后门程序。
2021 WMI利用 (横向移动) 谢公子学安全 讲在前面 作者:pingpig@深蓝攻防实验室 上一篇文章我们简单的解释了什么是WMI,WMI做什么,为什么使用WMI。...在横向移动中的固定过程中一定离不开“信息收集”,然后分析信息根据实际场景(工作组或者域)来进行横向移动,至于使用什么工具,为什么使用这个工具,笔者使用WMI的意见。...注意:wmic命令需要本地管理员或域管理员才可以进行正常使用,普通权限用户若想要使用wmi,可以修改普通用户的ACL,不过修改用户的ACL也需要管理员权限,这里笔者单独罗列小结:普通用户使用wmic。...使用WMIC管理wmi wmic logon list brief #登录⽤户 wmic ntdomain list brief #域控机器 wmic useraccount list brief #⽤...WMIcmd.exe在域内使用 pth-wmic 注意:此为kali内置工具,只能执行一些WMI命令,无法执行其他命令.
领取专属 10元无门槛券
手把手带您无忧上云