一: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)
在简单了解了WMI后,我们开始了横向移动,包括其中的信息收集,工具利用。那么在我们短暂的获取权限后,如何才能将权限持久化,也就是所说的权限维持住呢?笔者看了国内外部分文章后,发现WMI做权限维持主要是介绍WMI事件,并将其分为永久事件和临时事件,本文参考部分博客文章对WMI事件进行讲解,不足之处,望及时指出。
《ZABBIX全栈级监控实践》系列将由浅入深探讨如何实现ZABBIX全栈级别的监控。
众所周知,在windows10以及Windows Server2016的平台当中,PowerShell5.x已经能够去获取到系 统当中大部分的信息,但有时候仍有一些信息需要借助于调用WMI的类来完成。通过本文,你可以 了解到WMI的基本架构和组件,包括WMI的数据库,WMI的provider,以及在PowerShell调用WMI的 时候提供的module和相关的命令。接下来我们就能通过powershell的命令去完成WMI的查询操作, 去获取到系统当中WMI的实例。然后我们还可通过实例的属性查看到系统当中不同的信息,同时的 话去调用实例当中为我们提供的不同的方法,去修改系统信息的配置。
CIMplant是WMImplant项目的C#实现,并扩展了原项目的相关功能,该工具 能够使用CIM或WMI来查询远程系统,并且可以使用用户提供的凭据或当前用户的会话来执行操作。
在《WMI技术介绍和应用——WMI概述》中介绍了我们可以使用C++、.net或者支持ActiveX技术的脚本语言来使用WMI。但是各种语言对WMI的控制能力是不同的,比如脚本语言只能用来从WMI获取数据或者接收事件通知。而C++还可以编写WMI提供者和发送消息。和脚本语言相比,C++对WMI有强大的控制和定制性,当然也具有更大的复杂性。本文将主要讲述使用VC如何搭建一个使用WMI的框架。(转载请指明出于breaksoftware的csdn博客)
在《WMI技术介绍和应用——WMI概述》中,我们使用了下图介绍WMI构架(转载请指明出于breaksoftware的csdn博客)
今天,我要开始一系列关于微软WMI技术的介绍。通过之后若干节的介绍,我想WMI技术将为在windows平台上从事开发的朋友开启另外一扇窗。(转载请指明出于breaksoftware的csdn博客)
WMI在笔者所参与的项目中发现目前攻防中利用依旧非常频繁,尤其在横向移动中,利用wmic或者powershell的WMI模块操作Win32来达到渗透的目的。笔者在学习了WMI后,将其分为四个模块(讲解、横向移动、权限提升、攻击检测),并写了四篇文章来讲解,还追加了小知识点的编写(WBEMTEST工具使用,普通用户使用wmic)。笔者能力有限,在几篇中若有未讲人话之处,望谅解。
WMI使用技巧集 很多的朋友对WMI可能见过但理解不深,我也是十分想了解关于WMI的知识,可一直找不运维
.Net本身没有封装对快捷方式的操作类,所以要在C#中操作快捷方式,需要借助“外力”。市面上常见的方法是通过Windows Script Host Object Model这个COM组件来完成。这种方法的缺憾是你的程序必须带上Interop.IWshRuntimeLibrary.dll这个文件(不过也许可以把这个dll并入exe中再动态加载什么的)。
目前已知在杀毒厂商以及游戏厂商的安全对抗过程中,常常需要准确的监控收集并进行检测用户创建打开的EXE应用程序是否是安全的。同时也可以将此技术应用于其他应用的安全对抗方案中。那么如何去准确的监控和收集用户每次点击打开的EXE应用程序信息呢?接下来我就进行还原实现下如何准确的监控并收集用户每次点击打开EXE应用程序技术。
Windows Management Instrumentation (WMI) 使系统管理员能够在本地和远程执行任务。从红队的角度来看,WMI 可用于执行多种活动,例如横向移动、持久性、态势感知、代码执行以及作为命令和控制(C2)。WMI 是几乎所有 Windows 操作系统(Windows 98-Windows 10)中都存在的 Windows 的一部分,这一事实使这些攻击性活动远离蓝队的雷达。
python写的用WMI检测windows系统信息、硬盘信息、网卡信息 #!/usr/bin/env python -- coding: utf-8 -- import wmi import sys,time,platform def get_system_info(os): """ 获取操作系统版本。 """ print print "Operating system:" if os == "Windows": c = wmi.WMI
# -*- 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
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 #http://www.cnblogs.com/liu-ke/ 4 import wmi 5 import os 6 import sys 7 import platform 8 import time 9 10 def sys_version(): 11 c = wmi.WMI () 12 #获取操作系统版本 13 for sys in
当我们在拿到内网某一台机器权限时,第一时间要做的就是信息收集,WMI中的各种类为我们在内网信息收集方面提供了十分有利的条件,作为红队的我们可以利用如下WMI中各种类的子集来对目标进行全方面信息收集。
本文是以WMI的重写版,本来这份笔记会更长,原版的笔记以Black Hat 2015的Abusing Windows Management Instrumentation (WMI) to Build a Persistent, Asyncronous, and Fileless Backdoor为主要学习资料,在笔记写到大概一万字的时候,Typora 中保存的内容部分丢失。于是重新整理,有了这份,我认为精简版的WMI笔记。
区别于传统的基于文件的攻击,无文件非恶意软件攻击在内存中运行,不需要利用可执行文件就能达到攻击的目的。无文件非恶意软件本身是系统内置的合法工具,但是被用来执行一些不合法的操作,也就是我们常说的白名单绕过执行。总的来说就是利用Windows 的一部分来对抗Windows。
上一篇文章我们简单的解释了什么是WMI,WMI做什么,为什么使用WMI。本文是笔者在阅读国内部分的解释WMI横向移动的文章后写下的一篇文章,希望帮助同学们在攻防中进入横向移动后根据实际场景利用WMI来解决问题。在横向移动中的固定过程中一定离不开“信息收集”,然后分析信息根据实际场景(工作组或者域)来进行横向移动,至于使用什么工具,为什么使用这个工具,笔者使用WMI的意见。所以本文分为三个段落,信息收集、横向移动、部分意见。 信息收集。
在之前,我曾在安全客分享过《wmi攻击与防御》的相关议题。里面介绍了关于wmi的一些相关内容,其中提到了使用wmi进行横向移动的方法,只是当时由于时间原因并未对细节进行讲解,在成熟的企业内网中,如何优雅的进行横向移动是需要每个安全人员需要去注意的点。比如如何使用CobaltStrike、Impacket等工具进行横向移动时最小化操作的技巧等。本文将讲解如何使用wmi事件订阅来进行横向移动。
网络罪犯利用加密挖矿恶意软件盗用计算资源牟利。早在2017年,已经观察到他们如何应用无文件技术使检测和监测更加困难。
WMI即Windows Management Instrumentation,用于管理正在运行的Windows主机。用户利用WMI可以轻松地与系统各类资源进行交互,如打开指定进程、远程启动计算机、设定指定程序在指定时间运行、查询Windows日志等。我们可以把它当作API来与Windows系统进行相互交流。在渗透测试的过程中,WMI的价值就是不需要下载和安装,因为WMI是Windows系统自带的功能,而且整个运行过程都在计算机内存中进行,操作记录不会在Winodws日志中留存。在前面的内容中对WMI有过介绍,因此不过多讲解原理。
在之前的博文中,我们主要介绍了如何使用WMI查询信息和接收事件。本文将介绍WMI的另一种用法——执行方法。(转载请指明出于breaksoftware的csdn博客)
[TOC] 0x00 前言简述 Q: 什么是WMI? 答: WMI出现至今已经多年,但很多人对它并不熟悉。知道它很好很强大,但不知道它从哪里来,怎么工作,使用范围是什么? WMI有一组API我们不管
WMI是一项windows管理技术,其全称是Windows Management Instrumentation,即Windows管理规范。大多数基于Windows的软件依赖于此服务。因此有些黑客会针对WMI进行攻击。本文介绍了 WMI 的攻击和安全防御方法,以供大家交流讨论。
IntelliJ IDEA 拥有强大的编码辅助、动态语法检测、代码检查、智能编辑等功能,极大的提高程序员的开发效率。
您可以使用本主题中的过程和代码示例来创建完整的WMI客户端应用程序,该应用程序执行COM初始化,连接到远程计算机上的WMI,半同步获取数据,然后清理。
在windows和office激活异同这边文章里我们发现了windows和office的激活都依赖于一个叫WMI的东西。那么什么是WMI呢?、
专注是做事成功的关键,是健康心灵的特质。当你与所关注的事物融为一体时,就不会让自己萦绕于焦虑之中。专注与放松,是同一枚硬币的两面而已。一个人对一件事只有专注投入才会带来乐趣。一旦你专注投入进去,它立刻就变得活生生起来。
自从 PsExec 在内网中被严格监控后,越来越多的反病毒厂商将 PsExec 加入了黑名单,于是黑客们渐渐开始使用 WMI 进行横向移动。
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。(转载请指明出于breaksoftware的csdn博客)
近日,深信服发现一种具有高强度病毒对抗行为的新型的挖矿病毒,其病毒机制与常规挖矿相差较大,一旦感染上,清理难度极大。目前该病毒处于爆发初期,深信服已将此病毒命名为EnMiner挖矿病毒,并将持续追踪其发展状况并制定详细的应对措施。
横向的手法从简单的远程桌面协议(rdp)到漏洞利用,手法不断在改变,要对抗的设备产品也不断地变化,有个技术主管问我,红蓝的快乐在于什么?为什么我钟情在红蓝。我想中快乐就是来自于对抗吧。
WMI,全称Windows Management Instrumentation,是微软开发的一种用于管理Windows系统的工具。你可以把它想象成一个数据库工具,它存储了关于你的电脑的各种信息,比如系统、应用程序、网络和设备等。
“WMI是微软为基于Web的企业管理(WBEM)规范提供的一个实现版本,而WBEM则是一项行业计划,旨在开发用于访问企业环境中管理信息的标准技术。WMI使用公共信息模型(CIM)行业标准来表示系统、应用程序、网络、设备和其他托管组件。”
横向移动是从一个受感染的宿主移动到另一个宿主的过程。渗透测试人员和红队人员通常通过执行 powershell.exe 在远程主机上运行 base64 编码命令来完成此操作,这将返回一个信标。问题在于攻击性 PowerShell 不再是一个新概念,即使是中等成熟的商店也会检测到它并迅速关闭它,或者任何半体面的 AV 产品都会在运行恶意命令之前将其杀死。横向移动的困难在于具有良好的操作安全性 (OpSec),这意味着生成尽可能少的日志,或者生成看起来正常的日志,即隐藏在视线范围内以避免被发现。这篇博文的目的不仅是展示技术,但要显示幕后发生的事情以及与之相关的任何高级指标。我将在这篇文章中引用一些 Cobalt Strike 语法,因为它是我们主要用于 C2 的语法,但是 Cobalt Strike 的内置横向移动技术是相当嘈杂,对 OpSec 不太友好。另外,我知道不是每个人都有 Cobalt Strike,所以在大多数示例中也引用了 Meterpreter,但这些技术是通用的。
Windows 长久以来在 CIM 实施领域一直傲立桥头,而这一切都是从 WMI(Windows 管理基础结构)开始的。分布式管理任务组 (DMTF) 通用信息模型 (CIM) 是一种开放式标准,用于定义如何通过一组通用对象来表示接受管理的元素,并使用关联定义它们之间的关系。WMI 最初在 Windows NT 4.0 中引入并与操作系统捆绑安装,其中实施了早期版本的标准和架构。WMI 使用 DCOM 进行远程管理,因为当时尚未制订标准协议。在 Windows Server 2012 中,我们在标准和远程管
在一般用户权限下,通常是将要执行的后门程序或脚本路径填写到如下注册表的键值中HKCU\Software\Microsoft\Windows\CurrentVersion\Run,键名任意。普通权限即可运行
这是 WMI 攻击手法研究系列文章第四篇,将更多地关注信息收集和枚举。WMI 提供了大量的类,可以从中列举出很多东西。因此,让我们来深入了解,不要再浪费时间了。
更新后的Mykings会在被感染系统安装开源远程控制木马PcShare,对受害电脑进行远程控制:可进行操作文件、服务、注册表、进程、窗口等多种资源,并且可以下载和执行指定的程序。
WMI全称为Windows Management Instrumentation,即Windows管理规范,是Windows 2K/XP管理系统的核心。它属于管理数据和操作的基础模块,设计WMI的初衷是为了能达到一种通用性,通过WMI去操作系统、应用程序等去管理本地或者远程资源。它支持分布式组件对象模型(DCOM)和Windws远程管理(WinRM),用户可通过WMI服务访问、配置、管理和监视Windows所有资源的功能,对于其他的Win32操作系统来讲WMI是一个非常不错的插件,同时也是测试人员在攻防实战中一个很完美的“无文件攻击”入口途径。
描述:WMI的全名为”Windows Management Instrumentation - Windows管理规范“, 从Windows 98开始 Windows操作系统都支持WMI, 它是由一系列工具集组成的可以在本地或者远程管理计算机系统。
本文使用了《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》中代码做为基础。本节只是列出了WQL语句,具体使用参看前面的例子。
SharpStrike是一款基于C#开发的后渗透工具,该工具可以使用CIM或WMI来查询远程系统。除此之外,该工具还可以使用研究人员提供的凭证信息或使用当前的用户会话。
在《WMI技术介绍和应用——事件通知》一文中,我们提到了提供者(Provider)这个概念。我们还是要引入WMI的结构图(转载请指明出于breaksoftware的csdn博客)
领取专属 10元无门槛券
手把手带您无忧上云