[权限提升] Windows 提权 维持 — 系统错误配置提权 - 注册表权限配置错误提权

关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客

0x01:注册表权限配置错误提权原理

通常 Windows 中的服务都是以 System 权限运行的,而 Windows 的服务程序的启动路径又是存放在注册表中的,若注册表配置不当,导致低权限用户可以更改注册表项时,就可能造成提权漏洞。

攻击者可以通过修改注册表中服务的 imagepath 值,将其替换为恶意程序路径,当服务重新启动时即会以 System 权限执行恶意程序,导致提权:

0x02:注册表权限配置错误提权环境配置

复现环境

  • 靶机 Windows 7:IP 192.168.0.132

  • 攻击机 Kali Linux:IP 192.168.0.100,安装了 Cobalt Strike 服务端

  • 攻击机 Windows 11:IP 192.168.0.1,安装了 Cobalt Strike 客户端,还配备了 C++ 环境

0x0201:创建 Windows 服务程序

以 Administrator 系统最高管理员身份登录 Windows 7 靶机中,打开 CMD 窗口,输入下面的命令创建一个 WIndows 服务程序:

 # 随便创建的,testServer.exe 其实不存在
 sc create testService binpath= "C:\testServer.exe" 

0x0202:查询系统服务信息 - 通过注册表

然后我们来注册表中查询一下我们上面创建的这个服务的信息。按住 Win + R,在打开的 “运行” 窗口中输入 regedit 来打开注册表:

定位注册表中的下面这个路径,这个路径就是存放 Windows 服务信息的:

 HKEY_LOCAL_MACHINE\system\ControlSet001\services

在上面这个路径中找到我们刚刚通过命令行创建的 testService 服务:

如上,成功找到,说明我们服务创建的没问题。

0x0203:授予低权限用户注册表编辑权限

1. 授予低权限用户注册表编辑权限 — 图形化方式

右击上面找到的 testService 服务的文件夹,然后按照下面的图片,给 Users 普通用户组授予对 testService 服务的完全控制权限:

2. 授予低权限用户注册表编辑权限 — 命令行方式

工具获取:subinacl.zip

以命令行方式授权需要用到 subinacl 工具,将工具上传到靶机,并在工具的同级目录下打开 CMD 窗口输入以下命令即可授予 Users 用户组对 testService 服务的完全控制权:

 subinacl /keyreg "HKEY_LOCAL_MACHINE\system\ControlSet001\services\testService" /grant=Users=f

执行完上面的命令后,你要是去查看注册表,会发现 testService 服务的权限中,Users 用户组被授予了 “完全控制权限”,证明我们上面的命令有效:

0x03:注册表权限配置错误提权漏洞复现

0x0301:拿到靶机低权限用户 Shell

首先让靶机中的一个低权限用户上线 CS,这里笔者是通过 CS 制作 Windows 后门程序,让靶机中的 test01 用户上线了,该用户属于 Users 用户组,是一个普通权限的用户:

如上,拿到靶机中的一个低权限用户 Shell,下面我们开始通过 “注册表权限配置错误漏洞” 进行提权。

0x0302:获取靶机中所有的服务

输入下面的命令,获取靶机中的所有服务信息:

 sc query type= all state= all |findstr /i service_name.* |more

0x0303:使用 subinacl 查询服务权限

工具获取:subinacl.zip

将 subinacl 上传到靶机上,然后我们开始一个一个的查询服务的权限,笔者以最后两个服务为例(WwanSvc 与 testService):

 # 查询 WwanSvc 服务的权限
 subinacl /keyreg "HKEY_LOCAL_MACHINE\system\ControlSet001\services\WwanSvc" /display

然后查询 testService 服务信息:

 subinacl /keyreg "HKEY_LOCAL_MACHINE\system\ControlSet001\services\testService" /display

如上,我们查询到针对 testService 服务,本地的 Users 用户组,具有完全控制权限,恰巧,我们拿到的用户就是 Users 用户组中的成员。

0x0304:查询注册表中服务的 imagepath 值

输入下面的命令,查找注册表中 testService 服务的 imagepath 值,即该服务的启动程序的路径:

 reg query HKEY_LOCAL_MACHINE\system\ControlSet001\services\testService /v imagepath

0x0305:替换注册表中服务的 imagepath 值

输入下面的命令,将注册表中 testService 服务的启动程序路径替换为我们的恶意程序(通过 CS 生成的 Windows 反弹 Shell 的木马程序)路径:

 reg add "HKEY_LOCAL_MACHINE\system\ControlSet001\services\testService" /t REG_EXPAND_SZ /v ImagePath /d "C:\Users\test01\Desktop\artifact.exe" /f

输入下面的命令查询一下 testService 服务的 imagepath 信息是否被修改:

reg query HKEY_LOCAL_MACHINE\system\ControlSet001\services\testService /v imagepath

如上,可以看到,注册表中的 testService 服务的启动程序路径已经被我们修改了,接下来,我们只要等待管理员启动服务即可提权(要是设置服务为开机自启,就只需要等待电脑重启就能拿到高权限了)。

0x0306:等待管理员启动服务 & 提权

我们以 Administrator 登录 Windows 7 靶机中,输入下面的命令,手动以管理员权限启动 testService 服务,同时留意 CS 中的信息:

sc start testService

如上,当管理员运行 testService 服务时,靶机成功以 SYSTEM 权限上线 CS,提权成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/964632.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

牛客周赛 Round 79

题目目录 A 小红的合数寻找解题思路参考代码 B 小红的小球染色解题思路参考代码 C 小红的二叉树解题思路参考代码 D 小红的“质数”寻找解题思路参考代码 E 小红的好排列解题思路参考代码 F 小红的小球染色期望解题思路参考代码 A 小红的合数寻找 \hspace{15pt} 小红拿到了一个…

Zookeeper入门部署(单点与集群)

本篇文章基于docker方式部署zookeeper集群,请先安装docker 目录 1. docker初期准备 2.启动zookeeper 2.1 单点部署 2.2 集群部署 3. Linux脚本实现快速切换启动关闭 1. docker初期准备 拉取zookeeper镜像 docker pull zookeeper:3.5.6 如果拉取时间过长&#xf…

【MySQL】MySQL经典面试题深度解析

文章目录 一、MySQL与C的深度结合1.1 为什么C项目需要MySQL?1.2 典型应用场景 二、基础概念面试题精讲2.1 存储引擎对比2.2 索引原理 三、C专项面试题解析3.1 连接池实现3.2 预处理语句3.3 批量操作优化 四、高级应用面试题剖析4.1 事务隔离级别4.2 锁机制详解4.3 查…

w190工作流程管理系统设计与实现

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…

网络安全学习 day5

状态检测和会话技术 状态检测以 “ 数据流量 ” 为单位来对报文进行检测和转发。即对一条流量的第一个报文进行包过滤规 则检查,并将判断结果作为这条流量的 “ 状态 ” 记录下来 。对于该条流量的后续报文,直接根据这个 “ 状态 ”来判断是否转发还是…

4 前端前置技术(上):AJAX技术、Axios技术(前端发送请求)

文章目录 前言一、Ajax技术(从服务端获取数据,发送各种请求)0 接口文档管理:使用apipost等接口测试软件创建接口便于前端后端分离测试1 基本概念2 原生Ajax使用示例(几年前的早期用法) 二、 Axios技术(对原…

Node.js与嵌入式开发:打破界限的创新结合

文章目录 一、Node.js的本质与核心优势1.1 什么是Node.js?1.2 嵌入式开发的范式转变二、Node.js与嵌入式结合的四大技术路径2.1 硬件交互层2.2 物联网协议栈2.3 边缘计算架构2.4 轻量化运行时方案三、实战案例:智能农业监测系统3.1 硬件配置3.2 软件架构3.3 核心代码片段四、…

51c视觉~CV~合集10

我自己的原文哦~ https://blog.51cto.com/whaosoft/13241694 一、CV创建自定义图像滤镜 热图滤镜 这组滤镜提供了各种不同的艺术和风格化光学图像捕捉方法。例如,热滤镜会将图像转换为“热图”,而卡通滤镜则提供生动的图像,这些图像看起来…

OPENPPP2 —— VMUX_NET 多路复用原理剖析

在阅读本文之前,必先了解以下几个概念: 1、MUX(Multiplexer):合并多个信号到单一通道。 2、DEMUX(Demultiplexer):从单一通道分离出多个信号。 3、单一通道,可汇聚多个…

核心集:DeepCore: A Comprehensive Library for CoresetSelection in Deep Learning

目录 一、TL;DR 二、为什么研究核心集? 三、问题定义和如何做 3.1 问题定义 3.2 业界方法 3.2.1 基于几何的方法 3.2.2 基于不确定性的方法 3.2.3 基于误差/损失的方法 3.2.5 GraNd 和 EL2N 分数 3.2.6 重要性采样 3.2.7 基于决策边界的办法 …

MyBatis-Plus笔记-快速入门

大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…

Redis - String相关命令

目录 setgetmsetmgetsetnx、setex、psetexincr、incrby、decr、decrby、incrbyfloatappendgetrangesetrangestrlen字符串类型编码方式总结 Redis - String Redis存储的字符串,是直接按二进制方式存储,不会做任何编码转换,存的是什么&#xff…

优选算法合集————双指针(专题二)

好久都没给大家带来算法专题啦,今天给大家带来滑动窗口专题的训练 题目一:长度最小的子数组 题目描述: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …

本地Ollama部署DeepSeek R1模型接入Word

目录 1.本地部署DeepSeek-R1模型 2.接入Word 3.效果演示 4.问题反馈 上一篇文章办公新利器:DeepSeekWord,让你的工作更高效-CSDN博客https://blog.csdn.net/qq_63708623/article/details/145418457?spm1001.2014.3001.5501https://blog.csdn.net/qq…

2. K8S集群架构及主机准备

本次集群部署主机分布K8S集群主机配置主机静态IP设置主机名解析ipvs管理工具安装及模块加载主机系统升级主机间免密登录配置主机基础配置完后最好做个快照备份 2台负载均衡器 Haproxy高可用keepalived3台k8s master节点5台工作节点(至少2及以上)本次集群部署主机分布 K8S集群主…

文字加持:让 OpenCV 轻松在图像中插上文字

前言 在很多图像处理任务中,我们不仅需要提取图像信息,还希望在图像上加上一些文字,或是标注,或是动态展示。正如在一幅画上添加一个标语,或者在一个视频上加上动态字幕,cv2.putText 就是这个“文字魔术师”,它能让我们的图像从“沉默寡言”变得生动有趣。 今天,我们…

wsl+phpstorm+xdebug|windows子系统配置phpstorm开发调试|断点调试

安装wsl 安装apache php 安装xdebug扩展,并配置 这里是通过宝塔9.4面板安装的xdebug3.0 [xdebug] xdebug.modedebug xdebug.start_with_requesttrue xdebug.discover_client_hosttrue xdebug.client_host127.0.0.1配置PHPSTORM 注意:新建服务器一定要…

5 前端系统开发:Vue2、Vue3框架(上):Vue入门式开发和Ajax技术

文章目录 前言一、Vue框架(简化DOM操作的一个前端框架):基础入门1 Vue基本概念2 快速入门:创建Vue实例,初始化渲染(1)创建一个入门Vue实例(2)插值表达式:{{表…

语言月赛 202412【顽强拼搏奖的四种发法】题解(AC)

》》》点我查看「视频」详解》》》 [语言月赛 202412] 顽强拼搏奖的四种发法 题目描述 在 XCPC 竞赛里,会有若干道题目,一支队伍可以对每道题目提交若干次。我们称一支队伍对一道题目的一次提交是有效的,当且仅当: 在本次提交…