[权限提升] 操作系统权限介绍

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

权限提升简称提权,顾名思义就是提升自己在目标系统中的权限。现在的操作系统都是多用户操作系统,用户之间都有权限控制,我们通过 Web 漏洞拿到的 Web 进程的权限一般都是由一个权限很低的账号启动的,因此通过 WebShell 进行一些操作就会受到限制,为了减少这些限制,我们就需要将我们的权限提升到 “管理”。

既然是 “提权”,那么我们首先就得先来了解一下各个系统的权限组成,知道我们当前的权限,和我们目标达到的权限。

0x01:权限介绍 — Windows 篇

先说目标,Windows 提权一般是提权到 Administrator 权限或者 System 权限(这二者属于平级关系,拿到其一就等于拿到另外一个)。

Windows 系统中的用户账号一般分为以下几个,这几个里面不包含 System (服务最高管理员)权限:

  • 本地普通用户 => 加入了 Users 组的用户

  • 本地一般管理员 => 加入了 Administrators 组的用户,伪管理,需要绕 UAC 认证

  • 本地最高管理员 => Administrators 组的 Administrator 用户(系统默认创建的),它不用经过 UAC 认证即可执行敏感操作

  • 域内普通用户

  • 域内管理员

0x0101:Windows 用户账号 — 本地普通用户

本地普通用户,就是在 Windows 电脑中本地新建的普通用户。没有管理员权限,一般很多操作都执行不了,需要管理员认证后才可以执行。在 Windows 用户组中,本地普通用户归属于 Users 用户组。

接下来,我们以一台 WindowsServer 2008 虚拟机为例,看一下如何查看、创建本地普通用户,以及该用户的一些权限限制。

1. 创建本地普通用户

首先,以管理员身份(Administrator)登录 Windows Server 机器。你可以通过调用 CMD 窗口然后输入 whoami 来确认自己的身份:

然后继续在 CMD 窗口中输入下面的命令,来创建本地普通用户:

 net user test01 admin@123 /add
 ​
 # test01 => 创建的普通用户的用户名
 # admin@123 => test01 用户的登录密码

2. 查看本地普通用户

按照下图依次点击 “开始” => “管理工具” => “计算机管理”,打开 “计算机管理” 窗口:

然后点击 “本地用户和组” => “用户”,就可以看到我们刚刚创建的 test01 账户:

双击 “test01” 账户,查看 “隶属于” 信息,可以看到,该用户属于 Users 用户组,该组中的成员就拥有普通用户权限(系统中最安全的权限,不允许修改操作系统设置与用户资料):

3. 本地普通用户的权限介绍

现在我们切换登录的用户为 test01(test01 : admin@123),然后同样打开 CMD 窗口,输入下面的命令:

 whoami  # 查看当前登录的用户
 net user test02 admin@123 /add # 尝试以 Users 权限添加用户

如上,我们无法以本地普通用户的权限执行一些敏感操作。

当我们想执行一些敏感操作,比如关闭防火墙时,它还会弹出以下提示,要我们输入管理员密码才允许我们操作:

0x0102:Windows 用户账号 — 本地一般管理员

继续以这台 Windows Server 2008 R2 为例,我们切换用户,以管理员(Administrator)身份登录。然后打开 “计算机管理” 窗口(打开方式在上面这里就不写了)。

这里所谓的 “本地一般管理员” 就是指加入了 Administrators 用户组,但账户名称不是 Administrators 的账户。

1. 查看本地一般管理员

我们定位到 “计算机管理” 窗口中的 “本地用户和组” 中的 “Administrators” 组,双击打开可以查看组中的用户:

如上,当前组中有三个成员,一个叫 Administrator 是计算机默认创建的 “本地最高管理员”,然后这个 hacker 账户是我们初始化计算机(你刚刚安装操作系统)时添加进去的普通管理员账户,至于那个贼拉长的,笔者怀疑是加入了域后自动创建的,这个是后话,这里不管他。

2. 添加本地一般管理员

记住了哈,这里我们是以 Administrator 账户登录的,有足够的权限进行操作,你要是拿普通用户权限,这里你是没法操作的。

我们点击选中 “Administrators” 用户组,然后输入 "test01"(我们上一节中创建的普通用户),然后点击 ”检查名称“ 后选择 ”确定“ 就可以完成添加:

再次查看 Administrators 用户组中的用户,可以看到 test01 也在其中,那么至此,添加本地一般管理员就完成了:

3. 本地一般管理员权限介绍

那么我们现在再使用 test01 这个账号登录机器并执行下面几条命令:

 whoami  # 确认一下我们当前登录的账号
 net user test02 admin@123 /add # 尝试添加账号

可以看到,哎嘿,我们还是不能添加用户。是我们的权限配置没生效吗,其实不是。我们得以 “管理员” 权限打开 CMD 窗口:

这里有个注意点,如果它弹出了需要输入管理员账号的弹窗,你输入 test01 这个账户的用户和密码也可以完成登录,因为我们前面已经将 test01 归属到 Administrators 用户组了。

如下,可以看到,在以管理员身份运行的 CMD 窗口就可以随意添加用户了:

事先说明,我们提权的目标是本地最高管理员,可不是这个普通管理员哦。那么这两个管理员有啥差别呢。

相信使用 Windows 的小伙伴以管理员身份运行某些东西的时候经常会遇到下面这个窗口:

这个就是 UAC 认证,需要用户点击 “是” 即可(有的需要你输入管理员账号密码)。当用户点击 “是” 之后,就可以以管理员身份运行某个软件。

那么为啥要做这个呢?作为一个成熟的 Hacker 你应该知道的,我们拿到的 Shell 一般都是命令行界面,命令行界面是没办法点击 “是” 这个选项的。所以,我们后续对于 Windows 提权还需要绕过这个 UAC 认证。

0x0103:Windows 用户账号 — 本地最高管理员

这个本地最高管理员就是 Administrators 用户组中的 Administrator 用户,该用户在一些 Windows 版本中是默认禁用的:

  • windows server => 默认开启 administrator

  • windows 家庭版、旗舰版 => 默认不开启 administrator

  • windows 企业版、专业版 => 默认开启 administrator

我们可以通过输入下面这行命令,来查看本机的某个账户的状态:

 语法: net user <用户名>
 示例: net user administrator  # 查看 administrator 账户状态

然后由于某些机器默认是不开启 Administrator 账户的,下面这两条命令可以帮他开启和关闭:

 net user administrator /active:yes  # 开启 administrator
 net user administrator /active:no   # 禁用 administrator

1. 开启本地最高管理员账户

我们以一台 Windows 7 系统为例,默认 Administrator 账户是禁用的。输入下面的命令可以查看账户状态(CMD 窗口要以管理员权限打开):

 net user administrator 

然后我们输入下面的命令,开启本地的 Administrator 账户:

 net user administrator /active:yes

切换完成后,就可以注销当前用户去切换成 administrator 账户了,可以看到,当我们启用 Administrator 账户后,登录界面就会直接显示该账户的信息,并且登录是不要密码的(我们刚刚启用的时候也没有设置密码):

2. 本地最高管理员权限介绍

我们选择登录 Administrator 账户,然后直接搜索并打开 CMD 窗口,输入下面的命令:

 net user test01 admin@123 /add

如上,直接就成功了。我们并不需要右击 CMD 然后以管理员身份打开,因为我们当前就是系统最高管理员,不管做啥都是默认以管理员身份运行的,而且也不会有 UAC 认证,就是弹那个小窗口让你点击。我们 Windows 提权,提权到这个权限就认为这个机器你已经完全控制了。

0x0104:Windows 域账号 — 域内普通用户

当你的 Windows 机器加入了域后,你的电脑就可以通过域用户进行登录。域内又分为普通域用户与域管理员两种用户权限。这部分主要是让你看一下域用户张啥样的。

在前面介绍普通账户时,我们 whoami 的结果是 机器名\用户名 的形式,那么我们的域账户就是 域名\用户名 的形式,比如下面这个用户就是 hack 域下的 jack 用户(普通用户):

如果是机器用户,就长这样,通过 hostname 查看一下机器名就可以了:

0x0105:Windows 域账号 — 域内管理员

域管理员 whoami 的结果就是 域名\administrator 就是下面这样,拿到了这个用户,就证明对面这个域(内网)已经给你打穿了:

0x0106:Windows 服务账号 — SYSTEM

这个 SYSTEM 权限是 Windows 的一个服务账号,它不属于前面的这几种用户账号(域账号也是用户账号),像前面的用户账号,你用户通过登录后就可以运行各种计算机里的软件、程序。这个服务账号不行,它不能登录。

服务账号专门用于在 Windows 中运行服务,这种账号不能进行登录,SYSTEM 是服务账号的最高权限。SYSTEM 权限是系统自己的权限,任务管理器里面只要是以 SYSTEM 用户运行的程序都是系统本身的程序,比如任务管理器中的 winlogon.exe、svchost.exe、alg.exe 等这些进程,都是系统自己运行的,而不是你运行的用户程序。

我们可以通过打开任务管理器(Ctrl + Shift + ESC),查看进程来查看 SYSTEM 运行了哪些东西:

这个权限与本地最高管理员是平级的,可以互相切换。

0x02:权限介绍 — Linux 篇

Linux 的权限就简单多了,最高权限就是 Root 用户。我们提权的目标就是拿到 Root 用户。下面介绍两个 Linux 中的登录文件:

  • /etc/passwd:该文件是 Linux 系统配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。(这个文件里面没有用户密码)

  • /etc/shadow:该文件中存放了 /etc/passwd 中的用户密码,该文件只有 root 用户能够读取,其他用户都无法读取该文件。

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

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

相关文章

【2025美赛D题】为更美好的城市绘制路线图建模|建模过程+完整代码论文全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的美赛O奖、国赛国一的数学建模团队&#xff0c;我们将为你带来本次数学建模竞赛的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解析&#xff0c…

linux如何修改密码,要在CentOS 7系统中修改密码

要在CentOS 7系统中修改密码&#xff0c;你可以按照以下步骤操作&#xff1a; 步骤 1: 登录到系统 在登录提示符 localhost login: 后输入你的用户名。输入密码并按回车键。 步骤 2: 修改密码 登录后&#xff0c;使用 passwd 命令来修改密码&#xff1a; passwd 系统会提…

抗体人源化服务如何优化药物的分子结构【卡梅德生物】

抗体药物作为一种重要的生物制药产品&#xff0c;已在癌症、免疫疾病、传染病等领域展现出巨大的治疗潜力。然而&#xff0c;传统的抗体药物常常面临免疫原性高、稳定性差以及治疗靶向性不足等问题&#xff0c;这限制了其在临床应用中的效果和广泛性。为了克服这些问题&#xf…

大模型概述

文章目录 大语言模型的起源大语言模型的训练方式大语言模型的发展大语言模型的应用场景大语言模型的基础知识LangChain与大语言模型 大语言模型的起源 在人类社会中&#xff0c;我们的交流语言并非单纯由文字构成&#xff0c;语言中富含隐喻、讽刺和象征等复杂的含义&#xff0…

关于数字地DGND和模拟地AGND隔离

文章目录 前言一、1、为什么要进行数字地和模拟地隔离二、隔离元件1.①0Ω电阻&#xff1a;2.②磁珠&#xff1a;3.电容&#xff1a;4.④电感&#xff1a; 三、隔离方法①单点接地②数字地与模拟地分开布线&#xff0c;最后再PCB板上一点接到电源。③电源隔离④、其他隔离方法 …

【Redis】常见面试题

什么是Redis&#xff1f; Redis 和 Memcached 有什么区别&#xff1f; 为什么用 Redis 作为 MySQL 的缓存&#xff1f; 主要是因为Redis具备高性能和高并发两种特性。 高性能&#xff1a;MySQL中数据是从磁盘读取的&#xff0c;而Redis是直接操作内存&#xff0c;速度相当快…

什么是循环神经网络?

一、概念 循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一类用于处理序列数据的神经网络。与传统的前馈神经网络不同&#xff0c;RNN具有循环连接&#xff0c;可以利用序列数据的时间依赖性。正因如此&#xff0c;RNN在自然语言处理、时间序列预测、语…

Python设计模式 - 组合模式

定义 组合模式&#xff08;Composite Pattern&#xff09; 是一种结构型设计模式&#xff0c;主要意图是将对象组织成树形结构以表示"部分-整体"的层次结构。这种模式能够使客户端统一对待单个对象和组合对象&#xff0c;从而简化了客户端代码。 组合模式有透明组合…

19.Word:小马-校园科技文化节❗【36】

目录 题目​ NO1.2.3 NO4.5.6 NO7.8.9 NO10.11.12索引 题目 NO1.2.3 布局→纸张大小→页边距&#xff1a;上下左右插入→封面&#xff1a;镶边→将文档开头的“黑客技术”文本移入到封面的“标题”控件中&#xff0c;删除其他控件 NO4.5.6 标题→原文原文→标题 正文→手…

一文讲解Java中Object类常用的方法

在Java中&#xff0c;经常提到一个词“万物皆对象”&#xff0c;其中的“万物”指的是Java中的所有类&#xff0c;而这些类都是Object类的子类&#xff1b; Object主要提供了11个方法&#xff0c;大致可以分为六类&#xff1a; 对象比较&#xff1a; public native int has…

多项日常使用测试,带你了解如何选择AI工具 Deepseek VS ChatGpt VS Claude

多项日常使用测试&#xff0c;带你了解如何选择AI工具 Deepseek VS ChatGpt VS Claude 注&#xff1a;因为考虑到绝大部分人的使用&#xff0c;我这里所用的模型均为免费模型。官方可访问的。ChatGPT这里用的是4o Ai对话&#xff0c;编程一直以来都是人们所讨论的话题。Ai的出现…

Linux下学【MySQL】表的必备操作( 配实操图和SQL语句)

绪论​ “Patience is key in life &#xff08;耐心是生活的关键&#xff09;”。本章是MySQL中非常重要且基础的知识----对表的操作。再数据库中表是存储数据的容器&#xff0c;我们通过将数据填写在表中&#xff0c;从而再从表中拿取出来使用&#xff0c;本章主要讲到表的增…

【Java数据结构】了解排序相关算法

基数排序 基数排序是桶排序的扩展&#xff0c;本质是将整数按位切割成不同的数字&#xff0c;然后按每个位数分别比较最后比一位较下来的顺序就是所有数的大小顺序。 先对数组中每个数的个位比大小排序然后按照队列先进先出的顺序分别拿出数据再将拿出的数据分别对十位百位千位…

【全栈】SprintBoot+vue3迷你商城(9)

【全栈】SprintBootvue3迷你商城&#xff08;9&#xff09; 往期的文章都在这里啦&#xff0c;大家有兴趣可以看一下 后端部分&#xff1a; 【全栈】SprintBootvue3迷你商城&#xff08;1&#xff09; 【全栈】SprintBootvue3迷你商城&#xff08;2&#xff09; 【全栈】Spr…

php-phar打包避坑指南2025

有很多php脚本工具都是打包成phar形式&#xff0c;使用起来就很方便&#xff0c;那么如何自己做一个呢&#xff1f;也找了很多文档&#xff0c;也遇到很多坑&#xff0c;这里就来总结一下 phar安装 现在直接装yum php-cli包就有phar文件&#xff0c;很方便 可通过phar help查看…

【数据结构】_顺序表

目录 1. 概念与结构 1.1 静态顺序表 1.2 动态顺序表 2. 动态顺序表实现 2.1 SeqList.h 2.2 SeqList.c 2.3 Test_SeqList.c 3. 顺序表性能分析 线性表是n个具有相同特性的数据元素的有限序列。 常见的线性表有&#xff1a;顺序表、链表、栈、队列、字符串等&#xff1b…

OPencv3.4.1安装及配置教程

来到GitHub上opencv的项目地址 https://github.com/opencv/opencv/releases/tag/3.4.1 以上资源包都是 OpenCV 3.4.1 版本相关资源&#xff0c;它们的区别如下&#xff1a; (1). opencv-3.4.1-android-sdk.zip&#xff1a;适用于 Android 平台的软件开发工具包&#xff08;SDK…

世上本没有路,只有“场”et“Bravo”

楔子&#xff1a;电气本科“工程电磁场”电气研究生课程“高等电磁场分析”和“电磁兼容”自学”天线“、“通信原理”、“射频电路”、“微波理论”等课程 文章目录 前言零、学习历程一、Maxwells equations1.James Clerk Maxwell2.自由空间中传播的电磁波3.边界条件和有限时域…

ZYNQ-IP-AXI-GPIO

AXI GPIO 可以将 PS 端的一个 AXI 4-Lite 接口转化为 GPIO 接口&#xff0c;并且可以被配置为单端口或双端口&#xff0c;每个通道的位宽可以独立配置。 通过使能三态门可以将端口动态地配置为输入或输出。 AXIGPIO 是 ZYNQ PL 端的一个 IP 核&#xff0c;可以将 AXI-Lite Mas…

20.Word:小谢-病毒知识的科普文章❗【38】

目录 题目​ NO1.2.3文档格式 NO4.5 NO6.7目录/图表目录/书目 NO8.9.10 NO11索引 NO12.13.14 每一步操作完&#xff0c;确定之后记得保存最后所有操作完记得再次删除空行 题目 NO1.2.3文档格式 样式的应用 选中应用段落段落→开始→选择→→检查→应用一个一个应用ctr…