
为什么CVE-2020-0787-EXP能横扫所有Windows版本技术原理与实现【免费下载链接】CVE-2020-0787-EXP-ALL-WINDOWS-VERSIONSupport ALL Windows Version项目地址: https://gitcode.com/gh_mirrors/cv/CVE-2020-0787-EXP-ALL-WINDOWS-VERSIONCVE-2020-0787-EXP-ALL-WINDOWS-VERSION是一个针对Windows BITS后台智能传输服务漏洞的完整利用工具它能够支持所有Windows版本的系统提权攻击。这个工具利用Windows BITS服务中的任意文件移动漏洞实现从普通用户权限到SYSTEM权限的提权是安全研究人员进行Windows系统安全测试的重要工具。 CVE-2020-0787漏洞概述CVE-2020-0787是Windows BITSBackground Intelligent Transfer Service中的一个本地提权漏洞该漏洞允许攻击者将任意文件移动到系统目录中从而实现权限提升。这个漏洞影响了从Windows 7到Windows 10的所有版本包括服务器版本。漏洞核心原理BITS服务在处理文件传输时存在一个关键缺陷当BITS服务以SYSTEM权限运行时它会在临时目录中创建文件然后将这些文件移动到目标位置。攻击者可以通过符号链接和挂载点技术欺骗BITS服务将恶意文件移动到系统关键位置。 技术实现架构1. 工作空间准备工具首先创建一个精心设计的工作空间目录结构C:\workspace\ ├── mountpoint\ # 挂载点目录 ├── bait\ # 诱饵目录 └── FakeDll.dll # 恶意DLL文件这个结构在BitsArbitraryFileMove-master/BitsArbitraryFileMove/BitsArbitraryFileMove.h中明确定义是整个攻击的基础框架。2. 挂载点与符号链接技术攻击的核心在于挂载点和符号链接的巧妙运用创建初始挂载点C:\workspace\mountpoint\→C:\workspace\bait\触发BITS创建临时文件BITS服务在挂载点目录创建临时文件设置Oplock锁在临时文件上设置Oplock等待写入操作切换挂载点目标将挂载点重定向到\RPC Control创建符号链接通过符号链接将临时文件指向恶意DLL释放OplockBITS服务完成文件移动操作3. COM接口利用工具通过COM接口与BITS服务交互在BitsArbitraryFileMove-master/BitsArbitraryFileMoveExploit/BitsArbitraryFileMoveExploit.cpp中实现了完整的COM对象操作IBackgroundCopyManager管理BITS传输作业IBackgroundCopyJob控制具体的传输任务IBackgroundCopyCallback2处理回调事件 项目文件结构解析项目的核心文件组织清晰便于理解和修改BitsArbitraryFileMove-master/ ├── BitsArbitraryFileMove/ # 核心漏洞利用模块 │ ├── BitsArbitraryFileMove.cpp # 主实现文件 │ ├── BitsArbitraryFileMove.h # 头文件定义 │ └── CBitsCom.cpp # COM接口封装 ├── BitsArbitraryFileMoveExploit/ # 完整利用程序 │ └── BitsArbitraryFileMoveExploit.cpp └── CommonUtils/ # 通用工具函数 ├── CommonUtils.cpp ├── FileOpLock.cpp # 文件操作锁 ├── FileSymlink.cpp # 符号链接操作 └── ReparsePoint.cpp # 重解析点处理️ 为什么支持所有Windows版本通用性设计CVE-2020-0787-EXP-ALL-WINDOWS-VERSION之所以能够支持所有Windows版本主要基于以下几个设计特点版本无关的COM接口使用标准的BITS COM接口这些接口在所有Windows版本中保持一致文件系统原语依赖挂载点、符号链接等文件系统基本功能而非特定版本API自适应路径处理自动检测系统目录位置适应不同Windows版本的系统结构架构兼容性工具在设计时考虑了32位和64位系统的差异通过BitsArbitraryFileMove-master/BitsArbitraryFileMoveExploit/BitsArbitraryFileMoveExploit.cpp中的EnableWow64FSRedirector()和DisableWow64FSRedirector()函数处理文件系统重定向问题确保在64位系统上也能正确操作32位系统目录。 漏洞利用步骤详解第一步环境准备工具首先创建必要的工作目录和文件结构确保所有操作都在受控环境中进行。这一步在PrepareWorkspace()函数中实现。第二步BITS作业创建通过COM接口创建BITS传输作业设置源文件和目标文件路径。BITS服务会在临时位置创建文件副本准备后续的移动操作。第三步Oplock设置与等待在BITS创建的临时文件上设置Oplock锁等待BITS服务尝试写入文件。这是攻击的关键时机窗口。第四步挂载点切换当Oplock被触发时迅速切换挂载点的目标位置并创建指向恶意文件的符号链接。这个过程需要在毫秒级时间内完成。第五步权限提升完成BITS服务以SYSTEM权限完成文件移动操作将恶意DLL文件移动到系统目录实现权限提升。⚠️ 安全注意事项仅供研究目的根据项目声明这个工具仅供安全研究和教育目的使用。任何未经授权的系统入侵都是非法的。使用限制需要本地访问权限攻击者需要能够在目标系统上执行代码依赖BITS服务运行目标系统必须运行BITS服务需要重启或服务重启某些情况下需要重启系统或服务才能生效 防御与缓解措施微软官方补丁微软已经发布了针对CVE-2020-0787的安全更新建议所有Windows用户及时安装系统更新。临时缓解方案禁用BITS服务如果不使用BITS功能可以禁用该服务限制符号链接权限通过组策略限制普通用户创建符号链接的能力监控系统目录变更设置文件系统监控检测系统目录的异常文件变更 学习资源与进一步研究深入理解Windows安全机制要完全理解这个漏洞利用工具建议学习以下知识Windows文件系统机制挂载点、符号链接、重解析点COM组件技术接口定义、对象创建、方法调用进程权限模型用户权限、SYSTEM权限、令牌操作相关技术文档项目中的CommonUtils/目录包含了大量Windows系统编程的实用工具函数是学习Windows安全编程的优秀参考资料。 总结CVE-2020-0787-EXP-ALL-WINDOWS-VERSION展示了Windows系统安全中的一个经典漏洞模式通过文件系统原语和权限分离缺陷实现权限提升。这个工具不仅是一个实用的安全测试工具更是一个学习Windows系统安全机制的绝佳案例。通过分析这个工具的实现安全研究人员可以深入理解Windows BITS服务的工作原理、COM接口的安全风险以及文件系统攻击的技术细节。同时系统管理员也可以从中学习如何更好地保护自己的系统免受类似攻击。记住安全工具就像双刃剑正确使用可以增强系统安全错误使用则可能造成严重危害。始终在合法授权的环境中进行安全测试共同维护网络安全环境。【免费下载链接】CVE-2020-0787-EXP-ALL-WINDOWS-VERSIONSupport ALL Windows Version项目地址: https://gitcode.com/gh_mirrors/cv/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考