windows九大权限的分析与利用
文章目录
- 1.前言
- 2.常见的权限集合
- 可被进一步利用的权限
- 3.补充:权限的状态到底有什么意义
- 4.利用
- 4.1 SeImpersonatePrivilege
- 4.2 SeAssignPrimaryPrivilege
- 4.3 SeTcbPrivilege
- 4.4 SeBackupPrivilege
- 4.5 SeRestorePrivilege
- 4.6 SeCreateTokenPrivilege
- 4.7 SeLoadDriverPrivilege
- 4.8 SeTakeOwnershipPrivilege
- 4.9 SeDebugPrivilege
- 5.参考文章
- 参考的开源工具和资料
1.前言
一直对windows的各种权限理解的很模糊,于是决定写这篇文章来加深自己的理解与记忆。
2.常见的权限集合
一般情况下我们能拿到权限的用户有三种,administrator,普通user,iis用户。他们拥有的权限集合如下:
1.administrator
2.普通user
3.IIS用户
可被进一步利用的权限
如果我们在测试的过程中发现某用户拥有以下几种权限中的任意一个,那我们就能进一步进行利用:
如果包含以下九个权限,我们就可以对其进一步利用
- SeImpersonatePrivilege
- SeAssignPrimaryPrivilege
- SeTcbPrivilege
- SeBackupPrivilege
- SeRestorePrivilege
- SeCreateTokenPrivilege
- SeLoadDriverPrivilege
- SeTakeOwnershipPrivilege
- SeDebugPrivilege
iis或者sqlserver的用户通常具有SeImpersonatePrivilege和SeAssignPrimaryPrivilege权限
Backup service用户通常具有SeBackupPrivilege和SeRestorePrivilege权限
3.补充:权限的状态到底有什么意义
如上图所示,我们可以看到权限的状态是disabled,这个disabled并不代表用户不能去使用这些特权,disabled只代表当前程序没有这个特权,但是只要特权显示出来了,那么用户就拥有来这些特权,如果仅仅作为用户的角度的话我们可以直接忽略掉这些权限的状态,因为在必要的时候系统会为我们自动开启。
那disabled这种状态为什么会存在呢?那就是为了限制程序的执行了。
举个例子,SeShutdownPrivilege权限的状态是disabled,我们用户还是可以在cmd窗口中执行shutdown命令关闭主机,但是其他程序就不可以调用windows的api来关闭主机,如果其他程序想调用windowsapi关闭主机的话就得先调用一个名为AdjustTokenPrivileges的api来将SeShutdownPrivilege的状态转变为enable,之后才能进行关闭主机。总的来说权限的状态对于用户态的我们毫无影响,对于一些程序会有一定的影响。
设置权限状态为enable方式可参考代码:EnablePrivilegeandGetTokenInformation.cpp
4.利用
4.1 SeImpersonatePrivilege
拥有此权限的用户:
- 管理员或者本地的服务账户
- 由服务控制管理器启动的服务
- 由组件对象模型 (COM) 基础结构启动的并配置为在特定帐户下运行的COM服务器
- IIS与SqlServer用户
当我们拥有这个权限的时候,代表了我们可以将当前计算机上的其他令牌盗取过来自己使用,具体操作可见通过token窃取实现降权或者提权。
利用场景:
拿到iis或者sqlserver用户的权限,使用juicypotato工具进行提权到system。
4.2 SeAssignPrimaryPrivilege
拥有这个权限的进程可以向其他进程分配token。
拥有此权限的用户:
- iis与sqlserver
利用原理跟SeImpersonatePrivilege权限的利用原理类似,都是通过NTLM Relay to Local Negotiation来获取system权限的token,区别是获取token后利用system权限的token创建新的进程,如果开启SeImpersonate权限,调用CreateProcessWithToken,传入System权限的Token,创建的进程为System权限,或者如果开启SeAssignPrimaryToken权限,调用CreateProcessAsUser,传入System权限的Token,创建的进程为System权限。
利用场景:
拿到iis或者sqlserver用户的权限,使用juicypotato工具进行提权到system。
4.3 SeTcbPrivilege
拥有它就等同于获得了系统的最高权限。
利用思路:
- 调用LsaLogonUser获得Token
- 将该Token添加至Local System account组
- 该Token具有System权限
测试代码:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeTcbPrivilege.cpp
4.4 SeBackupPrivilege
拥有此权限的用户:
- backup service
- 管理员
这个权限用来实现备份操作,对当前系统任意文件具有读权限。
利用思路:
读取注册表中HKEY_LOCAL_MACHINE\SAM、HKEY_LOCAL_MACHINE\SECURITY和HKEY_LOCAL_MACHINE\SYSTEM文件,然后放在mimikatz里面进行破解得到密码。
mimikatz命令:
lsadump::sam /sam:SamBkup.hiv /system:SystemBkup.hiv
具体操作细节参考:sam文件获取与解密
4.5 SeRestorePrivilege
对当前系统任意文件具有写的权限。
利用思路:
- 参考映像劫持,不过在win10中不能用。
映像劫持参考文章:https://cloud.tencent.com/developer/article/1672598
4.6 SeCreateTokenPrivilege
可以创建windows令牌或者说token,win10中一般用户没有这个权限。
利用思路:
- 通过WinAPI ZwCreateToken创建Primary Token
- 将Token添加至local administrator组
- 该Token具有System权限
4.7 SeLoadDriverPrivilege
加载驱动文件。
利用思路:
- msf中的capcom_sys_exec模块即可
原理:
- 加载驱动文件Capcom.sys
- Capcom.sys存在漏洞,系统加载后,可从普通用户权限提升至System权限,利用代码可参考: https://github.com/tandasat/ExploitCapcom
- 获得System权限
4.8 SeTakeOwnershipPrivilege
与SeRestorePrivilege相同,对系统上的任何文件具有写的权限。
4.9 SeDebugPrivilege
用来调试指定进程,包括读写内存,常用作实现dll注入。
利用思路:
- 找到system权限的进程
- dll注入
- 获得权限
5.参考文章
渗透技巧-Windows-Token九种权限的利用
abusing_token_eop
参考的开源工具和资料
Hot Potato: https://github.com/foxglovesec/Potato
powershell版本Hot Potato: https://github.com/Kevin-Robertson/Tater
Rotten Potato: https://github.com/breenmachine/RottenPotatoNG
lonelypotato: https://github.com/decoder-it/lonelypotato
Juicy Potato: https://github.com/ohpe/juicy-potato
https://github.com/hatRiot/token-priv
https://foxglovesecurity.com/2017/08/25/abusing-token-privileges-for-windows-local-privilege-escalation/
https://foxglovesecurity.com/2016/01/16/hot-potato/
https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/
https://foxglovesecurity.com/2017/08/25/abusing-token-privileges-for-windows-local-privilege-escalation/
windows九大权限的分析与利用相关推荐
- Windows九大常用密码
在使用电脑的过程中,难免要与各类密码打交道,以下九种密码可能是大家用的最多的:BIOS密码.安装密码.用户密码.电源管理密码.屏保密码.开机密码.上网密码.分级审查密码和共享密码.今天,我们就谈谈这些 ...
- 边云协同的优点_边缘计算与云边协同有何关系?九大应用场景分析云边协同
2019 年边缘计算备受产业关注,一度引起了资本市场的投资热潮,很多人把 2019 年称作边缘计算的元年.理性来看,造成如此火爆局势难免有一些炒作因素在推波助澜,毕竟边缘计算的概念存世也已多年.当然, ...
- 使用商业模式的九大模块去分析京东的商业模式_商业模式—筑基篇(1)
1.商业模式的定义 一个商业模式描述的是一个组织创造,传递并获得价值的原理. 2.商业画布的九大模块 1)客户细分(CS:customer segments) 描述一个企业想要获得的和期望服务的不同的 ...
- 绩效考核的九大困惑及其分析
在绩效管理中,绩效考核是其中最重要的工作之一,也是最困难的工作.因此,它被称为是"世界性"的难题. 绩效考核之所以难,首先表现为在绩效工作过程中,经常有许多疑难杂症使人们困惑不解. ...
- 九大微博传播分析工具
一.知微 http://www.weiboreach.com/ 出品方微博:@社会网络与社会挖掘 功能:免费版提供2000以下转发传播分析:提供可视化的微 博传播路径图,传播关键人物分析,转发粉丝属性 ...
- 使用商业模式的九大模块去分析京东的商业模式_【荐读】商业模式新生代
⊙投稿信箱:624380939@qq.com(欢迎您原创投稿) 作者:亚历山大·奥斯特瓦德.伊夫·皮尼厄 人生的长度是有限的,我们只能努力拓展人生的厚度和广度.感受经典的启迪与激励,做好我们的企业,思 ...
- 苹果计算机的优势,买苹果电脑好吗?使用Mac电脑的九大优点与好处
买苹果电脑好吗?使用Mac 电脑的九大优点与好处 先前小编刊登了一篇:Mac电脑的八大缺点:Windows PC 用户跳槽前请留意的文章,获得了不少回响:但为了让读者能更完整地评估Mac与Window ...
- 频数直方图的步骤_如何运用QC七大手法和九大步骤分析问题?
如何运用QC七大手法和九大步骤分析问题? QC七大手法 "七大手法"主要是指企业质量管理中常用的质量管理工具,有"老七种"和"新七种"之分. ...
- 利用大数据和分析来发展业务,您准备好了吗?
许多企业已经发现,他们的内部数据访问和整合系统面临基于云的信息和大数据所带来的新挑战.如今的企业通常使用多个数据管理平台来完成内部分析和运营工作.由于平台增加和数据分散在不同的地理位置,许多企业发现数 ...
最新文章
- Confluence 6 管理协同编辑
- grub 引导 多linux系统,GRUB 多系统引导
- HTML标签语义化——使用b标签,还是strong标签
- Statues(三维bfs)
- 论文浅尝 | Learning with Noise: Supervised Relation Extraction
- Java生产环境下性能监控与调优详解 第3章 基于JVisualVM的可视化监控
- 不间断电源ups标准_UPS不间断电源除尘技巧分析
- github API 实例 python源码 爬取用户信息
- php 连接芒果数据库,芒果数据库配置文件
- 致远OA任意管理员登陆漏洞分析
- linux下dbf是什么文件,DBF文件怎么打开?DBF文件的打开方法教程
- U盘格式化导致存储空间变小的解决方法汇总
- 什么是软件维护?在软件已经交付使用后,为了改正错误或满足新需求而修改软件的过程。它有哪几种类型?
- elementui去掉表格所有边框
- 「面试必背」Redis面试题(2022最新版)
- CANoe.DiVa 操作指南 - 逆向测试项设置
- [COPYRIGHT] 常见版权许可协议
- Navicat Premium for Mac 11.1.8 中文破解版
- Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取
- WCDMA的R99版本和R4版本(转)
热门文章
- android 开红包动画,Android实现红包雨动画效果
- Kotlin学习笔记
- 圆为什么规定一定是360度_为什么圆是360度
- 下水盖为什么是圆的?
- 180209 逆向-Frida-python on win多进程BUG(曲线救国)
- Chrome源码剖析 【五】
- Windows Phone 7芒果更新
- OFPPT-CTF 2022 部分writeup
- java 麻将_JAVA程序设计(11)-----面对对象0基础设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样...
- PHP调用ZPL斑马指令 打印二维码标签