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

news2025/1/31 4:49:46

关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-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 用户能够读取,其他用户都无法读取该文件。

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

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

相关文章

Qt Designer and Python: Build Your GUI

1.install pyside6 2.pyside6-designer.exe 发送到桌面快捷方式 在Python安装的所在 Scripts 文件夹下找到此文件。如C:\Program Files\Python312\Scripts 3. 打开pyside6-designer 设计UI 4.保存为simple.ui 文件&#xff0c;再转成py文件 用代码执行 pyside6-uic.exe simpl…

数据结构与算法之栈: LeetCode LCR 152. 验证二叉搜索树的后序遍历序列 (Ts版)

验证二叉搜索树的后序遍历序列 https://leetcode.cn/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/description/ 描述 请实现一个函数来判断整数数组 postorder 是否为二叉搜索树的后序遍历结果 示例 1 输入: postorder [4,9,6,5,8] 输出: false解释&#…

[STM32 - 野火] - - - 固件库学习笔记 - - -十三.高级定时器

一、高级定时器简介 高级定时器的简介在前面一章已经介绍过&#xff0c;可以点击下面链接了解&#xff0c;在这里进行一些补充。 [STM32 - 野火] - - - 固件库学习笔记 - - -十二.基本定时器 1.1 功能简介 1、高级定时器可以向上/向下/两边计数&#xff0c;还独有一个重复计…

IPhone13 Pro Max设备详情

目录 产品宣传图内部图——后设备详细信息 产品宣传图 内部图——后 设备详细信息 信息收集于HubWeb.cn

K8S中高级存储之PV和PVC

高级存储 PV和PVC 由于kubernetes支持的存储系统有很多&#xff0c;要求客户全都掌握&#xff0c;显然不现实。为了能够屏蔽底层存储实现的细节&#xff0c;方便用户使用&#xff0c; kubernetes引入PV和PVC两种资源对象。 PV&#xff08;Persistent Volume&#xff09; PV是…

[论文总结] 深度学习在农业领域应用论文笔记14

当下&#xff0c;深度学习在农业领域的研究热度持续攀升&#xff0c;相关论文发表量呈现出迅猛增长的态势。但繁荣背后&#xff0c;质量却不尽人意。相当一部分论文内容空洞无物&#xff0c;缺乏能够落地转化的实际价值&#xff0c;“凑数” 的痕迹十分明显。在农业信息化领域的…

WPF基础 | 深入 WPF 事件机制:路由事件与自定义事件处理

WPF基础 | 深入 WPF 事件机制&#xff1a;路由事件与自定义事件处理 一、前言二、WPF 事件基础概念2.1 事件的定义与本质2.2 常见的 WPF 事件类型 三、路由事件3.1 路由事件的概念与原理3.2 路由事件的三个阶段3.3 路由事件的标识与注册3.4 常见的路由事件示例 四、自定义事件处…

C++封装红黑树实现mymap和myset和模拟实现详解

文章目录 map和set的封装map和set的底层 map和set的模拟实现insertiterator实现的思路operatoroperator- -operator[ ] map和set的封装 介绍map和set的底层实现 map和set的底层 一份模版实例化出key的rb_tree和pair<k,v>的rb_tree rb_tree的Key和Value不是我们之前传统意…

如何用matlab画一条蛇

文章目录 源代码运行结果代码说明结果 源代码 % 画蛇的代码 % 2025-01-28/Ver1 % 清空环境 clc; clear; close all;% 定义蛇的身体坐标 t linspace(0, 4*pi, 100); % 参数化变量 x t; % x坐标 y sin(t) 0.5 * sin(3*t); % y坐标&#xff0c;形成更复…

DVC - 数据版本和机器学习实验的命令行工具和 VS Code 扩展

文章目录 一、关于 DVC二、快速启动三、DVC的工作原理四、VS代码扩展五、安装Snapcraft&#xff08;Linux&#xff09;Chocolatey (Windows)Brew (mac OS)Anaconda (Any platform)PyPI&#xff08;Python&#xff09;Package (Platform-specific)Ubuntu / Debian (deb)Fedora /…

理解神经网络:Brain.js 背后的核心思想

温馨提示 这篇文章篇幅较长,主要是为后续内容做铺垫和说明。如果你觉得文字太多,可以: 先收藏,等后面文章遇到不懂的地方再回来查阅。直接跳读,重点关注加粗或高亮的部分。放心,这种“文字轰炸”不会常有的,哈哈~ 感谢你的耐心阅读!😊 欢迎来到 brain.js 的学习之旅!…

Maui学习笔记- SQLite简单使用案例02添加详情页

我们继续上一个案例&#xff0c;实现一个可以修改当前用户信息功能。 当用户点击某个信息时&#xff0c;跳转到信息详情页&#xff0c;然后可以点击编辑按钮导航到编辑页面。 创建项目 我们首先在ViewModels目录下创建UserDetailViewModel。 实现从详情信息页面导航到编辑页面…

Autogen_core 测试代码:test_cache_store.py

目录 原始代码测试代码代码中用到的typing注解 原始代码 from typing import Dict, Generic, Optional, Protocol, TypeVarT TypeVar("T")class CacheStore(Protocol, Generic[T]):"""This protocol defines the basic interface for store/cache o…

变压器的漏感

测量变压器漏感的时候需要将次级绕组短路&#xff1a; 测量变压器初级线圈的电感方法很简单&#xff0c;直接用LCR测量就可&#xff0c;无需像测量漏感那样将次级绕组短接&#xff1a;

从ChatGPT热潮看智算崛起

2025年1月7日&#xff0c;科智咨询发布《2025年IDC产业七大发展趋势》&#xff0c;其中提到“ChatGPT开启生成式AI热潮&#xff0c;智能算力需求暴涨&#xff0c;算力供给结构发生转变”。 【图片来源于网络&#xff0c;侵删】 为何会以ChatGPT发布为节点呢&#xff1f;咱们一起…

攻克 AI 幻觉难题

当下&#xff0c;AI 已经成为我们生活中不可或缺的一部分。无论是智能语音助手&#xff0c;还是对话式的AI模型&#xff0c;它们凭借强大的算法和海量的数据&#xff0c;为我们答疑解惑、出谋划策。 然而&#xff0c;小编今天向AI提问&#xff1a;上山打老虎。他却回答&#x…

格式化时间的插件

1.安装dayjs包 npm i dayjs 2.组件中的应用

自创《艺术人生》浅析

艺术是生活的馈赠&#xff0c;艺术是苦痛的呻吟。 笔记模板由python脚本于2025-01-29 00:01:11创建&#xff0c;本篇笔记适合喜欢写诗读诗诵诗的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值&#xff1a;在于输出思考与经验&#xff0c;而不仅仅是知识的简单复述。 …

防御保护第一次实验:安全策略配置

一、实验拓扑 二、实验要求 三、需求分析 1.创建两个vlan 2.在ENSP中配置基于时间的ACL实现对于办公区PC访问OA Server的时间限制&#xff08;工作日早8到晚6&#xff09;。 3.通过配置基于MAC地址的ACL来实现对于生产区PC访问Web Server的限制&#xff08;除PC3外不能访问&am…

【Pytest】生成html报告中,中文乱码问题解决方案

链接上一篇文章:https://blog.csdn.net/u013080870/article/details/145369926?spm1001.2014.3001.5502 中文乱码问题&#xff0c;python3&#xff0c;Python3.7后&#xff0c;还一个文件就是result.py 因为中文可以在内容中&#xff0c;也可能在文件名&#xff0c;类名&…