windows Domain 中文翻译为域,域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元。它是由所有的用户计算机,打印机,用户账户和其他的安全主体组成,被域控制器管理。 域是微软提供给企业的一个局域网管理措施,使得信息技术人员能高效的管理和维护局域网中所有的主机和用户。域位于每一个企业最核心的位置,在域上运行着大量的企业核心应用,如邮件系统,协同办公系统,文件共享系统等。 在网络渗透攻击中,攻击者如果获取了域的权限,那么攻击者就有可能获取公司的机密,控制公司的一切。所以域安全是企业安全最为核心的一个环节,并且微软对域本身也在进行不断的安全加固。 NSA泄漏的文档和工具让人们明白了网络的底层设备是多么的不堪一击,但是部分运维人员和安全人员仍然抱有幻想,只要养成正确的计算机使用习惯,不安全的底层网络很难威胁到域的安全,但是事实往往不是这样,Windows域本身十分脆弱,尤其是在不安全的网络环境中,因为域是基于信任底层网络进行设计和建造的。 本文将利用另外一种方法,完成从底层网络入侵windows域。 原理分析 当底层网络被攻陷,攻击者就能轻易的劫持流量,伪造网络节点。而劫持流量攻击最基本的设计思路就是建立在一个假设之上,如果劫持了某个设备,能达到什么目的。 如果劫持了域控,能达到什么目的? 基于这个假设,进行了一系列测试,拿出其中一个测试与大家共同研究。 在微软的官网上有如下描述: 组策略是在基于 Active Directory 域服务 (AD DS) 的网络上访问和配置计算机及用户设置的最轻松易行的方式。如果您的企业未在使用组策略,那么将会错失降低成本、控制配置、使用户保持卓有成效和愉悦的心情以及增强安全性的大好机会。可以将使用组策略进行配置视为“一举多得”。 域控通过组策略完成对域内机器的进行配置的一种方式,windows域机器每间隔一段时间就会向域控制器请求更新组策略,以保证自身使用着最新的域策略。更新的过程是,域成员机器每间隔 90min+random()*30min ,向域控请求策略版本号,这个版本号存在于域控的gpt.ini文件中,位于
文件夹中,文件内容为:
这个版本号如果等于自身版本号,那么系统就认为自身组策略是最新版本。然后重置计时器,等待下一个间隔去请求更新。 详细数据包请求过程如下图: 如果自身版本号小于返回的版本号,那么系统认为自身组策略以过时,就继续请求registry.pol 和GptTmpl.ini文件,详细数据包请求过程如下图: 而GptTmpl.inf文件,是一个模版文件,允许远程修改域成员的注册表。 如果劫持并且修改了GptTmpl.inf文件,就可以随意修改请求该文件域成员的注册表。利用劫持该文件入侵域的一种方式就是修改注册表给域机器添加启动项,等到机器重启时,就可以运行指定文件或者脚本。 但是面临着一个问题,必须等到该机器重新启动。该机器可能启动周期很长,攻击者的启动脚本或攻击payload存储的位置就必须持续保持,很不方便。之前CoreSecurity的测试POC时修改AppInit_DLL注册表键值,但是这个键值已经不启用很多年了。所以需要一个简便高效的方式。再经过多种利用测试之后,终于找到一种非常好用的方式,一个神奇的注册表键值:
通过修改这个键值,可以给任一windows程序添加一个debugger调试器。例如可以给cmd.exe添加一个调试器debugger.exe,这样你在启动cmd.exe 的时候,实际运行的为:
通过这种方式,可以给IE,Chrome或者其他什么用户可能会运行的程序添加一个调试器,这种方式明显会比等待用户重启要迅速的多。 即使是在用户权限受限制的情况下,依然可以通过组策略劫持的方式来对该机器的注册表进行修改。但是在劫持完成之后,必须对注册表进行清理,因为该调试程序不可能长久存在,那么之后用户可能无法启动该程序。并且修改键值需要管理员权限。 为了避免猜错用户使用的程序和较长的等待时间,经过多次测试找到了一个更好的解决办法。系统在更新组策略之后,会用系统权限创建一个新的进程 taskhost.exe ,即使该用户处于一个受限制的状态。所以给taskhost.exe程序创建一个调试器,这样就能在系统更新完粗策略后立刻获取一个system权限的shell。不需要漫长的等待,不需要重启,不需要用户的任何操作,一切都是静默中完成。 当然,这种劫持组策略执行命令的方式很早的时候就报告给了Microsoft,并且在2015年2月10日就发布安全公告 MS15-011并提供了补丁KB3000483。微软决定在用户端修复这个漏洞,强制使用“SMB Signing”。 但是,虽然这个漏洞在一年多前就已经发布安全公告,并且提供了相关补丁,但是这个补丁是默认不启用的。 在微软的官方公告中有这样一段话: This security update requires the following steps to be performed in order to protect against the vulnerability described in the bulletin (MS15-011). To enable this functionality, a system administrator must apply the following Group Policy settings in addition to installing security update 3000483. 其含义是: 系统管理员必须手动配置组策略,启用“UNC Hardened Access”来避免MS15-011漏洞所带来的安全风险。详细的配置策略在微软的官方网站,简单总结成了12个步骤,网页链接如下: https://support.microsoft.com/en-us/kb/3000483 微软认为这是一个漏洞,并且提供了相关的补丁。但是这个补丁并不是默认启用,必须管理员手动配置12个步骤才能启用。 所以该漏洞大多数环境中依然可以被当作0DAY来使用。 测试 实验测试步骤如下: 1. 准备存放payload的SMB服务器和相应的payload 在该测试中,在攻击者机器上启用了SMB共享,创建一个映射为SYSVOL的目录,命令如下:
或者直接使用界面开启共享,效果一样。在文件夹中创建树形结构,因为域机器在请求更新的时候只会请求固定位置的文件。文件结构如下:
最新评论
72小时资讯榜
2
英伟达联合微软发布128GB统一内存的NVIDIA
AI动态
268人已阅读
3
乐鑫重磅开源 ESP-Claw:把 Agent 塞进了 E
AI动态
283人已阅读
4
Desk Tidy Sticky: 开源免费、Windows 和 M
软件精选
277人已阅读
5
LibreTranslate - 纯本地翻译神器,支持49
软件学院
293人已阅读
6
Python逆天改命,开源Hermes首次击败OpenAI
AI动态
278人已阅读
社区热门
1
━※☆※━★===二〇二六年论坛每日签到帖=
2026-03-13
3
从上大学一直玩黑基 到现在已经37岁 感谢黑
2025-06-03
5
好久没来这里了,居然能正常登录,佩服站长
2025-05-19
6
好多年没来竟然还可以登录
2025-09-22
|