地狱怪客

[转]滥用系统Token实现Windows本地提权

源码中没有头文件编译不了

#include<Accctrl.h>
#include<Aclapi.h>

导语:这个项目是我和我的朋友drone(@dronesec)花了一段时间搞出来的,很高兴现在终于可以发布了。正如标题所说的,我们将着眼于利用Windows访问令牌来实现本地特权升级。对于那些熟悉我之前编写的关于“Rotten Potato”一些工作的人来说,这听

这个项目是我和我的朋友drone(@dronesec)花了一段时间搞出来的,很高兴现在终于可以发布了。正如标题所说的,我们将着眼于利用Windows访问令牌来实现本地特权升级。对于那些熟悉我之前编写的关于“Rotten Potato”一些工作的人来说,这听起来很熟悉,但是drone和我又向前迈了10步。

在这篇文章中,我只是提供一份我们所做的工作的一个总结。完整的文件和所有相关代码可以在以下网址找到:https://github.com/hatRiot/token-priv。

这篇文章将分为两部分,第一部分是为渗透测试人员和红军所写的,第二部分是为漏洞利用开发人员所写。

对于红军攻击

像“Rotten Potato”项目一样,该项目对于攻击者已经拿到非管理员权限的服务帐户,并希望将权限提升为“SYSTEM”权限的渗透测试场景非常有用。如果你从“Rotten Potato”项目中回想起了一些事情,那么你应该记得为了能使原始的攻击起作用,你的帐户需要具有“SeImpersonatePrivilege”或“SeAssignPrimaryPrivilege”权限。drone和我决定看看还有哪些其他的特权可以被滥用来获得系统级别的访问权限,并能够找到他们的整个集合。如果这是你的兴趣所在,请随意跳到上面链接中的白皮书的3.1和3.3小节,并查看已发布的代码。每个模块都与一个特定的权限相关联,并且可以让你获得系统级别的访问权限或几乎一样的权限。

以下是我们能够滥用的权限列表:

SeImpersonatePrivilege
SeAssignPrimaryPrivilege
SeTcbPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeCreateTokenPrivilege
SeLoadDriverPrivilege
SeTakeOwnershipPrivilege
SeDebugPrivilege

从渗透测试的角度来看,只需在Windows命令提示符下键入“whoami /priv”即可。如果你有上述特权之一,那么你赢了。

寻找具有这些权限的特定服务帐户可能是有益的。例如,如果你可以访问备份服务帐户,那么几乎肯定会有SeBackupPrivilege和SeRestorePrivilege权限。可以通过以下方式实现对这些服务帐户的访问:

· 服务本身受到一些漏洞的威胁。典型的情况包括允许在运行了IIS的帐户的上下文中执行的Web应用程序漏洞,以及可以使用XP_CMDSHELL 在SQL服务帐户的上下文中运行代码的SQL注入漏洞。

· 服务帐户的凭据以某种方式泄漏。

· Kerberoast风格的攻击。从域控制器请求目标帐户的Kerberos票证。这张票的一部分使用目标帐户的密码哈希进行加密。这可以有效地利用离线破解来获得帐户密码。

· 强制NTLM协商 。例如,使用备份服务账户,你可以强制它备份由Responder.py提供的SMB共享。

和往常一样,你可能需要在这里有一丢丢的创意。

有关更多详细信息,请参阅GitHub存储库https://github.com/hatRiot/token-priv中的文档。

对于Exploit开发

这个项目最初是由drone开发的,这款工具大大简化了为开发人员开发漏洞利用程序部分写入漏洞的难度。部分写入漏洞是那些我们可以写的东西在内存中选定的位置,但是我们可能无法控制被写入的值。这里的想法是滥用部分写入来翻转用户令牌中的某些位,从而实现可利用的权限之一。从这一点来看,漏洞的“利用”涉及滥用一系列Windows API调用的意图(虽然是未记录的)行为。

滥用部分写入的这种策略的优点在于它避免了所有新的内核利用的缓解措施!drone在本文中展示了他如何能够大大简化最近的部分写入漏洞的漏洞利用开发。另一件好事就是利用代码完全可移植。一旦在令牌中翻转了正确的位,漏洞开发者只需要从我们的项目中运行其中一个模块就行了。

有关更多详细信息,请参阅GitHub存储库https://github.com/hatRiot/token-priv中的文档。

本文翻译自https://foxglovesecurity.com/2017/08/25/abusing-token-privileges-for-windows-local-privilege-escalation/,如若转载,请注明原文地址: http://www.4hou.com/technology/7397.html
组策略中的权限的用户 常量的名称
作为受信任调用方的访问凭据管理器 SeTrustedCredManAccessPrivilege
从网络访问此计算机 SeNetworkLogonRight
充当操作系统的一部分 SeTcbPrivilege
将工作站添加到域 SeMachineAccountPrivilege
调整进程的内存配额 SeIncreaseQuotaPrivilege
允许本地登录 SeInteractiveLogonRight
通过终端服务允许登录 SeRemoteInteractiveLogonRight
备份文件和目录 SeBackupPrivilege
跳过遍历检查 SeChangeNotifyPrivilege
更改系统时间 SeSystemtimePrivilege
更改时区 SeTimeZonePrivilege
创建页面文件 SeCreatePagefilePrivilege
创建令牌的对象 SeCreateTokenPrivilege
创建全局对象 SeCreateGlobalPrivilege
创建永久共享的对象 SeCreatePermanentPrivilege
创建符号链接 SeCreateSymbolicLinkPrivilege
调试程序 SeDebugPrivilege
拒绝从网络访问该计算机 SeDenyNetworkLogonRight
拒绝以批处理作业登录 SeDenyBatchLogonRight
拒绝以服务登录 SeDenyServiceLogonRight
拒绝本地登录 SeDenyInteractiveLogonRight
拒绝通过终端服务登录 SeDenyRemoteInteractiveLogonRight
允许计算机和用户帐户被信任可以进行委派 SeEnableDelegationPrivilege
从远程系统强制关机 SeRemoteShutdownPrivilege
生成安全审核 SeAuditPrivilege
身份验证后模拟客户端 SeImpersonatePrivilege
增加进程工作集 SeIncreaseWorkingSetPrivilege
提高日程安排的优先级 SeIncreaseBasePriorityPrivilege
加载和卸载设备驱动程序 SeLoadDriverPrivilege
锁定内存页 SeLockMemoryPrivilege
作为批处理作业登录 SeBatchLogonRight
作为服务登录 SeServiceLogonRight
管理审核和安全日志 Sesecurityprivilege 权限
修改对象标签 SeRelabelPrivilege
修改固件环境值 SeSystemEnvironmentPrivilege
执行卷维护任务 SeManageVolumePrivilege
配置单一进程 SeProfileSingleProcessPrivilege
配置系统性能 SeSystemProfilePrivilege
从扩展坞中取出计算机 SeUndockPrivilege
替换进程级令牌 SeAssignPrimaryTokenPrivilege
还原文件和目录 SeRestorePrivilege
关闭系统 SeShutdownPrivilege
同步目录服务数据 SeSyncAgentPrivilege
获得文件或其他对象的所有权 SeTakeOwnershipPrivilege
码字很辛苦,转载请注明来自人生在世《[转]滥用系统Token实现Windows本地提权》

评论