渗透技巧——Windows Token九种权限的利用
副标题[/!--empirenews.page--]
【新品产上线啦】51CTO播客,随时随地,碎片化学习
0x00 前言 普通用户(或者LocalService用户)的特殊Token有哪些可利用方法呢?能否提权?如何判断? 本文将要结合自己的经验,参考多个开源工具和资料,尝试对这个技巧做总结,分享学习心得。 参考的开源工具和资料:
0x01 简介 本文将要介绍以下内容:
0x02 简要利用思路 1、取得了目标的访问权限后,查看可用权限 whoami /priv 例如,普通用户具有的权限如下图。 ![]() 管理员用户具有的权限如下图。 ![]() iis用户具有的权限如下图。 ![]() Privilege Name项表示具有的权限,State表示权限的状态,我们可以通过WinAPI AdjustTokenPrivileges将权限设置为Disabled或者Enabled 可供参考的实现代码: https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnablePrivilegeandGetTokenInformation.cpp 代码实现了开启指定权限(SeDebugPrivilege),并且查看当前用户名称和具有的权限 2、如果包含以下九个权限,我们就可以对其进一步利用
注:
0x03 SeImpersonatePrivilege权限的利用思路 参考资料: https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L327 SeImpersonatePrivilege 身份验证后模拟客户端(Impersonatea client after authentication) 拥有该权限的进程能够模拟已有的token,但不能创建新的token 以下用户具有该权限:
通常,iis或者sqlserver用户具有该权限 利用思路
可供参考的测试代码: https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeImpersonatePrivilege.cpp 代码实现了开启当前进程的SeImpersonatePrivilege权限,调用CreateProcessWithToken,传入当前进程的Token,创建一个进程,配合RottenPotato,可用来从LocalService提权至System权限。 0x04 SeAssignPrimaryPrivilege权限的利用思路 参考资料: https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L359 SeAssignPrimaryPrivilege 向进程(新创建或者挂起的进程)分配token 通常,iis或者sqlserver用户具有该权限 利用思路1 · 利用NTLM Relay to Local Negotiation获得System用户的Token · 通过WinAPI CreateProcessAsUser创建新进程,传入System用户的Token · 该Token具有System权限 可供参考的测试代码: https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeAssignPrimaryTokenPrivilege.cpp (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |