Windows原理深入学习系列-特权

admin 2022年3月11日10:04:28评论63 views字数 1996阅读6分39秒阅读模式

这是[信安成长计划]的第 21 篇文章


0x00 目录

0x01 介绍

0x02 结构分析

0x03 进程注入测试

0x04 参考文章



0x01 介绍

在 Token 当中还存在一个特别重要的内容——Privileges,它也是权限检查中的一个,当用户去执行一些特权操作的时候,会检查这个位置,看是否有执行的权限。


通过滥用一些特权指令,可以达到权限提升等目的,最常见的一个特权就是 SeDebugPrivilege,除此之外,还有很多的特权


Windows原理深入学习系列-特权


这些权限都可以通过 AdjustTokenPrivileges 来提升权限,代码可以参考微软给的例子

https://docs.microsoft.com/en-us/windows/win32/secauthz/enabling-and-disabling-privileges-in-c--


可以在命令行中查看当前所拥有的特权


Windows原理深入学习系列-特权


其中 SeChangeNotifyPrivilege 是默认会启用的一个特权,即使是 Low 完整性等级的也会有这个特权


Windows原理深入学习系列-特权


0x02 结构分析

可以在 Windbg 当中查看到一下,就用刚刚启动的 cmd-low.exe 来进行

查看它的 TOKEN 结构


Windows原理深入学习系列-特权


可以看到在 0x40 的位置就是 Privileges,继续看它的结构


Windows原理深入学习系列-特权


这三个值的每一位都代表着一个权限,我们重点要看的是 Present 和 Enabled,Present 决定了哪些位是当前可以用,Enabled 则决定了是否启用


可以看到当前是有五个权限位的,在根据上面的 Enabled 可以知道,只有一个权限位是打开的


Windows原理深入学习系列-特权


那这每一位到底代表着什么特权,我没有在微软的文档中找到描述,但是在 Windbg 中找到了另外的方案


我们使用 !token 命令让 Windbg 自己解析一下,可以看到有五个权限位,并且只有一个是启用的,数位数也刚好与上面所解析到的一致


Windows原理深入学习系列-特权


既然通过这样的方法可以知道位置和对应的权限,那么就可以通过全部启用,然后再让 Windbg 来进行解析,就可以得到所有的权限位了


Windows原理深入学习系列-特权


然后就可以看到所有的权限位和对应的权限了


Windows原理深入学习系列-特权

在查资料的时候,还发现了一个情况,在 AdjustTokenPrivileges 的时候,会进行额外的检查,所能启用的权限与进程的完整性挂钩了


Windows原理深入学习系列-特权


文章我贴到最后的参考链接当中


0x03 进程注入测试

在正常情况下,我们当前作为低完整性等级是不能够注入高完整性等级的进程的,在之前的文章中也已经测试过了


Windows原理深入学习系列-特权


在 OpenProcess 的时候就直接出问题了,这是符合我们的预期的


Windows原理深入学习系列-特权


但是在 OpenProcess 当中还有这样的一句话,如果给了 SeDebugPrivilege 权限,那么就会直接授予


Windows原理深入学习系列-特权


这里为了方便起见,直接使用 Windbg 来进行修改


Windows原理深入学习系列-特权


可以看到确实启用了


Windows原理深入学习系列-特权


然后再进行注入,可以发现成功了


Windows原理深入学习系列-特权


如果将其注入到 winlogon 进程当中,再创建一个 cmd,因为继承关系,我们也就拥有了 system 权限


Windows原理深入学习系列-特权



0x04 参考文章

1.https://docs.microsoft.com/en-us/windows/win32/secbp/changing-privileges-in-a-token

2.https://docs.microsoft.com/en-us/windows/win32/secauthz/privilege-constants

3.https://docs.microsoft.com/en-us/windows/win32/secauthz/enabling-and-disabling-privileges-in-c--

4.https://docs.microsoft.com/en-us/windows/win32/secauthz/privileges

5.https://book.hacktricks.xyz/windows/windows-local-privilege-escalation/privilege-escalation-abusing-tokens

6.https://github.com/gtworek/Priv2Admin

7.http://showlinkroom.me/2020/05/02/Windows-Via-C-C-note-4-2/

8.https://paper.seebug.org/1743/

9.https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocess


---文章到此结束,欢迎加微信探讨---

Windows原理深入学习系列-特权


往 期 文 章


1. Windows原理深入学习系列-强制完整性控制

2. Windows原理深入学习系列-访问控制列表

3. Windows原理深入学习系列-访问控制列表-关于安全描述符的补充

更多文章 戳此查看


原文始发于微信公众号(信安成长计划):Windows原理深入学习系列-特权

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月11日10:04:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows原理深入学习系列-特权http://cn-sec.com/archives/825991.html

发表评论

匿名网友 填写信息