Windows WMI详解,2024年最新大牛最佳总结

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

wmic.exe是一款主要用于与WMI交互的命令行管理工具,它不但可以管理本地计算机,还能够在权限充分的情况下管理域控制器中的其他计算机。WMIC是Windows自带的一个功能,计算机只要支持 WMI即可使用 WMIC。因功能强大以及在 Windows 中免安装WMIC在内网渗透中扮演着重要的角色。

3. WBEMTEST

WBEMTEST是Windows自带的一个与WMI基础结构交互的图形化工具,它支持任何Windows 系统,在“运行”窗口中输入 wbemtest 并单击“确认”按钮即可打开。在弹出的“连接”窗口中选择命名空间(WBEMTEST不会浏览命名空间,需要我们手动选择以连接到指定命名空间),默认选择root\cimv2。这样,通过WBEMTEST工具就可以进行枚举对象实例、查询、创建和修改WMI类与对象等操作。

4.WinRM

WinRM(Windows Remote Management,Windows 远程管理)是 Windows操作系统的一部分,我们可以以管理员的身份使用该命令。WinRM是WS管理协议的微软实现。WS管理协议是一种基于简单对象访问协议(SOAP)的标准防火墙友好型协议。开启WinRM服务后,占用的端口(默认情况下,WinRMHTTP服务占用5985,HTTPS占用5986)不会被防火墙拦截,因此我们在内网渗透中可以通过 WinRM 进行横向渗透。

5.Win explorer

Win explorer(Windows 资源查看器)是一款图形化査看 WMI信息的工具。它与 WBEM-TEST类似,不过比WBEMTEST功能更丰富,使用起来更方便。Winexplorer允许用户浏览完整的 WMI管理类集、对象及其属性,浏览远程计算机上的对象和设置,以及执行任何WQL 查询和查看结果集。

6. WSH

VBScript 和 JScript是微软提供的两种WSH(Windows Script Host)脚本开发语言。这两种脚本开发语言早已过时,但是它们在与WMI交互时仍有很强大的能力。目前市面上已经出现了基于这两种语言开发、使用WMI功能完成基本的命令与控制机制的后门程序目前只有 VBScript和JScript支持调用Event Consumer(事件消费者)接口ActiveScriptEventConsumer(事件消费者组件)来实现无文件写入。

WMI远程交互

当前,WMI支持两种远程交互协议:DCOM协议和WinRM协议。我们可以通过这两种协议对远程计算机进行对象查询、事件注册及WMI类方法的执行等操作。攻击者要有效利用这两种协议,需要具备一定的特权用户凭据,因此大多数安全厂家通常不会对这两和协议所传输的恶意内容及恶意流量进行审查。这就使得这两种协议对于攻击者有了可利用的空间。接下来分别介绍这两种协议。

DCOM

DCOM(分布式组件对象模型)是微软基于COM(组件对象型)推出的一系列概念和程序接口。通过该技术,在局域网、广域网甚至Internet 上不同计算机的对象之间能够过行通信,从而在位置上达到分布性,满足客户和应用的需求。
在了解 DCOM 之前,我们先简单介绍一下 COM 技术。COM 是微软的一套软件组件口标准,定义了组件和本地客户端之间互相作用的方式。它使组件和客户端不需要任何中介组件就能相互联系。而DCOM是COM的扩展,使用DCOM可以不受本地限制,通过远程过程调用(RPC)技术实现客户端程序实例化和访问远程计算机的COM对象。DCOM为分布在网络不同节点的两个COM组件提供了互相操作的基础结构。它增强了COM的分布处理性能,支持多种通信协议,加强了组件之间通信的安全保障。DCOM在组件中的作用为:作为PC间通信的PCI和ISA总线,负责各种组件之间的信息传递。如果没有DCOM,则达不到分布式计算环境的要求。

WinRM

WinRM(Windows 远程管理)目前已成为 Windows建议使用的远程管理协议。WinRM是基于 WS管理协议所构建的一种基于SOAP的设备管理协议,它允许使用SOAP通过HTTP(S)远程管理 Windows计算机,其后端利用了WMI,我们可以把它看作一个基于HTTP的 WMI API。另外,PowerShell Remoting 是基于 WinRM 规范的。当计算机启用了WinRM 以后,我们就可以像远程SSH会话一样,通过PowerShell 的方式对远程计算机进行管理。在默认情况下,WinRM会监听**5985/TCP(HTTP)、5986/TCP(HTTPS)**这两个端口中的任意一个,只要其中任意一个端口处于监听状态,都表示WinRM 已经配置。

可以通过在PowerShell中使用Test-WSMan 函数来验证目标是否已经配置了 WinRM如果 Test-WSMan 返回了如图所示的信息,则表示目标系统中的 WinRM服务处于监听状态。

WMI事件
WMI 永久事件订阅组成

(1)事件过滤器
事件过滤器(Event Filter)存储在一个ROOT\subscription:_EventFilter对象的实例里,其主要作用是使用WMI的查询语言来过滤审核特定的事件。一个事件过滤器接收一个WMI事件查询参数,同时可以对内部事件(Intrinsic Event)和外部事件(Extrinsic Event)进行事件查询。

1)内部事件。我们在创建、删除、修改WMI类或类实例以及命名空间时所产生的事件,都可以称为内部事件。每个内部事件类都代表了一种特定类型的更改,内部事件作为系统类存在于每个命名空间中。一般情况下,WMI为存储在WMI存储库中的对象创建内部事件,提供程序为动态类生成内部事件,如果没有可用的提供程序,WMI将会为动态类创建一个实例。以下为WMI用于报告内部事件的系统类。

_ClassCreationEvent   //创建类时通知消费者
_ClassDeletionEvent   //当类被删除时通知消费者
_ClassModificationEvent   //当类被修改时通知消费者
_InstanceCreationEvent    //创建类实例时通知消费者
_InstanceOperationEvent    //当任何实例事件发生时通知消费者
_InstanceDeletionEvent     //当实例被删除时通知消费者
_InstanceModificationEvent //当实例被修改时通知消费者
_NamespaceCreationEvent    //当创建命名空间时通知使用者
_NamespaceDeletionEvent   //当命名空间被删除时通知消费者
_NamespaceModificationEvent   //当命名空间被修改时通知消费者
_ConsumerFailureEvent      //当某个其他事件由于事件消费者的失败而被丢弃时通知消费者
_EventDroppedEvent      //当一些其他事件被丢弃而不是传递给请求事件的消费者时通知消费者
_EventQueueoverflowEvent    //当由于传递队列溢出而丢弃事件时通知使用者
_MethodInvocationEvent    //当方法调用事件时通知消费者

2)外部事件。外部事件是非系统类预定义事件,WMI使外部事件提供程序直接定义描述事件的事件类(例如当计算机切换到待机模式的事件为外部事件时)。外部事件能够及时响应触发,解决了内部事件时间间隔的问题。虽然外部事件通常不会包含太多的信息但其事件功能还是极其强大的。以下为常见的外部事件类。

ROOT\CIMV2:Win32_ComputerShutdownEvent ROOT\CIMV2:win32_IP4RouteTableEvent
ROOT\CIMV2:Win32_ProcessstartTrace ROOT\CIMV2:Win32_ModuleLoadTrace
ROOT\CIMV2:Win32_ThreadstartTrace ROOT\CIMV2:Win32_VolumeChangeEvent
ROOT\CIMV2:Msft_WmiProvider*ROOT\DEFAULT:RegistryKeyChangeEvent
ROOT\DEFAULT:RegistryValueChangeEvent

(2)事件消费者

事件消费者(EventConsumer)指的是当事件传递给EventConsumer类时执行的命令动作,也可以理解为我们希望在事件触发时发生的特定操作。事件消费者大体可分为临时事件消费者和永久事件消费者两类。

1)临时事件消费者。只在运行期间关心并处理特定的事件。临时事件消费者必须手动启动,并且不能在 WMI重新启动或操作系统重新启动后持续存在。临时事件消费者只能在其运行时处理事件。

2)永久事件消费者。类实例注册在WMI命名空间中,一直有效直至注销。(永久性的WMI事件是持久性驻留的,并且以SYSTEM权限运行,重启后仍然还在。)永久事件消费者一直运行到其注册被显式取消,并会在WM或系统重新启动时启动。永久事件消费者是系统上 WMI类、过滤器和 COM 对象的组合。

在事件消费者中,系统提供了如下WMI预安装的永久事件消费者的类,它们都属于ROOT\CTMV2以及ROOT\DEFAULT这两个命名空间。我们可以创建这些类的实例以提供永久事件消费者类,提供在过滤器中指定的事件触发时响应的逻辑消费者。例如,使用ActiveScriptEventConsumer 类执行 VBScript/JScript 脚本代码程序。

LogFileEventConsumer        //将事件数据写入指定的日志文件

ActiveScriptEventConsumer   //允许执行任意脚本(VBScript/JScript)

NTEventLogEventConsumer     //创建一个包含事件数据的日志入口点

SMTPEventConsumer           //将事件数据用邮件发送

CommandLineEventConsumer    //执行一个命令

从红队的角度来看,我们比较关注两个类:可以执行VBScript/JScript脚本代码程序的ActiveScriptEventConsumer 类,以及可以运行任意命令的 CommandLineEventConsumer 类。这两个类为我们提供了很大的灵活性,供我们执行任何的有效载荷(payload),完美实现无文件写入

(3)FilterToConsumerBinding
FilterToConsumerBinding(消费者绑定筛选器)将EventConsumer 实例与EventFilter 实例相关联,以明确什么事件由什么消费者处理和负责。如下代码通过创建FilterToConsumer-Binding类的实例来将EventFilter 和EventConsumer 这两个实例连接绑定在一起。

instance  of_FilterToConsumerBinding

{

Filter = $EventFilter;
Consumer = $Consumer;

};

创建永久事件订阅

永久事件订阅是存储在CIM 存储库中的一组静态 WMI类,我们可以通过 MOF 的方式分4个步骤来创建永久事件订阅。如下是具体步骤以及创建永久事件订阅模板的MOF示例

 //1.将上下文更改为Root\subscription,命名空间中的所有标准使用者类都在那里注册
#pragma namespace("\\\\.\\root\\subscription")

//2.创建_EventFilter类的实例并使用其查询属性来存储WQL事件查询
instance of_EventFilter as $EventFilter
{
    Name="Event Filter Instance Name";
    EventNamespace ="Root\\Cimv2";
    Query ="WQL Event query text";
    QueryLanguage ="WQL";
};
//3.创建_EventConsumer派生类的实例(ActiveScriptEventConsumer、SMTPEventConsumer等)
instance of_EventConsumer derived class as $Consumer
{
    Name ="Event Consumer Instance";
    //指定任何其他相关属性
};
//4.创建_FilterToConsumerBinding类的实例
instance of_FilterToConsumerBinding
{
    Filter = $EventFilter;
    Consumer = $Consumer;
};


WMI攻击

1.信息收集
在拿到内网某一台计算机的权限后,红队第一时间要做的就是收集信息。WMI中的各种类为内网信息收集提供了十分有利的条件,红队可以利用如下WMI中各种类的子集来对目标进行全方位的信息收集。

  • 主机/操作系统信息:Win32_OperatingSystem、Win32_ComputerSystem
  • 文件/目录列举:CIM_DataFile
  • 磁盘卷列举:Win32_Volume
  • 注册表操作:ZStdRegProv
  • 运行进程:Win32_Process
  • 服务列举:Win32_Service
  • 事件日志:Win32_NtLogEvent
  • 登录账户:Win32_LoggedOnUser/Win32_LogonSession
  • 共享:Win32_Share
  • 已安装补丁:Win32_QuickFixEngineering
  • 网络信息:Win32IP4_RouteTable
  • 用户账户:Win32_UserAccount
  • 用户组:Win32_Group

2.杀毒引擎检测
默认情况下,杀毒引擎会自动注册在 WM的 AntiVirusProduct类中的 root\SecurityCenter或 root\SecurityCenter2 命名空间中,可以执行 SELECT * FROM  AntiVirusProduct 查询语句来查询当前已安装的杀毒引擎。

3.代码执行及横向移动
在内网中,可以利用事件订阅和win32_process类的 Create 方法来实现代码执行及横向移动。

如何自学黑客&网络安全

黑客零基础入门学习路线&规划

初级黑客
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

如果你想要入坑黑客&网络安全,笔者给大家准备了一份:282G全网最全的网络安全资料包评论区留言即可领取!

7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并书写一个简单的博客系统;熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选);·了解Bootstrap的布局或者CSS。

8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,附上学习路线。
img

网络安全工程师企业级学习路线

img
如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会回复的

视频配套资料&国内外网安书籍、文档&工具

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

img
一些笔者自己买的、其他平台白嫖不到的视频教程。
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

40233c5198d3c161b37e8.webp?x-oss-process=image/format,png)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-fec3HQEQ-1713434735569)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值