• 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

  • 相关阅读:
    Java程序设计-韩建平-读书笔记
    vue3后台管理框架之svg封装为全局组件
    小马模拟器 (支持Android系统)
    CMSC5724-关于分类问题、决策树问题以及一个关于误差的通理
    【MATLAB】立体透视
    Friedman检验和Nemenyi检验画图代码
    2022年亚太杯APMCM数学建模大赛C题全球变暖与否全过程文档及程序
    ML/DL2022面试必备500知识点-《机器和深度学习纲要》免费分享
    第九章·适配器模式
    python中的logging模块——将日志保存到文件中
  • 原文地址:https://blog.csdn.net/weixin_45715461/article/details/125547882