使用WMI技术主要分为两个大的方面:1 获取信息;2 提供数据。其中“获取信息”需要WMI Classes(以后称为WMI类)。“提供数据”需要WMI Provider(以后称为WMI提供者)。 WMI Consumers(WMI使用者) 它位于WMI构架的最顶层,是WMI技术使用的载体。如果我们是C++程序员,我们可以通过COM技术直接与下层通信。 它包含两个模块:包含WMI Core(WMI核心)的WMI Service(WMI服务)(Winmgmt)和WMI Repository(WMI存储库)。 WMI存储库是通过WMI Namespace(WMI命名空间)组织起来的。 WMI提供者将数据返回给WMI服务,WMI服务再将结果返回给请求的应用。
在 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
领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折
于是重新整理,有了这份,我认为精简版的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攻击检测 谢公子学安全 讲在前面 作者:pingpig@深蓝攻防实验室 在前面的文章中我们讲了:WMI讲解(是什么,做什么,为什么) WMI利用(横向移动) WMI利用(权限维持) 今天主要分享的是WMI攻击检测。 总之两点: 做好 WMI 连接的网络流量监控,一般不使用 WMI 的环境若出现了使用 WMI的情况,则内部网络可能已经被入侵。 做好进程监控,监测”wmic.exe“的命令行参数及其执行的命令。 WMI 方法。 若通过 WINRM 协议执行时,WMI 流量看起来像 HTTP,并且再次与通过 SVCCTL 接口时完全不同。这意味着 WMI技术可以有效地规避任何流量检测其横向移动的操作。
https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/about-wmi https://mp.weixin.qq.com/s/0Nu8QQG99RNlB8HdlQgQsw 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使用技巧集 很多的朋友对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 执行操作(例如,读取管理详细信息、配置系统和预订事件)的软件组件。
ManagementClass c = new ManagementClass("Win32_DiskQuota");
2021 WMI利用 (横向移动) 谢公子学安全 讲在前面 作者:pingpig@深蓝攻防实验室 上一篇文章我们简单的解释了什么是WMI,WMI做什么,为什么使用WMI。 本文是笔者在阅读国内部分的解释WMI横向移动的文章后写下的一篇文章,希望帮助同学们在攻防中进入横向移动后根据实际场景利用WMI来解决问题。 WMIcmd.exe在域内使用 pth-wmic 注意:此为kali内置工具,只能执行一些WMI命令,无法执行其他命令. 参考文章 内网横移之WinRM 内网渗透|基于WMI的横向移动 WmiScan 135端口智能密码/WMI密码爆破 WinRM的横向移动详解 WMI横向移动 不需要 Win32_Process – 扩展 WMI 横向运动 利用wmic调用xsl文件的分析与利用 利用WMIC执行Payload
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。 但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。 和脚本语言相比,C++对WMI有强大的控制和定制性,当然也具有更大的复杂性。本文将主要讲述使用VC如何搭建一个使用WMI的框架。 在《WMI技术介绍和应用——WMI概述》中我们提到,WMI中存在诸如root\default、root\cimv2等WMI命令空间。 在WMI Consumers层,我们发现,C++程序是直接和WMI COM API进行交互。所以我们要先初始化COM组件库。
########################################################### import os, sys import time import wmi ##################################### def get_memory_info(): tmpdict = {} c = wmi.WMI
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
本文告诉大家如何通过 WMI 获取补丁 通过 Win32_QuickFixEngineering 可以获取系统启动的服务 Get-WmiObject Win32_QuickFixEngineering
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
Get-WmiObject -Namespace root\subscription -class commandlineeventconsumerhttps://github.com/davidpany/WMI_Forensics.gitWMI
本文告诉大家如何通过 WMI 获取补丁 通过 Win32_QuickFixEngineering 可以获取系统启动的服务 下面代码只是获取补丁的 kb 字符 const Windows applications ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/dotnet-%E9%80%9A%E8%BF%87-WMI
import os 6 import sys 7 import platform 8 import time 9 10 def sys_version(): 11 c = wmi.WMI 系统是32位还是64位的 16 print sys.NumberOfProcesses #当前系统运行的进程总数 17 18 def cpu_mem(): 19 c = wmi.WMI Capacity: %.fMB" %(int(Memory.Capacity)/1048576) 26 27 def cpu_use(): 28 #5s取一次CPU的使用率 29 c = wmi.WMI cpu.LoadPercentage) 34 time.sleep(5) 35 36 def disk(): 37 c = wmi.WMI 0.2f%% free" % (100.0 * long (disk.FreeSpace) / long (disk.Size)) 47 48 def network(): 49 c = wmi.WMI
扫码关注腾讯云开发者
领取腾讯云代金券