正文
首先使用当前会话对SMB服务器进行身份验证:
首先使用当前会话对SMB服务器进行身份验证
然后从服务器端获取NTLMv2哈希。
然后从服务器端获取NTLMv2哈希
最后使用单词列表和破解工具(下面是_hashcat_)破解它。密码已破解。
最后使用单词列表和破解工具(下面是hashcat)破解它。密码已破解
另一种方法可以使用明文存储的密码,利用像非常有趣的CVE-2023-21726这样的漏洞,这是OOBE进程中发现的权限提升漏洞,将本地管理员凭证以明文形式存储在任何人都可读的HKU注册表值中。有关更多详细信息,请阅读gmo-cybersecurity报告。
密码存储在:
HKEY\_USERS\\.DEFAULT\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\OOBE\\Broker\\LocalSystemAuthBuffer
RunLevel HIGHEST – 访问拒绝绕过
同样,从中等完整性提升到高完整性后,对于我们的任务以SYSTEM身份运行来说还不够。使用批处理登录模拟管理员用户并不保证能够以SYSTEM身份运行,因为它本来就不打算以提升的方式运行。如果我们在方法中添加**/RL HIGHEST**标志,我们会得到_访问拒绝_。
但要解决这个问题,我们可以通过创建临时任务将我们的权限提升到
高
,使用前面提到的UAC绕过,然后从内部创建我们的SYSTEM主任务:
使用临时计划任务进行SYSTEM执行的提升任务创建序列
使用批处理登录的基于凭证的模拟
由于SYSTEM执行了运行任务的主体用户的模拟,被模拟的用户必须具有批处理登录权限。
这一点不是漏洞,而更多是一个功能,以及执行横向移动和获取Windows和Active Directory利用的枢轴选项的策略。
默认授予批处理登录的组有:
任何低权限用户都可以利用
schtasks.exe
二进制文件并模拟这些组中具有已知密码的成员,以获得最大允许权限。
以下解释揭示了有关这些组的额外信息。
管理员
对于管理员组,通过使用本地管理员密码,任何低权限用户都可以使用前面提到的
schtasks
方法(参见上一部分)模拟SYSTEM权限。
为了使其工作,我们可以像之前在UAC上所做的那样操作 - 从中等到系统。请注意,我们以低权限用户身份运行,因此无法查询我们自己创建的SYSTEM任务。但我们可以直接从
System32\Tasks
查询文件的XML。
通过模拟本地管理员创建的SYSTEM级别任务的屏幕截图
性能日志用户
该组以臭名昭著的CVE-2024-38061和优秀的Decoder's Blog关于他的发现的帖子而闻名。
该漏洞可能允许
分布式COM用户
和
性能日志用户
的成员远程启动、激活和分发COM对象,通过强制+NTLM中继攻击(Bloodhound)危及登录在DC上的用户。
修补后,上述组的用户似乎仍然拥有提到的权限,并且可以在本地利用它们,但不再启用远程登录权限。请注意,由于它具有批处理登录权限,因此可以使用_schtasks_登录。
备份操作员
授予备份SAM、SECURITY和SYSTEM注册表配置单元的权限,导致本地/域PE和DCSYNC。
来源:BackupOperatorToDA,impacket-reg。
在备份操作员组用户的常规会话上下文中运行时,我们无法对敏感文件和注册表配置单元执行备份。
在典型情况下会发生这种情况:一个持久的基于schtasks的反向shell,在备份操作员用户的上下文中运行,带有其
InteractiveToken
。
一个持久的基于schtasks的反向shell,在备份操作员用户的上下文中运行,带有其InteractiveToken