WMI有一组API我们不管使用VBScript、PowerShell脚本还是利用C#的来访问WMI的类库,都是因为WMI向外暴露的一组API。...尽管WMI的多数实例数据都不存储在WMI中,但是WMI确实有一个存储库,用来存放提供程序提供的类信息,或者称为类的蓝图或者Schema。 WMI有一个Service。...Class Win32_Process -KeyOnly $x | Invoke-CimMethod -MethodName GetOwner # 仅获取属性的子集,而不是所有属性 # 使用属性参数检索的实例可用于执行其他...类有关信息 描述: 获取 Windows Management Instrumentation (WMI) 类的实例或有关可用类的信息。...可以使用PowerShell或CMD检索Windows产品密钥。
本文将介绍如何在 C# 中获取操作系统的详细信息,涵盖操作系统名称、版本、体系结构等内容,并提供详尽的代码示例和解释。 1....在此示例中,我们执行了一个查询来获取 Win32_OperatingSystem 类的所有属性。...我们同样可以使用 WMI 来获取系统的内存信息。...查询以获取内存信息 ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32...+ (Convert.ToUInt64(system["TotalPhysicalMemory"]) / 1024 / 1024) + " MB"); } } } 代码详解: Win32
WMI使用公共信息模型 (CIM) 表示托管组件,其中包括系统、应用程序、网络等等 CIM中使用 “Class"(类)表示管理对象,类的实例是“Object”,名称空间(Namespace)是一个类的集合...Code Creator 这是微软官方出的一款代码生成器,可生成C#、VB .net 、VB Script代码 WMIGen 可生成各种变成语言,调用WMI 除了”IWbem* COM API“和”....Eventing,如果使用WmiExplorer可查看到对应命名空间中创建了新的实例。...事件订阅(也就是3个组件的类的实例),payload是由WMI脚本 宿主进程启动。...笔者的思路为:注册对应的WMI 永久事件订阅,来监控对应的事件,动作设置为写入日志或其他(列如通知) 注:删除WMI 永久事件订阅本身也可以触发事件 缓解措施 禁用WMI服务:可以会影响依赖该服务的应用
在.NET的项目中,有时候需要获取计算机的硬件的相关信息,在C#语言中需要利用ManagementClass这个类来进行相关操作。 ...管理类是 WMI 类,如 Win32_LogicalDisk, ,该类型可表示一个磁盘驱动器,并 Win32_Process, ,它表示的进程 Notepad.exe 等。 ...此类的成员可以访问 WMI 数据,使用一个特定的 WMI 类路径。 一....不保证所有实例成员都是线程安全的。...= mo["Product"].ToString(); } return st; } 以上的获取硬件信息的方法可以直接封装在一个类中,
C#语言中需要利用ManagementClass这个类来进行相关操作。...管理类是 WMI 类,如 Win32_LogicalDisk, ,该类型可表示一个磁盘驱动器,并 Win32_Process, ,它表示的进程 Notepad.exe 等。...此类的成员可以访问 WMI 数据,使用一个特定的 WMI 类路径。 一....不保证所有实例成员都是线程安全的。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
通过WMI,可以使用各种编程语言(如C#、VBScript、PowerShell等)来执行诸如查询系统信息、监控性能、配置系统设置等任务。...WMI 是Windows操作系统中用于管理和监视的框架,而WQL则是用于与WMI进行交互的查询语言。...download.csdn.net/download/lyshark_csdn/87950095 WQL 的语法类似于 SQL(Structured Query Language),使用WQL可以执行各种查询来检索关于计算机系统...为了方便查询获取参数这里提供一个简单的查询工具供大家查询使用,下载后打开,其默认查询的是Win32_ComputerSystem也就是系统的基本参数信息; 如果我们需要获取其他信息,比如得到计算机中所安装的所有... #include # pragma comment(lib, "wbemuuid.lib") using namespace std; // 去掉字符串中的空格
1.信息收集当我们在拿到内网某一台机器权限时,第一时间要做的就是信息收集,WMI中的各种类为我们在内网信息收集方面提供了十分有利的条件,作为红队的我们可以利用如下WMI中各种类的子集来对目标进行全方面信息收集...主机/操作系统信息:Win32_OperatingSystem, Win32_ComputerSystem。文件/目录列举: CIM_DataFile。磁盘卷列举: Win32_Volume。...2.杀毒引擎检测 默认情况下,杀毒引擎会自动注册在WMI 中的 AntiVirusProductclass 类中的 root\SecurityCenter 或者是root\SecurityCenter2...4.WMI攻击检测WMI拥有极其强大的事件处理子系统,因在操作系统中所有的操作行为都可以触发WMI的事件,我们可以将WMI理解成是微软操作系统中自带的一个免费IDS(入侵流量检测),WMI的定位就是实时捕获攻击者的攻击操作...当攻击者安装恶意WMI提供程序时,⼀个Provider类的实例会被创建,InstanceCreationEvent事件会被触发。
然而,各种框架,如 Metasploit、Empire、PoshC2、PowerSploit 和多个 PowerShell 脚本和 C# 工具可用于自动化此技术,为代码执行提供不同的触发器和各种选项。...编译文件时添加到 WMI 存储库 (OBJECTS.DATA) 的类和类实例(mofcomp.exe 可以编译 MOF 文件,它是 Windows 的一部分)。...PowerShell PowerShell 包含可以查询 WMI 对象并将信息检索回控制台的 cmdlet。以下命令可用于验证是否已创建任意事件以及恶意负载/命令是否存储在 WMI 存储库中。...该脚本使用 WMI 存储库来存储恶意命令,该命令将执行任意脚本、可执行文件或任何其他带有参数的命令。以下函数将检索所有活动的 WMI 事件对象。...“ wmi_updater ” 模块能够从远程位置获取有效负载,而不是将其存储在 WMI 存储库中。它将注册为“ AutoUpdater ”,并且可以在启动时或一天中的特定时间设置触发器。
其中,通过执行Select * from Win32_ComputerSystem命令使用 WMI 来进行检测逃避。...这个方法对虚拟化相关的检测进行了一些检查,如: vmware VIRTUAL VirtualBox sbiedll.dll (Sandboxie) snxhk.dll (Avast sandbox) SxIn.dll...在发现文件中,恶意软件会检索经典的关键字,这些关键字显示文件的内容中存在一些有用的凭据: ? 随后,恶意软件会将所有收集到的信息发送到另一个名为connect的资源提供的 C&C 服务器: ?...检索参数的方式与前述相同,在ulfile中标记了要下载的组件。 ? 结论 Poulight Stealer 具有惊人的潜力,不排除它的异军突起将来可能会代替其他恶意软件家族。...00 7D 00 3C 00 2F 00 63 00 6C 00 62 00 61 00 73 00 65 00 3E 00} $s7 = "Select * from Win32_ComputerSystem
WMI 特点: WMI有一组API: 我们不管使用VBScript、PowerShell脚本还是利用C#的来访问WMI的类库,都是因为WMI向外暴露的一组API,通过调用API实现使用指定的类。...WMI有一个存储库: 尽管WMI的多数实例数据都不存储在WMI中,但是WMI确实有一个存储库,用来存放提供程序提供的类信息,或者称为类的蓝图或者Schema。...退出程序 如:我要查看process命令的帮助,键入:wmic process /?...模式中的类。...PATH #从WMIC的默认别名模式中转义,直接访问WMI模式中的实例。 WMIC CONTEXT #显示所有全局开关的当前值。
其默认端口、解析地址均写在了ClientSettings.cs中: ? 而基础的信息获取的实现,其代码文件如下 ?...} } 我们可以清楚的看到 @"\root\SecurityCenter2" SELECT * FROM AntivirusProduct 等字样,是很明显的WMI...得到利用方法,而在C#中一般用来获取硬件等信息的类为ManagementObjectSearcher。...; using (ManagementObjectSearcher MOS = new ManagementObjectSearcher("Select * From Win32...然后在StreamClasses中调用: ? 就先分析到这里吧,还有很多功能,下次一定。
其不能直接进行执行,需要切换终端到C:\Windows\System32\wbem位置下才能进行调用; 在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI...如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。...退出程序 如:我要查看process命令的帮助,键入:wmic process /?...模式中的类。...PATH #从WMIC的默认别名模式中转义,直接访问WMI模式中的实例。 WMIC CONTEXT #显示所有全局开关的当前值。
.Net本身没有封装对快捷方式的操作类,所以要在C#中操作快捷方式,需要借助“外力”。市面上常见的方法是通过Windows Script Host Object Model这个COM组件来完成。...这种方法的缺憾是你的程序必须带上Interop.IWshRuntimeLibrary.dll这个文件(不过也许可以把这个dll并入exe中再动态加载什么的)。...的世界自成一体,也有命名空间,类,对象/实例,属性,方法等概念。...我目前倾向用数据库的结构来理解它:WMI就好比一个SQL实例,不同的命名空间就是SQL实例上不同的库,而WMI的类就是库里面的表,类的属性就是表里的字段,其余的方法什么的我目前还没概念,就不妄言了。...最后,推荐几个WMI工具: 1、系统自带。运行wbemtest 2、WMI Explorer。
pip install wmi import wmi 下面的代码是获取Windows主机相关信息。...在C#中对注册表进行操作,需要引用命名空间using Microsoft.Win32。 RegistryKey类:表示注册表中的顶级结点,此类是注册表的封装。...运行结果如下: ---- (2) 检索键值操作 winreg.QueryInfoKey(key) 以元组形式返回键的信息 winreg.QueryValue(key, sub_key) 以字符串形式检索键的未命名值...在Windows的shellapi文件中定义了一个名为SHFileOperation的外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT...然后就是其实存储USB记录的还有很多键值,如 HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Enum\USB 该键值中能看到厂商号(VID)、厂商产品号(PID),
.NET 框架中的 WMI 命名空间 .NET 框架中与 WMI 规范有关的命名空间有两个 , 分别是 System.Management 和 System.Management.Instrumentation...System.Management 命名空间 System.Management 命名空间是 .NET Framework 中的 WMI 命名空间。...在前面说过,对于管理对象,可以像在关系数据库里面使用SQL查询语句一样进行您感兴趣的数据过滤查询,如: SELECT * FROM Win32_ LogicalDisk ManagementQuery...ManagementObjectSearcher:用于根据指定的查询或枚举检索管理对象的集合。...对于这个命名空间其他的类将在后面的实例讲解中再做叙述。
0x02.2.3、WMI 被用于无文件非恶意软件攻击的几个实例 1)、使用 Win32_Process 在本地或远程生成进程,等效于运行 psexec 的 wmi 2)、Wmi 事件权限维持 3)、著名无文件攻击病毒...WMI 从 windows95 和 windows NT 4.0 便存在 windows 系统中,可谓根深蒂固。...在实际环境中,WMI 不仅仅可以用来收集信息、还可以利用 WMI 进行代码执行、横向移动和构建持久无文件后门程序等 0x02.3、.NET Framework 框架 0x02.3.1、.NET 简介...NET 框架编写的程序在软件环境“通用语言运行时”中执行 3) 、.NET 与几种编程语言一起使用,包括 C#,VB.NET Shop,C ++和 F#。...,包括运行 PowerShell 实例。
使用与系统的 RDP 连接,可以使用“ certsrv.msc ”的备份功能检索这些信息。 certsrv – 备份 CA 在证书颁发机构备份向导中,私钥和 CA 证书都可以导出到指定位置。...SharpDPAPI - CA 证书 提取的私钥和证书可以写入扩展名为 .PEM 的文件中。执行以下命令可以将证书转换为可用格式,如 .PFX 允许用于使用 Rubeus 进行身份验证。...crypto::scauth /caname:ca /upn:pentestlab@purple.lab 伪造CA证书——Mimikatz 或者,ForgeCert是由Lee Christensen在 C#...执行以下命令将检索 base64 格式的票证。...从当前执行 Mimikatz 并运行以下命令的会话中,将检索作为域管理员帐户的用户 Administrator 的 NTLM 哈希。
项目介绍 SharpHostInfo是一款快速探测内网主机信息工具(深信服深蓝实验室天威战队强力驱动) 功能特性 c#编写,可内存执行,免杀友好。 小巧轻便,速度极快。...支持NetBIOS(默认137端口)、SMB(默认445端口)和WMI(默认135端口)服务快速探测 支持探测失败IP其他协议补偿探测 支持自动识别域控主机 支持自动识别MAC地址对应设备 项目使用 1...NBNS探测失败的IP会进行下一轮SMB或WMI探测,默认线程100个,默认探测超时500毫秒 SharpHostInfo.exe -i 192.168.1.1/24 3、使用NetBIOS和WMI服务进行探测...-m 1000 免责声明 本工具仅面向合法授权的企业安全建设行为,例如企业内部攻防演练、漏洞验证和复测,如您需要测试本工具的可用性,请自行搭建靶机环境。...如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任
在《WMI技术介绍和应用——WMI概述》中,我们使用了下图介绍WMI构架(转载请指明出于breaksoftware的csdn博客) ? ...上图的WMI Providers and Managed Objects(托管对象和WMI提供者)层中,我们将使用Provider帮我们检测WMI变化。...永久事件使用者是保存在WMI仓库中(上图2层中WMI repository),并且是一个在WMI中注册的可执行文件,这样WMI便可以方便的寻找和加载它了。 ...这些事件都是由事件提供者(An event provider)发送给WMI的。它也是个COM组件。我们可以使用C++或者C#编写事件提供者程序。大部分事件提供者管理着一个WMI对象。...我们主要需要实现Indicate方法,WMI框架将调用这个方法把消息实例传递给我们。
领取专属 10元无门槛券
手把手带您无忧上云