首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WMI 攻击手法研究 – 探索命名空间、类和方法 (第二部分)

系统类的实例,要获取 root 命名空间下所有命名空间的列表,可使用以下命令查询同一个类: Get-WmiObject -Namespace root -Class __Namespace 输出的内容包含了许多信息...WMI 类表示系统中的特定项,它可以是从系统进程到硬件 (比如网卡)、服务等任何内容 类分为 3 个主要类型 (这是 CIM 标准的要求): Core classes (核心类):适用于所有管理领域,并提供很少的基本功能...让我们将注意力转向系统上运行的进程,Win32_Process 类为我们提供了系统上运行的进程列表: Get-WmiObject -Class Win32_Process 许多进程在系统上运行,这可能会使终端上显示的内容无休止地滚动...为了避免这种情况,我们可以使用 -Filter 参数来获取我们正在寻找的特定进程 (这里选择了 lsass.exe): Get-WmiObject -Class Win32_Process -Filter...如果你感到困惑,请向上滚动到我们列出类的部分,并观察 WMI 和 CIM cmdlet 输出之间的差异 因此,对于 Win32_Process 类,我们有 Create、Terminate、GetOwner

1.6K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WMI利用(横向移动)

    在横向移动中的固定过程中一定离不开“信息收集”,然后分析信息根据实际场景(工作组或者域)来进行横向移动,至于使用什么工具,为什么使用这个工具,笔者使用WMI的意见。...信息收集 注意:信息收集需要根据实际场景来进行收集,而不是说笔者罗列的就是必须要做,WMI可以做的信息收集操作远不至笔者罗列的如此,希望同学能够举一反三,自由搭配,参考微软官方文档,根据实际情况获取所需...注意:wmic命令需要本地管理员或域管理员才可以进行正常使用,普通权限用户若想要使用wmi,可以修改普通用户的ACL,不过修改用户的ACL也需要管理员权限,这里笔者单独罗列小结:普通用户使用wmic。...,无论您作何考虑,都需要利用到工具来进行操作,工具可以帮助您无需理解或多或少的知识,您只需读懂README即可,来帮助您获取shell,上传,下载,创建服务等操作,笔者会在此段中罗列部分WMI的工具以及部分命令用作横向移动...参考文章 内网横移之WinRM 内网渗透|基于WMI的横向移动 WmiScan 135端口智能密码/WMI密码爆破 WinRM的横向移动详解 WMI横向移动 不需要 Win32_Process – 扩展

    2.9K10

    PS常用命令之系统WMI查看和操作相关命令

    WMI有一组API我们不管使用VBScript、PowerShell脚本还是利用C#的来访问WMI的类库,都是因为WMI向外暴露的一组API。...人人都知道WMI能干很多事情,读取本机硬盘信息、读取远程计算机的用户信息、读取域用户信息等等。基本上你能想到的获取或者更改资源的操作它都能干。可谓吃得少干得多。它为什么这么能干呢?...允许 WMI 使用者通过标准接口而不是自定义控制面板应用程序来配置设备。 通知驱动程序定义事件的 WMI 使用者,无需使用者轮询或发送 Irp。...,而不是所有属性 # 使用属性参数检索的实例可用于执行其他CIM操作,例如“Set CimInstance”或“Invoke CimMethod”。..._Process # 获取本地计算机上的进程。

    1.4K10

    Windows WMI 详解之WMI ATTACK

    1.信息收集当我们在拿到内网某一台机器权限时,第一时间要做的就是信息收集,WMI中的各种类为我们在内网信息收集方面提供了十分有利的条件,作为红队的我们可以利用如下WMI中各种类的子集来对目标进行全方面信息收集...运行进程: Win32_Process。服务列举: Win32_Service。事件日志: Win32_NtLogEvent。...3.代码执行及横向移动在内网中,我们可以利用事件订阅以及win32_process 类的Create 方法来实现代码执行及横向移动,如下是代码执行及横向移动的两种方法。...(1)事件订阅我们可以使用 WMI 的功能来订阅事件并在该事件发生时执行任意代码,从而在系统上提供持久化,例如:利用时间Event Consumer(事件处理)接⼝ActiveScriptEventConsumer...(2)win32_process类的Create 方法win32_process类的Create方法是最经典的代码执行技术场景,通过运行进程win32_process类的Create方法来直接与本地或者远程进行直接执行交互

    25110

    WMI Series :管理对象的信息查询和方法访问

    ***************************************************** //获取Win32_LogicalDisk WMI对象可供访问的属性 public static...在这里我们通过列举 WMI 类 Win32_LogicalDisk 实例对象的数据,获取您的计算机上各种逻辑磁盘分区,包括软驱和光驱,并输出每个逻辑磁盘分区的一些信息。...我们将以启动一个进程为例来说明这个问题。 创建一个进程,需要调用 Win32_Process WMI对象的Create方法。...InvokeMethod()方法有两种原型,一种是输入参数为数组,一种是输入参数为ManagementBaseObject对象,为了简单起见,我们在这里使用的是ManagementBaseObject对象作为输入和输出参数...GetMethodParameters()通过在运行时来获取不同的方法输入和输出参数。 解决了这些关键的问题,下面我们就可以看看代码是怎么实现的。

    54210

    WMI使用学习笔记

    WMI介绍 WMI的全名为"Windows Management Instrumentation"。 从win98开始,Windows操作系统都支持WMI,WMI可以在本地或者远程管理计算机系统。...3.1 WMI连接 首先我们执行如下命令,将输出结果保存在靶机winserver2008对应的C:\Windows\Temp目录下: wmic /node:192.168.135.15 /user:administrator...: type \\192.168.135.15\c$\windows\temp\shell.txt 在获取cmd之后,其实是可以进行任意操作的,但是由于wmic的隐蔽性更好,所以在这里可以使用wmic...其可以在远程系统中执行命令并进行回显,获取远程主机的半交互式Shell。...总结 本文对WMI的基本用法做了一个归类,其中参考了众多师傅的文章,WMI的用法远不止于此,而且本文是未对存在杀软的环境进行分析,等以后有机会再去探讨吧。

    2.2K30

    Windows WMI 详解(一)

    4)通过点击“查询”模块,可执行WQL语句对所需要的内容进行查询,如图1-4所示。5)在此输入我们要执行的WQL语句。...SELECT * FROM WIN32_Process where Name Like "%cmd%" 6)上述的查询语句将会把当前正在运行的进程的可执行文件名称中包含“cmd”的结果返回到查询结果中。...tasklist //打开任务管理器8)除了WIN32_Process属性之外还有很多属性,如需查询更多的WMI属性,我们可以通过Powershell中的命令来进行查看。...4.WinrmWinrm(Windows remote shell)即windows远程管理,它是windows操作系统的一部分,我们可以以管理员的身份在windows中使用该命令。...WMI资源管理器允许用户浏览完整的WMI管理类集、对象及其属性,浏览远程计算机上的对象和设置,以及执行任何WQL查询和查看结果集6.WSHVBScript和JScript是Microsoft提供的两种WSH

    1.3K10

    WinRM的横向移动详解

    使用winrs.exe来执行远程命令利用 Winrs.exe 是一个内置的命令行工具,它允许远程命令的执行在WinRm的适当的有资格的用户。命令支持各种开关以及使用备用凭据进行身份验证的能力。...而目标与已控机器之间的通信时加密的,蓝队在进行目标机器检测朔源的情况下,是先检测到wmi在执行恶意命令,但是没有发现wmi的横向情况,会不会想到是我们是通过winrm去远程调用wmi?...然后在域环境下的话,我们还是使用kerberos吧 ? 我们可以利用一个非常著名的WMI类,Win32_Process,可通过利用来生成(远程)进程执行命令。.../Win32_Process wmi类来打开一个notepad.exe(相当于执行命令) ?...管理员不是唯一可以利用WinRM进行远程管理的用户。该成员远程管理用户本地/域组可以在WinRM的连接到WMI资源。确保仅允许授权人员使用组成员身份。

    2.7K10

    红队技巧-常规横向手法

    我们可以用sc对目标主机远程创建服务来进行横向渗透 使用sc命令远程Windows服务操作需先建立IPC$连接,否则在执行时会返回拒绝访问。 流程基本如下: 1....全称是Windows management instrumentation,它出现在所有的Windows操作系统中,并由一组强大的工具集合组成,用于管理本地或远程的Windows系统,攻击者使用wmi来进行攻击...3.WMI会建立一个共享文件夹,用于远程读取命令执行结果。 4.当用户输入命令时,WMI创建进程执行该命令,然后把结果输出到文件,这个文件位于之前创建的共享文件夹中。...5.通过FSO组件访问远程共享文件夹中的结果文件,将结果输出。 6.当结果读取完成时,调用WMI执行命令删除结果文件,最后当WMIEXEC退出时,删除文件共享。...我们可以利用一个非常著名的WMI类,Win32_Process,可通过利用来生成(远程)进程执行命令。

    2.1K20

    dotnet 通过 WMI 获取指定进程的输入命令行

    本文告诉大家如何使用 WMI 通过 Process 获取这个进程传入的命令行 使用下面代码,使用 Win32_Process 拿到所有的进程,通过 WHERE 判断当前的进程,然后拿到进程传入的命令 private...ToString(); } } 获取所有的进程的命令行参数 private static void Main() { foreach (var process in Process.GetProcesses...如使用的是 dotnet core 2.0 以下版本或需要通过 dotnet core 编译为 Native 就可以尝试不使用 WMI 在 dotnet 获取指定进程的输入命令行 https://stackoverflow.com.../a/2633674/6116637 dotnet 获取指定进程的输入命令行 更多 WMI 请看 WMI 博客 .NET/C# 获取一个正在运行的进程的命令行参数 - walterlv ----...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

    69440

    狩猎二进制重命名

    通过检查已执行进程的二进制程序属性、对比预期外进程的名称与路径的方式可以发现这种威胁。...在此示例中,利用实时“外部” WMI 事件触发器进行进程执行监控,从所有执行的进程中收集进程 ID。Win32_Process 的查询可以进一步提供有关进程的元数据,收集 PE 属性便于检测。...出于性能考虑,进程路径和原始名称都实时记录在告警中,并没有进行哈希计算。 ? 类似的也可以输出到日志中。值得注意的是,可以方便地修改示例程序中关于写入日志文件、事件记录函数与函数调用的部分。 ?...局限 使用WMI事件作为事件来源的一个局限是通常不能得到成熟的检测用例需要的所有数据。为了丰富数据,需要查询Win32_Process类。...获取进程元数据会存在一些延迟,因此非常短暂的进程(几分之一秒)可能会存在获取不到的情况。

    1.3K20

    Python wmi 模块的学习

    _Process Class # 显示Win32_Process类的.Create方法的接口  # 注:wmi模块会接受WMI方法的传入参数作为Python的关键字参数,并把传出参数作为一个元组进行返回...# 注:要对远程系统进行这样的操作,WMI脚本必须具有远程关机(RemoteShutdown)的权限,\ # 也就是说你必须在连接别名中进行指定。...WMI构造器允许你传入一个完整的别名,或者是指定你需要的那一部分。\ # 使用wmi.WMI.__init__的帮助文档可以找到更多相关内容。...# List registry keys # 列出注册表子键 # 注:本例及以下几例使用了Registry()这个方便的函数,此函数是早期加入到wmi包的,它等效于: r = wmi.WMI(namespace... in a thread # 在线程中使用WMI  # 注:WMI技术是基于COM的,要想在线程中使用它,你必须初始化COM的线程模式,就算你要访问一个隐式线程化的服务也是如此。

    2.8K21

    横向移动 - WMI 的使用

    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...---- wmiexec.vbs wmiexec.vbs 可以在远程系统中执行命令并进行回显,获得远程主机的半交互式shell: cscript.exe //nologo wmiexec.vbs /shell...这个时候远程目标域控机器上就会有一个 calc.exe 的进程: ?

    2.3K30

    规避检测(共五章):第五章

    因此,如果存在执行延迟,时间就会移动 在不同的过程中具有不同的速度。延迟后,我们应该同步进程并进行比较 两个进程中的当前时间。测量时间值的巨大差异表明进行了睡眠跳过。...WMI 使用 COM 接口及其方法。 标准 COM 函数用于处理查询。它们按下面描述的顺序调用,可以分为 6 个步骤。 1....使用 WMI 从跟踪中转义 WMI 提供了一种创建新进程和计划任务的方法。沙盒通常使用 CreateProcessInternalW 函数挂钩来跟踪子进程。...但是,当您使用 WMI 创建进程时,函数 CreateProcessInternalW 不会在父进程中调用。因此,沙盒可能不会跟踪使用 WMI 创建的进程,并且不会记录其行为。...2.1 使用 WMI 启动进程 可以使用带“Create” 方法的“Win32_Process” 类使用 WMI 创建新进程: CoInitializeEx(NULL, COINIT_MULTITHREADED

    34020

    技术分享-持久性-WMI事件订阅

    /Metasploit.mof 在这种情况下,payload 是通过 Metasploit “ web_delivery/ ”模块使用 regsvr32 方法远程获取的。...,其中包含用于通过 WMI 进行持久性的 PowerShell 脚本。...Rahmat Nurfauzi开发了一个 PowerShell 脚本 ( WMI-Persistence ),它默认使用regsvr32方法执行任意命令,以便从远程服务器运行任意脚本。 ....该脚本使用 WMI 存储库来存储恶意命令,该命令将执行任意脚本、可执行文件或任何其他带有参数的命令。以下函数将检索所有活动的 WMI 事件对象。...“ wmi_updater ” 模块能够从远程位置获取有效负载,而不是将其存储在 WMI 存储库中。它将注册为“ AutoUpdater ”,并且可以在启动时或一天中的特定时间设置触发器。

    2.8K10

    WMI技术介绍和应用——事件通知

    内在事件是在标准的WMI数据模型发生改变而产生的事件,这将是我们介绍的重点。外来事件,和内在事件相对,即非标准WMI数据数据模型发生改变而产生的事件。        ...永久事件使用者是一种更复杂的使用者——它是一个COM对象,用于持续接收WMI事件通知。它使用一些现有的对象和过滤器去获取WMI事件。我们可以设置一些WMI对象和过滤器去获取WMI事件。...永久事件使用者是保存在WMI仓库中(上图2层中WMI repository),并且是一个在WMI中注册的可执行文件,这样WMI便可以方便的寻找和加载它了。        ...该接口是客户进程发起异步调用的,它提供了一个CreateObjectStub方法创建一个桩,WMI将在异步执行过程中对该桩进行操作。...,其主要功能就是输出事件的内容。

    1.3K20

    WMI技术介绍和应用——InstanceMethod Provider

    前者用于实例方面的使用,比如获取对象、删除对象、查询信息等;后者用于方法方面的使用,比如我们之前说的Win32_Process的Create方法创建进程。        ...在WMI Provider中,执行方法的函数是ExecMethodAsync,我们对其进行修改 CComPtr pQualifierSet; hr...如果是,则它是静态方法,我们就不用做对象是否存在的检查;如果不是静态方法,我们就要对对象是否存在进行检查,如果对象不存在,我们则应该返回相应错误,否则继续执行。        ...我想模拟Win32_Process的Create方法启动一个进程。我尝试了CreateProcess、ShellExcute等方法,均不成功。...后来逆向了一下Win32_Process所以在的dll文件,发现其中启动进程是使用CreateProcessAsUser,且在此之前做了很多和用户有关的操作。

    89530
    领券