本节主要讲解WMI的一些概述,如果不想了解WMI一些背景,本节可以过掉。 WMI的全称是Windows Management Instrumentation,即Windows管理工具。...使用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服务再将结果返回给请求的应用。
1.信息收集当我们在拿到内网某一台机器权限时,第一时间要做的就是信息收集,WMI中的各种类为我们在内网信息收集方面提供了十分有利的条件,作为红队的我们可以利用如下WMI中各种类的子集来对目标进行全方面信息收集...4.WMI攻击检测WMI拥有极其强大的事件处理子系统,因在操作系统中所有的操作行为都可以触发WMI的事件,我们可以将WMI理解成是微软操作系统中自带的一个免费IDS(入侵流量检测),WMI的定位就是实时捕获攻击者的攻击操作...,那么我们利用WMI所产生的事件可进一步的判断是否是攻击者的操作,如下是攻击者常见的攻击利用手法,对VMI所触发产生的事件。...VMI Shell工具集被用作C2通道,会创建和修改名称空间对象的实例,因此会触发namespaceCreationEvent和Namespace ModificationEvent事件。...创建WMI类存储攻击者数,__ClassCreationEvent事件会被触发。
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
Windows管理工具(WMI)是基于Windows操作系统的管理数据和操作的基础设施。...Languages(VBScript – JScript) IWbem* COM API .NET System.Management classes Linux:wmic and wmis 另外两个小工具...“和”.NET System.Management classes“没有试过,其余的工具均有测试,推荐使用WMI Explorer ,GUI界面非常好用。...Tales of a Threat Hunter 2 (https://www.eideon.com/2018-03-02-THL03-WMIBackdoors/) 检测 Powershell或其他工具查询对应的类...//github.com/realparisi/WMI_Monit) 各类工具 ---- 参考:Persistence – WMI Event Subscription (https://pentestlab.blog
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攻击检测。...总之两点: 做好 WMI 连接的网络流量监控,一般不使用 WMI 的环境若出现了使用 WMI的情况,则内部网络可能已经被入侵。 做好进程监控,监测”wmic.exe“的命令行参数及其执行的命令。...然后可以自行导入sysmon帮助工具进行分析:sysmontools 若是权限维持中的WMI事件,则sysmon可以关注如下四个事件ID Process Create(ID 1) WmiEventFilter...ID 20) WmiEventConsumterToFilter(ID 21) 可以看到CommandLine中执行的命令细节 流量检测 我们要注意在使用PSEXEC,SC.EXE,或其他远程服务管理工具进行操作时...WMI 方法。
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!! 更新时间:2022.06.19 说明 本文大量参考了师傅们的文章,感谢各位师傅的帮助!...WMI介绍 WMI的全名为"Windows Management Instrumentation"。 从win98开始,Windows操作系统都支持WMI,WMI可以在本地或者远程管理计算机系统。...WMI常用命令 以下操作均在win7上执行。...Invoke-WmiCommand.ps1 Invoke-WmiCommand是PowerSploit-3.0.0中的一个工具,该项目最终更停在2015年,下载地址: https://github.com...总结 本文对WMI的基本用法做了一个归类,其中参考了众多师傅的文章,WMI的用法远不止于此,而且本文是未对存在杀软的环境进行分析,等以后有机会再去探讨吧。
WMI利用 (权限维持) 讲在前面 作者:pingpig@深蓝攻防实验室 在简单了解了WMI后,我们开始了横向移动,包括其中的信息收集,工具利用。...笔者看了国内外部分文章后,发现WMI做权限维持主要是介绍WMI事件,并将其分为永久事件和临时事件,本文参考部分博客文章对WMI事件进行讲解,不足之处,望及时指出。...相关文章:WMI讲解(是什么,做什么,为什么) WMI利用(横向移动) 什么是WMI事件 WMI事件,即特定对象的属性发生改变时发出的通知,其中包括增加、修改、删除三种类型。...通俗的可以说:WMI内部出现什么变化就由WMI事件来进行通知。...对于WMI事件的官方解释以及部分博客解释: · WMI事件通知 · 接收WMI事件 查询事件 列出事件过滤器 Get-WMIObject -Namespace root\Subscription -Class
ManagementClass c = new ManagementClass("Win32_DiskQuota");
WMI使用技巧集 很多的朋友对WMI可能见过但理解不深,我也是十分想了解关于WMI的知识,可一直找不运维...强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码 WMI使用技巧集 很多的朋友对WMI可能见过但理解不深,我也是十分想了解关于WMI的知识,可一直找不对太合适的资料...WMI 为您提供与系统管理信息和基础 WMI API 交互的标准方法。WMI 主要由系统管理应用程序开发人员和管理员用来访问和操作系统管理信息。...WMI 可用于生成组织和管理系统信息的工具,使管理员或系统管理人员能够更密切地监视系统活动。例如,可以使用 WMI 开发一个应用程序,用于在 Web 服务器崩溃时呼叫管理员。...WMI最早出现在Microsoft Windows 2000系统上,但它同样可以安装在Windows NT 4和Windows 9x计算机上。WMI是一种轻松获取系统信息的强大工具。
PS C:\Users\AT> Get-CimInstance -query 'Select * from Win32_BIOS' -Namespace roo...
2021 WMI利用 (横向移动) 谢公子学安全 讲在前面 作者:pingpig@深蓝攻防实验室 上一篇文章我们简单的解释了什么是WMI,WMI做什么,为什么使用WMI。...本文是笔者在阅读国内部分的解释WMI横向移动的文章后写下的一篇文章,希望帮助同学们在攻防中进入横向移动后根据实际场景利用WMI来解决问题。...在横向移动中的固定过程中一定离不开“信息收集”,然后分析信息根据实际场景(工作组或者域)来进行横向移动,至于使用什么工具,为什么使用这个工具,笔者使用WMI的意见。...,工具可以帮助您无需理解或多或少的知识,您只需读懂README即可,来帮助您获取shell,上传,下载,创建服务等操作,笔者会在此段中罗列部分WMI的工具以及部分命令用作横向移动,并在第三段给出部分实际利用的意见...WMIcmd.exe在域内使用 pth-wmic 注意:此为kali内置工具,只能执行一些WMI命令,无法执行其他命令.
WMI交互时更具有一定的灵活性,下述为Powershell可与WMI交互的功能。...交互的命令行管理工具,他不但可以管理本地计算机,还能够在足够的权限下管理域控中的其他计算机,WMIC是windows自带的一个功能,计算机只要支持WMI即可使用WMIC,WMIC因其强大的功能以及Windows...3.WbemtestWbemtest是Windows自带的一个与WMI基础结构交互的图形化工具,它支持任何windows系统,在运行中输入wbemtest即可打开,在弹出连接页面中选择命名空间(WBEMTEST...不会浏览命名空间,需要我们手动选择连接到指定命名空间),默认选择root\cimv2,届时,通过Wbemtest工具进行枚举对象实例、执行查询、创建和修改WMI类和对象操作。...5.Win explorerWin explorer(windows资源查看器)是一款图形化查看WMI信息的工具,与wbemtest类似,不过比wbemtest功能更丰富,使用起来更方便。
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。...但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。...和脚本语言相比,C++对WMI有强大的控制和定制性,当然也具有更大的复杂性。本文将主要讲述使用VC如何搭建一个使用WMI的框架。...在《WMI技术介绍和应用——WMI概述》中我们提到,WMI中存在诸如root\default、root\cimv2等WMI命令空间。...工程源码见《WMI技术介绍和应用——WMI概述》结尾。
########################################################### import os, sys import time import wmi...##################################### def get_memory_info(): tmpdict = {} c = wmi.WMI
本文告诉大家如何通过 WMI 获取补丁 通过 Win32_QuickFixEngineering 可以获取系统启动的服务 Get-WmiObject Win32_QuickFixEngineering
import threading import win32api import win32con import Queue c = wmi.WMI() # 如果要连接远程机器,只需要在WMI构造器中指定远程机器名即可...# c = wmi.WMI("some_other_machine") # List All Running Processes # 列出所有正在运行的进程 for process in c.Win32...WMI构造器允许你传入一个完整的别名,或者是指定你需要的那一部分。\ # 使用wmi.WMI.__init__的帮助文档可以找到更多相关内容。...# List registry keys # 列出注册表子键 # 注:本例及以下几例使用了Registry()这个方便的函数,此函数是早期加入到wmi包的,它等效于: r = wmi.WMI(namespace...="secret" ) n = wmi.WMI(wmi=connection) # # Using wmi module at least 1.0rc3 # n = wmi.WMI( computer
Get-WmiObject -Namespace root\subscription -class commandlineeventconsumerhttps://github.com/davidpany/WMI_Forensics.gitWMI
领取专属 10元无门槛券
手把手带您无忧上云