首页 > 系统相关 >Windows提权笔记_1

Windows提权笔记_1

时间:2024-02-18 22:46:15浏览次数:28  
标签:令牌 exe Windows 笔记 DLL 提权 权限

Windows用户权限简介

  • Windows系统是支持多用户的、多任务的
  • Windows中设置有用户组,同个用户组的用户共享相同的权限和安全控制
  • Windows下有6种用户权限:如图所示

image-20240203104122861

  • Windows设置有5个基本用户组
    • Administrators:管理员组,对机器具有完全控制权
    • Power User:高级用户组,在默认设置下,该组的权限比Administrators权限低。
    • Users:普通用户组,可以执行通过验证的应用程序,但是无法修改用户资料和操作系统的设置
    • Guests:来宾用户组,拥有与Users同样的权限,但是限制会多很多
    • Everyone:所有人组,计算机上的所有用户都属于这个组

Window单机提权

内核漏洞提权

CVE-2018-8120

大致的原理是存在空指针解引用的危机,使得可以以内核权限执行任意代码

EXP:https://github.com/rip1s/CVE-2018-8120?tab=readme-ov-file

受影响的版本:

OS Version
Windows 7 32bit Systems Service Pack 1
x64-based Systems Service Pack 1
Windows Server 2008 x64-based Systems Service Pack 2
Itanium-based Systems Service Pack 2
32-bit Systems Service Pack 2
Windows Server 2008 R2 x64-based Systems Service Pack 1
Itanium-based Systems Service Pack1

此处以win7 x64测试:

image-20240203110326350

image-20240203110342746

CVE-2019-1458

工具:https://github.com/rip1s/CVE-2019-1458?tab=readme-ov-file

原理不细纠了,主要是利用版本

image-20240203112217077

win7通杀

image-20240203111030100

CVE-2015-1701

EXP:https://github.com/hfiref0x/CVE-2015-1701

利用版本:

  • Windows Server 2012 R2

  • Windows Server 2012

  • Windows Server 2003

  • Windows Server 2008 R2

  • Windows 7

  • Windows 8

拿win7开刀下,有几率崩溃

image-20240203112632202

利用Windows错误配置提权

服务错配提权

system服务的可执行文件路径存在空格且未加引号导致提权

  • 原理:

​ 类似于这种,如果存在空格且没有引号的话,windows在路径解析时会优先考虑C:\Program.exe文件,如果能植入恶意的Program.exe文件,那么在服务重启时就可以拿到系统权限

image-20240203132024682

  • 收集每个服务的可执行文件路径
wmic service get name,pathname
  • 利用该错配原理的msf提权操作
# 已经连上了shell, 但是需要进行提权
// 调用相应的提权模块 --> 自动寻找服务
use exploit/windows/local/trusted_service_path		// 低版本下
use exploit/windows/local/unquoted_service_path		// 高版本下

// 配置
set EXITFFUNC thread
set session SESSION-ID  	// 需要提权的session

// 提权
exploit
  • 测试:前提是得有洞才能提权

image-20240215220641100

计划任务错配提权

计划任务是Windows系统中用于在指定时间或时间间隔内运行指定的计算机程序、脚本或者系统命令。

如果某项计划任务由SYSTEM权限运行,但对应的执行文件、脚本存放在一个低权限用户可操作的目录中,则可能导致提权漏洞。

基础知识:

  • 命令行布置计划任务
# windows8之前使用at关键字
# at time program
at 10:01 notepad.exe

# windows8以及之后的windows版本中使用
	# /Create 表示创建计划任务的操作
	# /TN 表示计划任务的名称
	# /SC 表示计划任务的频率
	# /ST 表示具体事件
	# /TR 表示计划任务的动作(要执行的程序)
schtasks /Create /TN test /SC DAILY /ST 10:01 /TR notepad.exe
  • 查看计划目录,在C:\Windows\System32\Tasks目录下,以xml的形式保存

image-20240216150704350

  • 权限配置项:

对于RunLevel标签而言,有两种值:LeastPrivilege和HighestAvailable

image-20240216152133534

管理员下启动cmd,设置计划任务以最高权限运行

# 加上 /RL HIGHEST
schtasks /Create /TN test /SC DAILY /ST 10:05 /TR geek.exe /RL HIGHEST

利用:

使用Windows自带的工具icacls来得知权限

icacls exe_file

例如:F表示具有完全控制的权限

image-20240216160935053

  • 利用条件:计划任务设置高权限运行一个低权限目录内的可执行文件,我们可以劫持原本的文件,使得计划任务运行恶意文件进行提权

AlwaysInstallElevated提权

  • 原理:

msi(Microsoft Installer)为Windows中的安装包程序,通常会作为程序的安装软件。

如果系统开启AlwaysInstallElevated配置(MSI程序相关的组策略配置,开启后允许任意用户以SYSTEM权限允许MSI程序),则可以利用该配置进行提权

  • 利用:

首先得查看是否有AlwaysInstallElevated相关配置

可以使用后渗透工具PowerUpSharpUp进行探测

SharpUp.exe audit AlwaysInstallElevated

DLL劫持

大致类型有:

  • DLL文件替换劫持

  • DLL重定向劫持

  • DLL侧加载

知识补充:

关于windows中的System32和SysWOW64目录:(首先数字不代表其存储的程序位数)

  1. System32:System32文件夹是位于Windows操作系统的主文件夹(通常是C:\Windows\System32)。它包含了操作系统的核心系统文件和可执行文件,这些文件是用于支持和维护操作系统的功能和服务的。在32位版本的Windows操作系统上,System32文件夹中存放的是32位的系统文件,在64位版本的操作系统上,System32文件夹存放的是64位的系统文件。
  2. SysWOW64:SysWOW64文件夹也位于Windows操作系统的主文件夹(通常是C:\Windows\SysWOW64)。它是Windows 64位版本中的一个特殊文件夹,用于兼容32位应用程序。SysWOW64是一个缩写,代表"Windows 32-bit on Windows 64-bit"。在64位版本的Windows操作系统上,SysWOW64文件夹中存放的是32位的系统文件,用于支持运行在64位操作系统上的32位应用程序。
  3. 在64位操作系统上,System32文件夹中的文件是64位的,而SysWOW64文件夹中的文件是32位的。

重点看下DLL重定向劫持:

DLL Hell(DLL地狱):早期Windows缺乏一种很有效的DLL版本控制机制,系统上安装的多个应用程序依赖于动态链接库 (DLL) 文件的特定版本,但由于存在同一 DLL 的多个版本,所需的版本被覆盖或出现冲突

  • DLL重定向设置:

Windows上DLL重定向是默认关闭的

需要在注册表如下路径添加DevOverrideEnable,设置为1,表示开启

HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options

当开启该选项后,比如要调用系统DLL文件(test.dll),会在C:\Windows\Temp\test.exe.local查找是否有test.dll文件,如果没有则会继续到C:\Windows\SysWOW64下进行查找

访问令牌提权

  • 关于访问令牌

访问令牌是描述进程或线程的安全上下文对象,令牌信息是关于用户的标识和权限条目

  • 使用msf进行访问令牌提权

在msf上线后,进行如下操作进行访问令牌提权

# 在msf会话中执行如下命令
use incognito
# 列出当前会话权限所能模拟的访问令牌
list_tokens -u
# impersonate_token加上令牌名
impersonate_token ""
# 查看当前权限
getuid
  • 使用incognito进行访问令牌提权

msf对其封装,但其可作为独立程序进行使用

# 列出当前会话中所有可模拟的令牌
incognito.exe list_tokens -u

# 指定某令牌去启动cmd.exe
incognito.exe execute -c "token_name" cmd.exe

# 利用IPC$通道操作远程主机的访问令牌
# 需要知道超级管理员的密码
incogito.exe -h ip -u Administrator -p Password@123 list_tokens -u

获取TrustedInstaller权限

  • 关于TrustedInstaller权限

    在windows中存在部分非常敏感的系统文件,例如C:\Windows\servicing,如下图所示,即使是SYSTEM权限,也没办法完全控制。TrustedInstaller的权限的意义是用来防止程序及用户无意或恶意使用SYSTEM权限破坏系统重要文件

image-20240218202557228

image-20240218202712293

  • 获取权限实操

大致思路是模拟TrustedInstaller.exe的访问令牌创建子进程,这样子进程就有了TrustedInstaller权限

安装NTObjectManager服务(需要安装到powershell的module路径下)

Save-Module -Name NtObjectManager -Path "C:\Program Files\WindowsPowerShell\Modules\""

导入模块

Set-ExecutionPolicy Unrestricted	# 修改策略, 允许导入
Import-Module NtObjectManager		

启动TrustedInstaller服务

sc.exe start TrustedInstaller

在windows/system32路径下修改调试权限

Set-NtTokenPrivilege SeDebugPrivilege

Get-NtProcess获取进程信息

$p=Get-NtProcess -Name TrustedInstaller.exe

以其为父进程信息,启动其子进程

$proc=New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $p

然后查看用户组

whoami /groups /fo list

image-20240218214500800

标签:令牌,exe,Windows,笔记,DLL,提权,权限
From: https://www.cnblogs.com/icfh/p/18020082

相关文章

  • 2024-2-18 数论学习笔记
    zak讲数论专题,好难,听不懂,整理一下。借鉴了zak的课件。还没写完呐,还会更新的。目录一、线性筛二、Dirichlet前缀和三、整除分块四、莫比乌斯函数例一一、线性筛筛出\(n\)以内的所有质数。\(n≤10^8\)。直接埃氏筛是\(O(n\ln\lnn)\)的,但是一个合数会被筛多次,......
  • 学习笔记#5:单调队列优化&斜率优化
    学习笔记#5:单调队列优化&斜率优化单调队列首先要搞懂什么是单调队列。单调队列是一种求区间最值问题的一种方式,与其他RSQ问题的求解方法不同的是,它更善于解决滑动窗口式的RSQ问题,一般来说,假设我们要维护最大值,则需维护一个单调递减的队列,这样队首最大,每次取队首即可。而当......
  • 第一章 系统方法 笔记
    首先,系统方法是一种研究复杂系统的整体性、互动性和演化性的方法论,它强调从整体上把握事物的发展规律,而非仅仅关注局部或个别现象。这一观点挑战了我过去分析问题时的简化思维,使我意识到需要更加注重事物之间的相互关联和影响。接着,书中详细阐述了系统方法的基本原则和步骤。这些......
  • 第四章 熟练使用有棱有角的内存 笔记
    在第四章中,我深入理解了内存的工作原理和优化使用的技巧。内存作为计算机的临时存储设备,对程序运行的效率和稳定性具有重要影响。书中详细解释了内存的管理机制,包括操作系统如何分配和回收内存空间,以及如何防止内存泄漏和溢出等问题。这些内容让我意识到,合理使用内存是提高程序性......
  • CMU 15-445(Fall 2023) Project3 Query Execution个人笔记
    Task#1-AccessMethodExecutorsSeqScan算子实现逻辑使用exec_ctx属性获取对应的TableInfo调用MakeIterator方法,获取表的迭代器在Next方法中,每次利用迭代器获得一个满足条件的元组(检查元组是否被删除、元组是否满足filter)Insert算子实现逻辑在Next方法中调用child......
  • 书生开源大模型训练营-第5讲-笔记
    1、大模型部署的背景a、大模型部署的挑战对设备的要求:存储大推理:生成token的速度、动态shape、内存管理服务:高并发下的吞吐量、单用户的响应时间b、技术方案:模型并行、量化Transfomer优化、推理优化2、LMDeploy介绍a、是在N卡上的全流程方案,包括轻量化、推理和服务,当......
  • 学习笔记440—Cloud Drive怎么下载
    CloudDrive功能强大且高效成熟的云盘挂载工具,可以将各类网盘中的文件输出到电脑的本地磁盘中,用户可以在线进行管理,非常的方便,这里小编就给大家详细介绍一下CloudDrive的下载安装教程,有需要的小伙伴快来和小编一起看一看吧。CloudDrive的下载安装教程:1、在本站下载相关的软件......
  • 学习笔记#4:树状数组和 LIS
    学习笔记#4:树状数组和LIS前言:树状数组是和线段树类似的数据结构,更确切的说,树状数组能解决的问题,线段树都能解决,而线段树还能解决一些树状数组所不能解决的问题。因此线段树的应用范围比树状数组更广泛。但是,树状数组的常数更小,在同样的\(\text{O}(n\logn)\)复杂度下,树状数......
  • Windows如何在一台电脑访问其他电脑里的虚拟机
    1. 前提要求首先两台电脑处于同一局域网;使用xshell或ssh工具连接另一台电脑里的虚拟机;两台电脑中的虚拟机互相访问。2. vmware设置(1) 右键虚拟机--设置--网络适配器--选择NAT模式(2) 编辑--虚拟机网络编辑器--NAT模式--更改设置--NAT设置 (3) 添......
  • 力学笔记
    \[\frac{1}{v}\cdot\Deltax=\Deltat\notag\]二项式展开\[(x+\Deltax)^n=x^n+nx^{n-1}\Deltax+\frac{n(n-1)}{2}x^{n-2}(\Deltax)^2+...+(\Deltax)^n\notag\]指数函数\[(x^n)'=n\cdotx^{n-1}\\\intx^ndx=\frac{1}{n+1}x^{n+1}+C\notag\]相对运动......