• CVE-2021-1732_Windows本地提权漏洞


    1 漏洞信息

    漏洞名称Windows本地提权漏洞
    漏洞编号CVE-2021-1732
    危害等级高危
    CVSS评分7.8
    漏洞类型二进制漏洞
    漏洞厂商微软
    漏洞组件操作系统
    受影响版本Windows Server, version 20H2 (Server Core Installation)
    Windows 10 Version 20H2 for ARM64-based Systems
    Windows 10 Version 20H2 for 32-bit Systems
    Windows 10 Version 20H2 for x64-based Systems
    Windows Server, version 2004 (Server Core installation)
    Windows 10 Version 2004 for x64-based Systems
    Windows 10 Version 2004 for ARM64-based Systems
    Windows 10 Version 2004 for 32-bit Systems
    Windows Server, version 1909 (Server Core installation)
    Windows 10 Version 1909 for ARM64-based Systems
    Windows 10 Version 1909 for x64-based Systems
    Windows 10 Version 1909 for 32-bit Systems
    Windows Server 2019 (Server Core installation)
    Windows Server 2019
    Windows 10 Version 1809 for ARM64-based Systems
    Windows 10 Version 1809 for x64-based Systems
    Windows 10 Version 1809 for 32-bit Systems
    Windows 10 Version 1803 for ARM64-based Systems
    Windows 10 Version 1803 for x64-based Systems
    漏洞概述CVE-2021-1732 是蔓灵花(BITTER)APT 组织在某次被披露的攻击行动中使用的 0day 漏洞,该高危漏洞可以在本地将普通用户进程的权限提升至最高的 SYSTEM 权限。

    2 漏洞原理

    1. 漏洞发生在Windows 图形驱动win32kfull!NtUserCreateWindowEx中。

    2. 当驱动win32kfull.sys调用NtUserCreateWindowEx创建窗口时会判断tagWND->cbWndExtra(窗口实例额外分配内存数),该值不为空时调用win32kfull!xxxClientAllocWindowClassExtraBytes函数回调用户层user32.dll!__xxxClientAllocWindowClassExtraBytes创建内存,分配后的地址使用NtCallbackReturn函数修正堆栈后重新返回内核层并保存并继续运行,而当tagWND->flag值包含0x800属性时候对该值采用offset 寻址。

    3. 使用NtUserConsoleControl修改flag包含0x800属性。

    总的来说,漏洞是由win32kfull!xxxCreateWindowEx函数内一处由用户态回调导致的flag位设置与对应偏移设置不同步所导致的。

    3 环境搭建

    3.1 环境概述

    • Linux操作系统(kali)

    • Windows 10 操作系统(1909)

    • https://github.com/Ascotbe/Kernelhub(利用工具)

    3.2 搭建过程

    去https://msdn.itellyou.cn/下载1909镜像然后进行安装即可

    img

    4 漏洞复现

    创建一个普通的用户并且登录

    img

    运行exe文件,执行whoami命令,发现成功由普通用户权限提升到了系统权限

    CVE-2021-1732.exe "whoami"
    
    • 1

    img

    利用该工具,我们可以把普通用户test加入到管理员组中,来达到提权管理员的目的

    CVE-2021-1732.exe "net localgroup Administrators test /add"
    
    • 1

    img

    查看是否成功加入到管理员用户组中,发现加入成功

    net user test
    
    • 1

    img

    由于在运行脚本的时候,是提权到系统权限的,所以我们还可以来运行MSF生成的后门文件,来达到不需要其他提权方式就达到获取系统权限的shell效果。

    CVE-2021-1732.exe 622.exe(后门文件)
    
    • 1

    img

    img)

    5 修复建议

    打微软官方的补丁https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-1732

  • 相关阅读:
    LOGO特训营 第一节 鉴别Logo与Logo设计思路
    程序人生 | 测试工程师还只会点点点?7个捷径教给你快速学习新技术...
    力扣:655. 输出二叉树
    Servlet执行流程&&Servlet 生命周期
    Java核心知识:日期和时间总结 -- Date、DateFormat、Calendar
    助力安全生产--韩施电气为您提供电动机保护及电机故障解决方
    (附源码)ssm产品裂变管理系统 毕业设计 100953
    空天地海协同应用综述
    强制用户使用定向推送功能是什么意思?整改措施请收好
    MySQL使用简单教程
  • 原文地址:https://blog.csdn.net/weixin_45715461/article/details/125547882