WMI 全称为:Microsoft Windows Management Instrumentation (WMI)
受bin牛委托修改并发布,版权归bin牛所有。 Bug/建议提交:zcgonvh@rootkit.net.cn 祝各位马年大吉,财源滚滚。 免责声明: 本程序只用于管理员安全检测,使用前请注意环境与法律法规,因使用不当造成的后果本人不承担任何责任。 已测试的系统: win2003+iis6+.net 2.0 win2008+iis7+.net 4.0 win8+iis8+.net 4.5 注意:此版本最低需要.net 2.0环境,不再支持.net 1.1。如果目标机器是.net 1.1,请换用AspxSp
0000 操作已成功完成。 0001 错误的函数。 0002 系统找不到指定的文件。 0003 系统找不到指定的路径。 0004 系统无法打开文件。 0005 拒绝访问。 0006 句柄无效。 0007 存储区控制块已损坏。 0008 可用的存储区不足,无法执行该命令。 0009 存储区控制块地址无效。 0010 环境错误。
WMI(Windows Management Instrumentation) 是一项核心的Windows管理技术,WMI模块可用于获取Windows内部信息。WMI作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。
声明:本人坚决反对利用教学方法进行恶意攻击的行为,一切错误的行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解技术背后的原理,更好地进行安全防护。虽然作者是一名安全小白,但会保证每一篇文章都会很用心地撰写,希望这些基础性文章对你有所帮助,在安全路上一起前行。
域内横向移动技术是红队作战在域内最基本技术之一,红队人员会利用该技术,以被攻陷的系统为跳板,通过已经收集的凭据和密码,来访问域内其他主机,扩大战果,最终目的是获取到dc的访问控制权限。
攻击者借助跳板机进一步入侵内网服务器后,接着会通过各种方式来获取目标系统权限,获取用户的明文密码或Hash值在内网中横向移动。
今天,我要开始一系列关于微软WMI技术的介绍。通过之后若干节的介绍,我想WMI技术将为在windows平台上从事开发的朋友开启另外一扇窗。(转载请指明出于breaksoftware的csdn博客)
一:WMI基础知识 =================================================================== WMI 最初于1998年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在Windows 2000、 Windows XP和Windows Server 2003 系列操作系统中核心的管理支持技术。基于由 Distributed Management Task Force (DMTF) 所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。大多用户习惯于使用众多的图形化管理工 具来管理Windows资源,在WMI之前这些工具都是通过 Win32应用程序编程接口(Application ProgrammingInterfaces,API)来访问和管理Windows资源的。只要你熟悉系统编程你就知道API有多么重要。但是大多数脚本 语言都不能直接调用Win32 API,WMI的出现使得系统管理员可以通过一种简便的方法即利用常见的脚本语言实现常用的系统管理任务。 利用WMI需要和脚本如WSH和VBScript结合起来,可以实现的功能大家可以看微软的MSDN文档。 在编写我们自己的脚本之前,我们需要对WMI的体系结构有个基本的了解。如图一:(1.gif)
本篇继续阅读学习《内网安全攻防:渗透测试实战指南》,本章是权限维持分析及防御,分析了常见的针对操作系统后门、Web后门及域后门(白银票据、黄金票据等)的攻击手段,并给出了相应的检测和防范方法
这篇文章是有关 WMI 的多篇系列文章中的第一篇,如果读者对 PowerShell 有个基本的了解,那么对阅读本篇文章会有所帮助,但这不是必需的。
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。和脚本语言相比,C++对WMI有强大的控制和定制性,当然也具有更大的复杂性。本文将主要讲述使用VC如何搭建一个使用WMI的框架。(转载请指明出于breaksoftware的csdn博客)
众所周知,在windows10以及Windows Server2016的平台当中,PowerShell5.x已经能够去获取到系 统当中大部分的信息,但有时候仍有一些信息需要借助于调用WMI的类来完成。通过本文,你可以 了解到WMI的基本架构和组件,包括WMI的数据库,WMI的provider,以及在PowerShell调用WMI的 时候提供的module和相关的命令。接下来我们就能通过powershell的命令去完成WMI的查询操作, 去获取到系统当中WMI的实例。然后我们还可通过实例的属性查看到系统当中不同的信息,同时的 话去调用实例当中为我们提供的不同的方法,去修改系统信息的配置。
目前已知在杀毒厂商以及游戏厂商的安全对抗过程中,常常需要准确的监控收集并进行检测用户创建打开的EXE应用程序是否是安全的。同时也可以将此技术应用于其他应用的安全对抗方案中。那么如何去准确的监控和收集用户每次点击打开的EXE应用程序信息呢?接下来我就进行还原实现下如何准确的监控并收集用户每次点击打开EXE应用程序技术。
WMI在笔者所参与的项目中发现目前攻防中利用依旧非常频繁,尤其在横向移动中,利用wmic或者powershell的WMI模块操作Win32来达到渗透的目的。笔者在学习了WMI后,将其分为四个模块(讲解、横向移动、权限提升、攻击检测),并写了四篇文章来讲解,还追加了小知识点的编写(WBEMTEST工具使用,普通用户使用wmic)。笔者能力有限,在几篇中若有未讲人话之处,望谅解。
在 PowerShell 可以很容易使用 WMI 拿到系统的信息,如果有关注我的网站,就会发现我写了很多通过 WMI 拿到系统的显卡,系统安装的软件等方法,本文告诉大家如果通过 PowerShell 拿到 WMI 类里面的属性
WMI全称为Windows Management Instrumentation,即Windows管理规范,是Windows 2K/XP管理系统的核心。它属于管理数据和操作的基础模块,设计WMI的初衷是为了能达到一种通用性,通过WMI去操作系统、应用程序等去管理本地或者远程资源。它支持分布式组件对象模型(DCOM)和Windws远程管理(WinRM),用户可通过WMI服务访问、配置、管理和监视Windows所有资源的功能,对于其他的Win32操作系统来讲WMI是一个非常不错的插件,同时也是测试人员在攻防实战中一个很完美的“无文件攻击”入口途径。
区别于传统的基于文件的攻击,无文件非恶意软件攻击在内存中运行,不需要利用可执行文件就能达到攻击的目的。无文件非恶意软件本身是系统内置的合法工具,但是被用来执行一些不合法的操作,也就是我们常说的白名单绕过执行。总的来说就是利用Windows 的一部分来对抗Windows。
域内横向移动技术就是在复杂的内网攻击中被广泛使用的一种技术,尤其是在高级持续威胁中。攻击者会利用该技术,以被攻陷的系统为跳板,访问其他 域内主机,扩大资产范围(包括跳板机器中的文档和存储的凭证,以及通过跳板机器连接的数据库、域控制器或其他重要资产)。
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。
当前,Windows Management Instrumentation(WMI)事件订阅已经变成了一种非常流行的在端点上建立持久性后门的技术。于是,我决定鼓捣一下Empire的WMI模块,并分析相关的代码,看看能不能清除这些持久化后门。此外,文中还介绍了用于查看和删除WMI事件订阅的一些PowerShell命令。
Windows Management Instrumentation(WMI)事件订阅,是一种常被攻击者利用来在端点上建立持久性的技术。因此,我决定花一些时间研究下Empire的WMI模块,看看有没有可能检测并移除这些WMI持久化后门。此外,文中我还回顾了一些用于查看和移除WMI事件订阅的PowerShell命令。这些命令在实际测试当中都非常的有用,因此我也希望你们能记录它们。
更新后的Mykings会在被感染系统安装开源远程控制木马PcShare,对受害电脑进行远程控制:可进行操作文件、服务、注册表、进程、窗口等多种资源,并且可以下载和执行指定的程序。
WMI使用技巧集 很多的朋友对WMI可能见过但理解不深,我也是十分想了解关于WMI的知识,可一直找不运维
当我们已经获取了远程系统的凭证(明文密码或 hash)时,可以直接通过3389远程登录进去收集信息、进行下一步的渗透,但是这样做的话会在系统上留下我们的操作记录,而且有可能邂逅管理员。大部分情况下,一个cmdshell 已经可以满足我们继续渗透的需求,所以不到万不得已的时候最好不要远程桌面连接(mstsc),而是通过远程执行命令的方式继续开展工作。本文整理了一些远程执行命令的姿势,测试环境如下:
当前,WMI支持两种远程交互的协议:DCOM协议和WinRm协议。我们可以通过这两种协议对远程的机器进行对象查询、事件注册以及WMI类方法的执行等操作,攻击者要有效的利用WMI的两种远程交互协议则需要一定的特权用户凭证,因此大多数的安全厂家通常都不会对WMI这两种协议所传输的恶意内容以及恶意流量进行审查,这就让攻击者对WMI这两种协议有了可利用的空间,那么,接下来给大家分别介绍WMI所支持的两种协议—DCOM协议和WinRm协议。
您可以使用本主题中的过程和代码示例来创建完整的WMI客户端应用程序,该应用程序执行COM初始化,连接到远程计算机上的WMI,半同步获取数据,然后清理。
CIMplant是WMImplant项目的C#实现,并扩展了原项目的相关功能,该工具 能够使用CIM或WMI来查询远程系统,并且可以使用用户提供的凭据或当前用户的会话来执行操作。
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。
WMI 是基于 Web 的企业管理 (WBEM) 标准的 Microsoft 实现,WCF 公开服务的属性,如地址、绑定、行为和侦听器。您可以在应用程序的配置文件中激活内置 WMI 提供程序。这可以通过 system.ServiceModel element一节中的 <diagnostics> Element的 wmiProviderEnabled 属性实现,如以下配置示例所示。 <system.serviceModel> … <diagnostics wmiProviderEnabled
Windows Management Instrumentation (WMI,Windows管理规范) 是Web-Based Enterprise Management (WBEM)的Windows实现,是在Windows操作系统中管理和操作数据的基础设施。 WBEM的数据模型是CIM(Common Information Model,公共信息模型)。CIM是一个用来命名计算机的物理和逻辑单元的标准的命名系统(或称为命名模式),例如硬盘的逻辑分区、正在运行的应用的一个实例,或者一条电缆。 WMI是一项核心
.NET 框架中与 WMI 规范有关的命名空间有两个 , 分别是 System.Management 和 System.Management.Instrumentation 两个命名空间。其中 System.Managemen 命名空间提供的类对象为访问各种管理对象提供了面向对象的编程接口,而 System.Management.Instrumentation 命名空间提供的类用来设置用户自定义的应用程序,使得这些应用程序对象能够符合 WMI 的规范,从而通过 WMI 向使用该应用程序的管理者公开其提供的管理信息和事件,这些使用者有可能是 Microsoft Application Center 或 Microsoft Operations Manager 这样的,也有可能是自定义编写的高端管理应用程序(您可以通过 System.Management 命名空间提供的类对象来编写自己的管理应用程序)。因此,如果您想使自己的产品的管理可以在这些管理工具,您就得使您自己的应用程序符合 WMI 的规范,而针对 .NET 平台上的应用程序 WMI 规范编写来说,使用的是 System.Management.Instrumentation 命名空间提供的类。
ATT&CK 技术项编号为 T1036 的二进制重命名技术,正在被越来越多的恶意软件所采用,本文介绍如何使用多种方法对该技术进行监控与检测。
在内网渗透中,当攻击者获取到内网某台机器的控制权后,会以被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围。通过此类手段,攻击者最终可能获得域控制器的访问权限,甚至完全控制基于Windows操作系统的整个内网环境,控制域环境下的全部机器。
在内网渗透过程中,有时我们是需要了解不同的服务器的基本软硬件配置信息的,同时也可能需要 将它们生成报告进行归档,那么通过 Powershell,我们也能够轻松的去完成这个过程。本文中,我 们将主要说明如何通过 Powershell 收集系统信息和生成报告。
使用下面代码,使用 Win32_Process 拿到所有的进程,通过 WHERE 判断当前的进程,然后拿到进程传入的命令
在这一节内容,我们将通过几个实例来学习如何查询管理对象信息和访问管理对象提供的方法,这一部分内容将使用到我们在前面讲述到的 System.Management 命名空间中的相关类对象。
# -*- coding:utf-8 -*- import datetime import os import wmi import time import _winreg import pythoncom import threading import win32api import win32con import Queue c = wmi.WMI() # 如果要连接远程机器,只需要在WMI构造器中指定远程机器名即可 # c = wmi.WMI("some_other_machine") # Li
这是 WMI 攻击手法研究系列文章第四篇,将更多地关注信息收集和枚举。WMI 提供了大量的类,可以从中列举出很多东西。因此,让我们来深入了解,不要再浪费时间了。
C#里面,虽然在 System.Drawing.Printing 这个namespace下,提供了一些对系统打印机的访问功能,但是,说实话是太弱了,对获取打印机的相关属性基本是无能为力的。
# -*- coding: utf-8 -*- #import ######################################################################## import os, sys import time import wmi ######################################################################## #function ######################################################################## def get_memory_info(): tmpdict = {} c = wmi.WMI () cs = c.Win32_ComputerSystem() os = c.Win32_OperatingSystem() pfu = c.Win32_PageFileUsage() tmpdict["MemTotal"] = int(cs[0].TotalPhysicalMemory)/1024/1024 tmpdict["MemFree"] = int(os[0].FreePhysicalMemory)/1024 tmpdict["SwapTotal"] = int(pfu[0].AllocatedBaseSize) tmpdict["SwapFree"] = int(pfu[0].AllocatedBaseSize - pfu[0].CurrentUsage) return tmpdict if __name__ == "__main__": print get_memory_info()
网络负载平衡 (NLB) 服务增强了 Web、FTP、防火墙、代理、VPN 和其他关键任务服务器之类的 Internet 服务器应用程序的可用性和可伸缩性。运行 Windows 的单个计算机可提供有限的服务器可靠性和可伸缩的性能。但是,通过将两个或多个运行一种 Windows Server 2003 家族产品的计算机资源组合为单个群集,网络负载平衡可以提供 Web 服务器和其他关键任务服务器所需的性能和可靠性。 网络负载平衡(NLB)是将网络连接客户与服务器应用分布在同一个NLB群集内的多
横向的手法从简单的远程桌面协议(rdp)到漏洞利用,手法不断在改变,要对抗的设备产品也不断地变化,有个技术主管问我,红蓝的快乐在于什么?为什么我钟情在红蓝。我想中快乐就是来自于对抗吧。
专注是做事成功的关键,是健康心灵的特质。当你与所关注的事物融为一体时,就不会让自己萦绕于焦虑之中。专注与放松,是同一枚硬币的两面而已。一个人对一件事只有专注投入才会带来乐趣。一旦你专注投入进去,它立刻就变得活生生起来。
开启WebDAV服务的IIS 6.0被爆存在缓存区溢出漏洞导致远程代码执行,目前针对Windows Server 2003 R2可以稳定利用,该漏洞最早在2016年7,8月份开始在野外被利用。
这是 WMI 攻击手法研究系列第三篇,本文将重点介绍与 Windows 注册表的交互。在开始之前需要了解的一件事情是:MITRE ATT&CK 对查询注册表 (Query Registry) 归类于 T1012 以及它的修改 (Modify Registry) 归类于 T1112。
在之前,我曾在安全客分享过《wmi攻击与防御》的相关议题。里面介绍了关于wmi的一些相关内容,其中提到了使用wmi进行横向移动的方法,只是当时由于时间原因并未对细节进行讲解,在成熟的企业内网中,如何优雅的进行横向移动是需要每个安全人员需要去注意的点。比如如何使用CobaltStrike、Impacket等工具进行横向移动时最小化操作的技巧等。本文将讲解如何使用wmi事件订阅来进行横向移动。
通常我们在渗透过程中从外围打点进入内网后拿到主机提升到system权限,这一台主机就已经拿下。但是我们进入内网的目标还是拿下尽可能多的主机,这时候选择横向移动的方法就尤为重要。今天就对一些常用的横向手法进行一个总结,有不足之处欢迎师傅们进行斧正。
领取专属 10元无门槛券
手把手带您无忧上云