沉浸在AD中:我们分析了对Microsoft Active Directory的高级攻击以及如何检测到它们



图片: 像素

在过去的四年中,没有一个Black Hat或DEF CON收到关于Microsoft Active Directory攻击的报告。 与会者讨论了新媒介及其发明,但不要忘记有关如何检测和预防它们的技巧。 在本文中,我们将研究攻击AD的流行方法,并提供有助于防御AD的建议。

不可忽视的六种AD攻击


安全监视软件的许多制造商已经在其产品中支持多种攻击技术。 让我们考虑其中的一些。

哈希传递


由于Microsoft在上个世纪90年代开发的NTLM身份验证协议的体系结构功能,因此可以使用此技术。 为了登录到远程主机,使用密码哈希,该密码哈希存储在执行身份验证的计算机内存中。 因此,可以从那里提取它。

米米卡茨


为了方便哈希传递操作,法国研究人员本杰明·德尔皮(Benjamin Delpy)在2014年开发了mimikatz实用程序。 它允许从内存中转储明文密码和NTLM哈希。

蛮力


如果攻击者没有足够的凭据可以从一台主机中提取,则可以使用粗略但有效的密码猜测技术。

净用户/域


为了进行暴力破解,在哪里可以获得用户名字典? 域的任何成员都可以使用net user / domain命令,该命令从AD返回用户名的完整列表。

烤肉


如果域使用Kerberos作为身份验证协议,则攻击者可能会诉诸于Kerberoasting攻击。 在域中经过身份验证的任何用户都可以请求Kerberos票证来访问票证授予服务。 TGS使用运行目标服务的帐户的密码哈希进行加密。 这样获得了TGS的攻击者现在可以解密它,获取密码并且不必担心被阻止,因为它是离线进行的。 成功获得结果后,它将从与该服务关联的帐户接收一个密码,该密码通常具有特权。

执行程序


攻击者获得必要的凭据后,他将面临远程执行命令的任务。 Sysinternals套件中的PsExec实用程序非常适合此操作。 它已经在IT管理员和攻击者中证明了自己。

捕获Active Directory的七个攻击法术


现在,我们可以使用七个咒语,攻击者可以借此完全控制Active Directory。 我们将它们分为四个阶段:

  1. 情报。
  2. 公元促销。
  3. 操作。
  4. 域捕获。

在该图中,您可以看到所有四个以及它们所使用的技术。 让我们详细考虑每个。



阶段1.探索


让我们从情报阶段开始。

威视


该工具是流行的PowerShell渗透测试框架-PowerSploit的一部分 。 它还依赖BloodHound工具,该工具可在AD中构建对象关系图。



Active Directory对象关系的图形表示

猎犬可以立即提供以下功能:

  • 查找所有域管理员的帐户;
  • 查找已登录域管理员的主机;
  • 建立从攻击者主机到具有域管理会话的主机的最短路径。

最后一段给出了一个问题的答案,即哪些主机需要被黑客攻击才能进入域管理员帐户。 这种方法大大减少了获得对域的完全控制的时间。

PowerView与用于检索有关AD对象(例如net.exe)的数据的内置实用程序不同,因为它运行在LDAP协议而不是SAMR上。 来自域控制器的事件1644适合检测此活动。 通过在注册表中添加适当的值来启用此事件的日志记录:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostic\\15 Field Engineering = 5



启用LDAP事件记录1644



带有LDAP请求参数的事件1644

值得关注的事实是,可能存在很多此类事件,并且流量检测是事件检测的一个不错的选择,因为LDAP是明文协议,因此,流量中的所有请求都是完全可见的。



LDAP SearchRequest(单击以打开完整尺寸的图像)

该框架的另一个重要功能是它是用纯PowerShell编写的,并且没有依赖关系。 在这里,为了进行检测,PowerShell版本5中引入的高级审核功能将为我们提供帮助。 事件4104显示了脚本的主体,我们可以在其中搜索特定于PowerView的函数名称。



SPN扫描


它可以替代攻击者启动的nmap。 攻击者弄清楚AD中包含哪些用户和组之后,要了解情况,他将需要有关可用服务的信息。



这通常可以通过使用nmap扫描端口来解决。 但是现在,该信息也可以从AD中获取-它已经存储在此处。 您可以查看这种请求的结果:返回所谓的SPN(服务主体名称)。 SPN由一个服务类组成,它对于每种服务类型都是唯一的,然后以FQDN和某些服务(端口)的形式出现主机名。



Spn范例 服务主体名称的完整列表

为了检测SPN扫描,还可以进行LDAP事件审核。
重要的是要注意,SPN扫描相对于nmap扫描具有明显的优势:它的噪音较小。 使用nmap时,需要连接到每个节点并将数据包发送到您指定的端口范围。 而要获取SPN列表,您只需发送一个请求。

远程会话枚举


在横向移动阶段,攻击者的一项重要任务是确定哪个用户登录了哪台机器。 或者他已经具有用户凭据(哈希或Kerberos票证),并且他正在寻找可以无障碍登录的主机。 或者,他正在寻找存在实时域管理员会话的主机。

然后该方案起作用:搜寻->破坏任何主机-> Mimikatz海湾->利润。

您可以使用2个事件来检测此技术。 4624是在具有类型3登录以及IPC $网络访问事件的远程系统上成功登录,并且细微差别是管道的名称-srvsvc。 从流量中可以理解为什么如此称呼管道。



单击以打开完整尺寸的图像。

在左侧的红色框中,访问SMB,然后访问管道-srvsvc。 该管道允许您使用特殊的服务器服务远程协议进行交互。 它允许最终主机从中接收各种管理信息,包括 在查询中,有一个称为NetSessEnum。 作为此请求的结果,将返回使用IP和用户名登录到远程系统的用户的完整列表。



在MaxPatrol SIEM中,我们在考虑到srvsvc的情况下基于这两个事件的组合进行了检测。 以及在PT Network Attack Discovery中的类似流量检测。

第二阶段。广告宣传


跨哈希


哈希传递的轮回。 继续横向运动的主题。 如果攻击者拥有NTLM哈希,该怎么办? 他可以进行“哈希传递”攻击-但已经在她身上进行了侦查。 因此,发现了一个新的媒介-越过哈希攻击。

Kerberos协议是专门设计的,因此不会通过网络传输一种或另一种形式的用户密码。 为此,在其计算机上,用户使用其哈希来加密身份验证请求。 作为响应,密钥分发中心(在域控制器上托管的特殊服务)向他发出一张票证,以接收其他票证。 所谓的票务授予票证(TGT)。 现在,该客户端被视为已通过身份验证,并且可以在10小时内申请票证以访问其他服务。 因此,如果攻击者抛弃了属于他感兴趣的服务的受信组成员的用户的散列哈希,例如ERP系统或数据库,则攻击者可以为自己发出通行证并成功登录到他感兴趣的服务。



如何检测


如果攻击者使用PowerShell版本的mimikatz进行此攻击,则可以记录脚本正文来进行救援。 因为Invoke-Mimikatz是非常有特色的线。





或4688是具有高级命令行审核的流程开始事件。 即使将Binar重命名,在命令行上我们也会发现非常具有mimikatz特征的命令。



可以基于由Microsoft建议使用身份验证请求AES256对当前域进行加密的事实导致的异常检测到哈希流量。 而且,mimikatz在发送身份验证请求数据时,会使用过时的ARCFOUR对数据进行加密。



在流量方面,由于mimikatz的特征,还观察到了另一个差异。 它基于合法域中密码套件的差异以及mimikatz发送的内容。

金票


如果攻击者拥有名为krbtgt的特殊帐户的密码哈希,该怎么办? 之前,我们考虑了可以使用户没有特权的情况。 现在,我们正在考虑使用密码哈希值的用户,该密码哈希值中的所有其他票证(TGT)都绝对签名。 因此,攻击者不再访问密钥分发中心,而是由他自己生成此票证,因为黄金票证本质上是TGT。 然后,它可以在无限时间内将身份验证请求发送到AD内部的任何服务。 结果,他自由地转向了这一资源-黄金票并非没有理由被称为黄金票。



如何通过事件检测


事件4768表示已发出TGT,事件4769表示已发出服务票,这对于AD内部某些服务的身份验证是必需的。



在这里,我们可以发挥差异: 在攻击过程中,Golden Ticket不向域控制器请求TGT(它自己生成),而是需要请求TGS,如果我们发现接收到的TGT和TGS存在差异,则可以假定发生了Golden Ticket攻击。

在使用表列表的MaxPatrol SIEM中,我们记录了所有已发布的TGT和TGS,我们设法实现了这种检测。

WMI远程执行


解决了所需主机上的身份验证和授权任务后,攻击者可以开始远程执行任务。 WMI作为一种内置的设计机制,非常适合。 在过去的几年中,“摆脱困境”意味着趋势是使用内置的Windows机制。 首先,因为它允许您将自己伪装成合法活动。



在屏幕截图中,使用了内置的wmic实用程序。 它指定要连接的主机的地址,凭据,流程调用create语句以及必须在远程主机上运行的命令。

如何检测


在远程登录4624的一系列事件中(请注意
登录ID和事件4688引起的狂热,讨论使用命令行启动进程。 4688-您可以看到已启动进程的父级是WmiPrvSE.exe,这是用于远程管理的特殊WMI服务进程。 我们发送给net user / add的命令是可见的,并且登录ID匹配事件4624。因此,我们可以确切地说出此命令从哪个主机运行。



流量检测


在这里,我们清楚地看到了Win32进程创建的特征字,以及发送给启动的命令行。 在屏幕截图中,我们最近遇到了一种恶意软件,该恶意软件根据类似于WannaCry的原理分布在虚拟网络中,但是安装了一个矿工,而不是加密。 马尔瓦尔(Malvar)随身携带了mimikatz和EthernalBlue,她转储了帐户,并使用这些帐户登录到她可以通过网络访问的所有主机。 她使用WMI在它们上启动了PowerShell,下载了PowerShell负载,该负载又包含了mimikatz,EthernalBlue和矿工。 因此,获得了链反应。



1-3阶段的建议


1. 服务帐户的长而复杂的密码(> 25个字符)。 这不会使攻击者有机会进行喀伯鲁斯特攻击,因为 蛮力将花费很长时间。

2. 记录PowerShell 。 帮助发现使用许多高级工具来攻击AD

3. 迁移到Windows 10,Windows Server2016。Microsoft创建了Credential Guard:不再可以从内存中转储NTLM哈希和Kerberos票证

4. 严格划分角色 。 将AD,DC,所有服务器和工作机的管理员合并为一个角色是危险的

5. 两次更改密码krbtgt(这是TGT票证注册所使用的同一帐户) 。 每年。 在AD管理员离开AD之后:
  • 需要更改两次,因为 当前和先前的密码已存储,
  • 每年更改,包括 离开域管理员后。 即使网络已经受到攻击,并且攻击者已发行了黄金票,更改密码也会使该票无效。 再一次,他们需要重新开始。

6. 具有不断更新的专家知识库的补救措施 。 有必要检测实际的实际攻击。

阶段4.域捕获


DC阴影


2018年1月24日,在以色列举行的Microsoft BlueHat会议上,本杰明·德尔皮(Benjamin Delpy)和文森特·勒图克斯(Vincent Le Toux)引入了新的mimikatz模块,该模块实现了DCShadow攻击。 攻击的实质是创建一个伪造的域控制器,以通过复制在AD中修改和创建新对象。 研究人员设法隔离了完成复制过程所需的最小的Kerberos SPN集-他们只需要2个。此外,他们提出了一种特殊功能,可以强制复制控制器。 攻击的作者将其定位为会使您的SIEM失明的攻击。 因为 伪造的域控制器不会将事件发送到SIEM,这意味着攻击者可以使用AD进行各种黑暗操作,而SIEM对此一无所知。



攻击方式


在执行攻击的系统上,有必要添加2个SPN,这是必需的,以便其他域控制器可以使用Kerberos复制进行身份验证。 因为 根据规范,域控制器在AD数据库中由nTDSDSA类的对象表示;您必须创建这样的对象。 最后,使用DRSReplicaAdd函数调用复制。

如何检测


DCShadow在流量中的外观。 通过流量,我们可以清楚地看到在域控制器类型的配置方案中添加了新对象,然后强制开始复制



由于我们的关联知道合法的域控制器列表,因此当从不在此白名单中的域控制器进行复制时,将触发该关联。 因此,信息安全部门可能会进行调查,并且已经了解这是由IT服务或DCShadow攻击添加的合法域控制器。

结论


DCShadow示例显示,企业有新的攻击媒介。 在这片信息安全事件的海洋中,紧跟潮流是非常重要的:进一步观察并快速前进。 每天,我们PT专家安全中心都会研究新威胁并开发针对它们的检测方法和工具。 我们准备进一步分享这些信息。

正面技术攻击检测小组负责人Anton Tyurin 发表

Source: https://habr.com/ru/post/zh-CN423903/


All Articles