跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透技巧——利用Windows的九大权限


KaiWn

推荐的帖子

0x00 前言

之前的文章《渗透技巧——从Admin权限切换到System权限》和《渗透技巧——Token窃取与利用》分别介绍了从admin权限切换到system权限和TrustedInstaller权限的方法,主要方法是通过token切换权限。

那么,对于普通用户(或LocalService用户)来说,特殊Token有哪些可用的方法呢?你能提高功率吗?如何判断?

本文将结合自己的经验,参考几个开源工具和资料,试着总结一下这个技巧,分享一下自己的学习经验。

可供参考的开源工具和材料:

烫手山芋:https://github.com/foxglovesec/Potato

版本powershell烫手山芋:https://github.com/Kevin-Robertson/Tater

烂土豆:https://github.com/breenmachine/RottenPotatoNG

孤独的土豆:https://github.com/decoder-it/lonelypotato

多汁的土豆:https://github.com/ohpe/juicy-potato

https://github.com/hatRiot/token-priv

https://fox glove security . com/2017/08/25/滥用令牌特权windows本地特权升级/

https://foxglovesecurity.com/2016/01/16/hot-potato/

https://fox glove security . com/2016/09/26/rotate-potato-privilege-escalation-from-service-accounts-to-system/

https://fox glove security . com/2017/08/25/滥用令牌特权windows本地特权升级/

0x01 简介

本文将介绍以下内容:

简要利用思路

与SeImpersonatePrivilege authority相对应的使用理念和开源代码

与SeAssignPrimaryPrivilege rights相对应的利用思想和开源代码

CBPrivilege权限对应的利用思路和开源代码

与SeBackupPrivilege权限相对应的使用理念和开源代码

SeRestorePrivilege权限对应的使用理念和开源代码

SeCreateTokenPrivilege权限对应的利用思路和开源代码

SeLoadDriverPrivilege权限对应的利用思路和开源代码

使用与SeTakeOwnershipPrivilege权限相对应的想法和开放源代码

SeDebugPrivilege权限对应的利用思路和开源代码

0x02 简要利用思路

1、取得了目标的访问权限后,查看可用权限

whoami /priv

例如,普通用户的权限如下

2-1.png

用户的权限如下

2-2.png

iis用户的权限如下

2-3.png

特权名称项表示特权,状态表示特权的状态。我们可以通过WinAPI AdjustTokenPrivileges将特权设置为禁用或启用。

可用的实施代码:

https://github . com/3g student/home-of-C-Language/blob/master/enableprivilegeandgettokeninformation . CPP

该代码实现了打开指定的权限,并查看当前的用户名和权限。

2、如果包含以下九个权限,我们就可以对其进一步利用

议会特权

SeAssignPrimaryPrivilege

SeTcbPrivilege

SeBackupPrivilege

SeRestorePrivilege

secretatetokenprivilege

SeLoadDriverPrivilege

SeTakeOwnershipPrivilege

SeDebugPrivilege

注:

或者iis sqlserver的用户通常具有SeImpersonatePrivilege和SeAssignPrimaryPrivilege权限。

服务用户通常拥有SeBackupPrivilege和SeRestorePrivilege权限。

0x03 SeImpersonatePrivilege权限的利用思路

参考资料:

https://github . com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L327

SeImpersonatePrivilege

身份验证后模拟客户端。

具有此权限的进程可以模拟现有令牌,但不能创建新令牌。

以下用户拥有此权限:

本地管理员组和本地服务帐户的成员

服务控制管理器启动的服务

由组件对象模型(com)基础结构启动并配置为在特定帐户下运行的COM服务器

通常,iis或sqlserver用户拥有此权限。

利用思路

使用NTLM中继到本地协商获得系统用户的令牌。

你可以使用开源工具烂土豆、孤独土豆或多汁土豆。

通过WinAPI CreateProcessWithToken创建一个新的进程,传入系统用户的令牌。

只有具有SeImpersonatePrivilege权限才能成功创建。

该令牌具有系统权限

可用测试代码:

https://github . com/3g student/home-of-C-Language/blob/master/enableseimpersonateprivilege . CPP

代码实现了开启当前进程的议会特权权限,调用CreateProcessWithToken,传入当前进程的令牌,创建一个进程,配合马铃薯,可用来从本地服务提权至系统权限

0x04 SeAssignPrimaryPrivilege权限的利用思路

参考资料:

https://github。com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L359

SeAssignPrimaryPrivilege

向进程(新创建或者挂起的进程)分配代币

通常,iis或者sqlserver用户具有该权限

利用思路1

利用NTLM接力到当地谈判获得系统用户的代币

通过WinAPI CreateProcessAsUser创建新进程,传入系统用户的代币

该代币具有系统权限

可供参考的测试代码:

https://github。com/3g student/home-of-C-Language/blob/master/enableseassignprimarytokenprivilege。卡片打印处理机(Card Print Processor的缩写)

代码实现了开启当前进程的SeAssignPrimaryTokenPrivilege权限,调用CreateProcessAsUser,传入当前进程的令牌,创建一个进程,配合马铃薯,可用来从本地服务提权至系统权限

利用思路2

利用NTLM接力到当地谈判获得系统用户的代币

通过WinAPI CreateProcess创建一个挂起的新进程,参数设置为创建_暂停

通过WinAPI NtSetInformationProcess将新进程的代币替换为系统用户的代币

该代币具有系统权限

0x05 SeTcbPrivilege权限的利用思路

参考资料:

https://github。com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L418

SeTcbPrivilege

等同于获得了系统的最高权限

利用思路

调用LsaLogonUser获得代币

将该代币添加至本地系统帐户组

该代币具有系统权限

可供参考的测试代码:

https://github。com/3g学生/C语言之家/blob/master/enablesetcbprivilege。卡片打印处理机(Card Print Processor的缩写)

代码实现了开启当前进程的SeTcbPrivilege权限,登录用户测试1,将其添加至本地系统帐户组,获得系统权限,创建注册表项HKEY _ LOCAL _ MACHINE \ SOFTWARE \ testtcb

0x06 SeBackupPrivilege权限的利用思路

参考资料:

https://github。com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L495

SeBackupPrivilege

用来实现备份操作,对当前系统任意文件具有读权限

利用思路

读取注册表HKEY _本地机器\SAM、HKEY _本地机器\安全和HKEY_LOCAL_MACHINE\SYSTEM

导出当前系统的所有用户混杂

米米卡茨的命令如下:

LSA转储:山姆/山姆:山姆库普。艾滋病毒/系统:系统bkup。艾滋病病毒

可供参考的测试代码:

https://github。com/3g student/home-of-C-Language/blob/master/enablesebackupprivilege。卡片打印处理机(Card Print Processor的缩写)

代码实现了开启当前进程的SeBackupPrivilege权限,读取注册表,将其保存成文件C:\ \测试\\SAM、C:\ \测试\ \安全和c:\ \测试\ \系统

0x07 SeRestorePrivilege权限的利用思路

参考资料:

https://github。com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L528

SeRestorePrivilege

用来实现恢复操作,对当前系统任意文件具有写权限

利用思路1

获得SeRestorePrivilege权限,修改注册表HKLM软件微软视窗系统

NT \当前版本\图像文件执行选项

劫持可执行程序的扩展名文件的启动

实现提权或是作为后门

利用思路2

获得SeRestorePrivilege权限,向任意路径写入动态链接库文件

实现动态链接库劫持

实现提权或是作为后门

可供参考的测试代码:

https://github。com/3g student/home-of-C-Language/blob/master/enableserestoreprivilege。卡片打印处理机(Card Print Processor的缩写)

代码实现了开启当前进程的SeRestorePrivilege权限,创建注册表项HKEY _ LOCAL _ MACHINE \ SOFTWARE \ testrestore

0x08 SeCreateTokenPrivilege权限的利用思路

参考资料:

https://github。com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L577

SeCreateTokenPrivilege

用来创建主令牌

利用思路

通过WinAPI ZwCreateToken创建主令牌

将代币添加至本地管理员组

该代币具有系统权限

可供参考的测试代码:

https://github。com/3g student/home-of-C-Language/blob/master/enablesecreatetokenprivilege。卡片打印处理机(Card Print Processor的缩写)

代码实现了开启当前进程的部长会议特权权限,创建主令牌,将其添加至本地管理员组,开启SeDebugPrivilege和SeTcbPrivilege权限

0x09 SeLoadDriverPrivilege权限的利用思路

参考资料:

https://github。com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L626

SeLoadDriverPrivilege

用来加载驱动文件

利用思路

创建驱动文件的注册表

REG add hkcu \ System \ current control set \ CAPCOM/v image path/t REG _ SZ/d ' \?\C:\test\Capcom.sys '

REG add hkcu \ System \当前控制集\ CAPCOM/v Type/t REG _ DWORD/d 1

加载驱动文件Capcom.sys

Capcom.sys存在漏洞,系统加载后,可从普通用户权限提升至系统权限,利用代码可参考:

https://github.com/tandasat/ExploitCapcom

获得系统权限

可供参考的测试代码:

https://github。com/3g student/home-of-C-Language/blob/master/enableseloaddriverprivilege。卡片打印处理机(Card Print Processor的缩写)

代码实现了开启当前进程的SeLoadDriverPrivilege权限,读取注册表项hkcu \ System \ current control set \ CAPCOM加载驱动文件Capcom.sys

0x0A SeTakeOwnershipPrivilege权限的利用思路

参考资料:

https://github。com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L688

SeTakeOwnershipPrivilege

同SeRestorePrivilege类似,对当前系统任意文件具有写权限

利用思路1

获得SeTakeOwnershipPrivilege权限,修改注册表HKLM软件微软视窗系统

NT \当前版本\图像文件执行选项

劫持可执行程序的扩展名文件的启动

实现提权或是作为后门

利用思路2

获得SeTakeOwnershipPrivilege权限,向任意路径写入动态链接库文件

实现动态链接库劫持

实现提权或是作为后门

可供参考的测试代码:

https://github。com/3g student/home-of-C-Language/blob/master/enablesetakeownershipprivilege。卡片打印处理机(Card Print Processor的缩写)

代码实现了开启当前进程的SeTakeOwnershipPrivilege权限,修改注册表项hklm \ SOFTWARE \ Microsoft \ Windows NT \当前版本\ Image文件执行选项的权限,普通用户权限对其具有完整操作权限

后续的写操作:

REG add ' hklm \ SOFTWARE \ Microsoft \ Windows NT \当前版本\映像文件执行选项'/v take ownership/t REG _ SZ/d ' C:\ \ Windows \ \ System32 \ \ calc。' exe '

0x0B SeDebugPrivilege权限的利用思路

参考资料:

https://github。com/hatRiot/token-priv/blob/master/滥用_token_eop_1.0.txt#L736

SeDebugPrivilege

用来调试指定进程,包括读写内存,常用作实现动态链接库注入

利用思路

找到系统权限的进程

动态链接库注入

获得系统权限

可供参考的测试代码:

https://github。com/3g student/home-of-C-Language/blob/master/enablesedebugprivilege。卡片打印处理机(Card Print Processor的缩写)

代码实现了开启当前进程的SeDebugPrivilege权限,向指定进程注入动态链接库

0x0C 小结

本文总结了普通用户(或者本地服务用户)令牌中九种权限的利用方法,分析利用思路,完善实现代码

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...