破坏活动目录
OSINT
访问第一组 AD 凭据的两种常用方法是开源情报 (OSINT) 和网络钓鱼。我们在这里只简要提及这两种方法,因为它们已经在其他房间中进行了更深入的介绍。
OSINT 用于发现已公开披露的信息。就 AD 凭据而言,发生这种情况可能有多种原因,例如:
在公共论坛(如 Stack Overflow)上提问但在问题中披露敏感信息(例如其凭据)的用户。
使用硬编码凭据将脚本上传到 Github 等服务的开发人员。
由于员工使用其工作帐户注册其他外部网站,因此在过去违规行为中披露的凭据。HaveIBeenPwned和DeHashed等网站提供了很好的平台来确定某人的信息(如工作电子邮件)是否曾经涉及公开的数据泄露事件。
通过使用 OSINT 技术,可以恢复公开披露的凭据。如果我们有幸找到凭据,我们仍然需要找到一种方法来测试它们是否有效,因为 OSINT 信息可能已经过时。在任务 3 中,我们将讨论 NTLM 身份验证服务,它可能提供测试凭据以查看它们是否仍然有效的极好途径。
有关红队OSINT的详细房间可以在这里找到。
网络钓鱼
网络钓鱼是另一种破坏 AD 的绝佳方法。 网络钓鱼通常会诱使用户在恶意网页上提供其凭据,或要求他们运行将在后台安装远程访问木马 (RAT) 的特定应用程序。这是一种流行的方法,因为 RAT 将在用户的上下文中执行,立即允许您模拟该用户的 AD 帐户。这就是为什么网络钓鱼对红队和蓝队来说都是一个如此大的话题。
新技术 LAN 管理器 (NTLM) 是一套安全协议,用于在 AD 中验证用户的身份。NTLM 可以通过使用称为 NetNTLM 的基于质询响应的方案进行身份验证。网络上的服务大量使用此身份验证机制。但是,使用 NetNTLM 的服务也可能暴露在互联网上。以下是一些流行的例子:
内部承载的 Exchange (邮件) 服务器,用于公开 Outlook Web App (OWA) 登录门户。
向互联网公开的服务器的远程桌面协议 (RDP) 服务。
公开与 AD 集成的 VPN 终结点。
面向互联网并使用 NetNTLM 的 Web 应用程序。
NetNTLM(通常也称为 Windows 身份验证或简称为 NTLM 身份验证)允许应用程序在客户端和 AD 之间扮演中间人的角色。所有身份验证材料都以质询的形式转发到域控制器,如果成功完成,应用程序将对用户进行身份验证。
这意味着应用程序代表用户进行身份验证,而不是直接在应用程序本身上对用户进行身份验证。这可以防止应用程序存储 AD 凭据,这些凭据应仅存储在域控制器上。
暴力登录攻击
如任务 2 中所述,这些公开的服务为测试使用其他方式发现的凭据提供了绝佳的位置。但是,这些服务也可以直接用于尝试恢复一组初始的有效 AD 凭据。如果我们在最初的红队侦察期间恢复了诸如有效电子邮件地址之类的信息,我们也许可以尝试将这些用于暴力攻击。
由于大多数 AD 环境都配置了帐户锁定,因此我们将无法运行完全暴力攻击。相反,我们需要执行密码喷射攻击。我们没有尝试多个不同的密码(这可能会触发帐户锁定机制),而是选择并使用一个密码并尝试使用我们获得的所有用户名进行身份验证。但是,应该注意的是,由于这些类型的攻击将生成失败的身份验证尝试次数,因此可以检测到这些类型的攻击。
您已经获得了在红队 OSINT 练习中发现的用户名列表。OSINT活动还显示了该组织的初始入职密码,似乎是“Changeme123”。尽管用户应始终更改其初始密码,但我们知道用户经常忘记。我们将使用自定义开发的脚本来针对托管在此 URL 上的 Web 应用程序进行密码喷射
我们可以使用Hydra等工具来协助密码喷涂攻击。但是,通常最好自己编写这些类型的攻击脚本,这样您就可以更好地控制该过程。
LDAP回传攻击
可以针对LDAP身份验证机制执行另一种非常有趣的攻击,称为LDAP回传攻击。当您获得对内部网络的初始访问权限(例如在会议室中插入恶意设备)时,这是针对网络设备(如打印机)的常见攻击。
当我们访问指定了LDAP参数的设备配置时,可以执行LDAP回传攻击。例如,这可以是网络打印机的 Web 界面。通常,这些接口的凭据保留为默认凭据,例如 或 。在这里,我们将无法直接提取LDAP凭据,因为密码通常是隐藏的。但是,我们可以更改 LDAP 配置,例如 LDAP 服务器的 IP 或主机名。在 LDAP 回传攻击中,我们可以将此 IP 修改为我们的 IP,然后测试 LDAP 配置,这将强制设备尝试对我们的流氓设备进行 LDAP 身份验证。我们可以拦截此身份验证尝试以恢复 LDAP 凭据
实质上,在打印机发送凭据之前,它会尝试协商LDAP身份验证方法详细信息。它将使用此协商来选择打印机和 LDAP 服务器都支持的最安全的身份验证方法。如果身份验证方法过于安全,则不会以明文形式传输凭据。使用某些身份验证方法,凭据根本不会通过网络传输!因此,我们不能只使用普通的Netcat来收集凭据。我们需要创建一个流氓 LDAP 服务器并对其进行不安全的配置,以确保凭据以明文形式发送
托管恶意 LDAP 服务器
有几种方法可以托管流氓LDAP服务器,但在本例中我们将使用OpenLDAP。如果您使用的是AttackBox,则OpenLDAP已经为您安装。但是,如果您使用的是自己的攻击机器,则需要使用以下命令安装 OpenLDAP:
sudo apt-get update && sudo apt-get -y install slapd ldap-utils && sudo systemctl enable slapd
但是,您还必须在AttackBox上配置自己的流氓LDAP服务器。我们将首先使用以下命令重新配置 LDAP 服务器:
sudo dpkg-reconfigure -p low slapd
在使用流氓 LDAP 服务器之前,我们需要通过降级支持的身份验证机制来使其易受攻击。我们希望确保我们的LDAP服务器仅支持PLAIN和LOGIN身份验证方法。为此,我们需要创建一个新的 ldif 文件,调用内容如下:
#olcSaslSecProps.ldif
dn: cn=config
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=0,passcred
现在我们可以通过以下方式使用 ldif 文件修补我们的 LDAP 服务器:
sudo ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcSaslSecProps.ldif && sudo service slapd restart
捕获ldap凭据
tcpdump -SX -i breachad tcp port 389
服务器消息块
服务器消息块 (SMB) 协议允许客户端(如工作站)与服务器(如文件共享)通信。在使用 Microsoft AD 的网络中,SMB 管理从网络间文件共享到远程管理的所有内容。甚至您的计算机在尝试打印文档时收到的“缺纸”警报也是 SMB 协议的工作。
但是,早期版本的SMB协议的安全性被认为不足。发现了几个漏洞和漏洞,可以利用这些漏洞和漏洞来恢复凭据,甚至在设备上执行代码。尽管其中一些漏洞已在较新版本的协议中得到解决,但由于遗留系统不支持它们,组织通常不会强制使用较新版本。我们将研究使用 SMB 进行 NetNTLM 身份验证的两种不同漏洞:
由于可以拦截NTLM挑战,因此我们可以离线使用 破解技术以恢复相关的密码 与 NTLM 挑战。然而,这种开裂过程是显着的 比直接破解 NTLM 哈希慢。
我们可以使用 我们的流氓设备在中间上演一个人的攻击,中继SMB 客户端和服务器之间的身份验证,这将为我们提供 经过身份验证的活动会话和对目标服务器的访问。
LLMNR、NBT-NS、和WPAD
在此任务中,我们将稍微了解一下使用 SMB 期间发生的身份验证。我们将使用 Responder 尝试拦截 NetNTLM 质询以破解它。网络上通常有很多这样的挑战。某些安全解决方案甚至执行整个 IP 范围的扫描,以从主机恢复信息。有时由于 DNS 记录过时,这些身份验证质询最终可能会击中您的流氓设备而不是预期的主机。
响应程序允许我们通过在 NetNTLM 身份验证期间毒害响应来执行中间人攻击,诱骗客户端与您交谈,而不是他们想要连接到的实际服务器。在真正的 LAN 上,响应程序将尝试毒害任何本地链路 组播名称解析 (LLMNR)、NetBIOS 名称施维雅 (NBT-NS) 和 检测到的 Web 代理自动发现 (WPAD) 请求。在大 Windows网络,这些协议允许主机 对同一本地上的所有主机执行自己的本地 DNS 解析 网络。而不是使 DNS 等网络资源负担过重 服务器,主机可以首先尝试确定它们是否是主机 通过发送 LLMNR 请求在同一本地网络上查找 并查看是否有任何主机响应。NBT-NS是前体 LLMNR的协议,并且发出WPAD请求以尝试找到代理 未来的 HTTP(s) 连接。
由于这些协议依赖于 请求在本地网络(我们的流氓设备)上广播 也会收到这些请求。通常,这些请求只会 被丢弃,因为它们不适合我们的主人。但是,响应程序 会主动监听请求并发送中毒回复 告诉请求主机我们的 IP 与 请求的主机名。通过毒害这些请求,响应程序尝试 强制客户端连接到我们的攻击框。在同一个 行,它开始托管多个服务器,如 SMB、HTTP、SQL 和 其他人捕获这些请求并强制进行身份验证。
拦截 NetNTLM 挑战
需要注意的一点是,Responder 实质上试图通过毒害连接来赢得争用条件,以确保您拦截连接。这意味着响应程序通常仅限于在本地网络上毒害身份验证质询。由于我们通过 VPN 连接到网络,因此我们只能毒害此 VPN 网络上发生的身份验证挑战。出于这个原因,我们模拟了一个可能被毒害的身份验证请求,该请求每 30 分钟运行一次。这意味着您可能需要稍等片刻才能拦截 NetNTLM 质询和响应。
尽管从连接到组织 LAN 的流氓设备执行时,响应程序能够拦截和毒害更多身份验证请求,但了解此行为可能会造成破坏并因此被检测到至关重要。通过毒害身份验证请求,正常的网络身份验证尝试将失败,这意味着用户和服务将无法连接到他们想要的主机和共享。在安全评估中使用响应程序时,请记住这一点。
响应程序已安装在攻击框上。但是,如果您不使用 AttackBox,则可以从以下存储库下载并安装它:https://github.com/lgandx/Responder。我们将响应程序设置为在连接到 VPN 的接口上运行:
sudo responder -I tun0
转播挑战
然而,在某些情况下,我们可以更进一步,尝试传达挑战,而不仅仅是直接捕捉挑战。在没有事先了解帐户的情况下,这有点困难,因为这种攻击取决于关联帐户的权限。我们需要一些对我们有利的事情:
SMB 签名应禁用或启用,但不强制执行。当我们执行中继时,我们会对请求进行微小的更改以传递它。如果启用了 SMB 签名,我们将无法伪造邮件签名,这意味着服务器将拒绝它。
关联的帐户需要服务器上的相关权限才能访问请求的资源。理想情况下,我们希望通过服务器中继具有管理权限的帐户的挑战和响应,因为这将使我们能够在主机上站稳脚跟。
由于我们在技术上还没有 AD 立足点,因此需要对哪些帐户对哪些主机具有权限进行一些猜测。如果我们已经违反了 AD,我们可以先执行一些初始枚举,这通常是这种情况。
这就是为什么盲接力通常不受欢迎的原因。理想情况下,首先使用其他方法违反 AD,然后执行枚举以确定与已泄露的帐户关联的权限。从这里,您通常可以执行横向移动以跨域提升权限。但是,从根本上了解中继攻击的工作原理还是不错的,如下图所示:
![](https://tryhackme-images.s3.amazonaws.com/user-uploads/6093e17fa004d20049b6933e/room-content/a58a212acb6b6a01118c531eed63b90a.png)
微软部署工具包
MDT 和 SCCM
Microsoft Deployment Toolkit (MDT) 是 Microsoft 的一项服务 协助自动化微软操作系统的部署 (操作系统)。大型组织使用 MDT 等服务来帮助部署新的 他们资产中的图像更有效,因为基础图像可以是 在中心位置进行维护和更新。
通常,MDT 与 Microsoft 的系统中心配置管理器 (SCCM) 集成,后者管理所有 Microsoft 应用程序、服务和操作系统的所有更新。MDT 用于新部署。从本质上讲,它允许 IT 团队预配置和管理启动映像。因此,如果他们需要配置新机器,他们只需要插入网线,一切都会自动发生。他们可以对启动映像进行各种更改,例如已经安装了默认软件(如 Office365)和组织选择的防病毒软件。它还可确保在首次运行安装时更新新版本。
SCCM几乎可以看作是MDT的扩展和老大哥。安装软件后会发生什么情况?好吧,SCCM执行这种类型的补丁管理。它允许 IT 团队查看整个资产中安装的所有软件的可用更新。团队还可以在沙盒环境中测试这些修补程序,以确保它们稳定,然后再将它们集中部署到所有加入域的计算机。它使IT团队的生活变得更加轻松。
但是,任何提供基础设施集中管理(如 MDT 和 SCCM)的东西也可能成为攻击者的目标,试图接管资产中的大部分关键功能。尽管可以通过多种方式配置 MDT,但对于此任务,我们将专门关注称为预启动执行环境 (PXE) 启动的配置。
PXE 启动
大型组织使用 PXE 启动来允许连接到网络的新设备直接通过网络连接加载和安装操作系统。MDT 可用于创建、管理和托管 PXE 启动映像。PXE 引导通常与 DHCP 集成,这意味着如果 DHCP 分配了 IP 租约,则允许主机请求 PXE 引导映像并启动网络操作系统安装过程。通信流程如下图所示:
![](https://tryhackme-images.s3.amazonaws.com/user-uploads/6093e17fa004d20049b6933e/room-content/8117a18103e98ee2ccda91fc87c63606.png)
执行该过程后,客户端将使用 TFTP 连接下载 PXE 启动映像。我们可以将 PXE 启动映像用于两个不同的目的:
注入权限提升向量(如本地管理员帐户),以便在 PXE 启动完成后获得对操作系统的管理访问权限。
执行密码抓取攻击以恢复安装期间使用的 AD 凭据。
在此任务中,我们将重点关注后者。我们将尝试在安装期间恢复与 MDT 服务关联的部署服务帐户,以应对此密码抓取攻击。此外,还可以检索用于无人值守安装和应用程序和服务的其他AD帐户。
BCD 文件。这些文件存储与不同类型的体系结构的PXE引导相关的信息。
在bcd文件中包含wim文件的路径。WIM 文件是窗口映像格式 (WIM) 的可启动映像.
Import-Module .\PowerPXE.ps1
Get-WimFile -bcdFile BCDFile
Get-FindCredentials -WimFile WIMFile
配置文件凭据
我们将在此网络中探索的最后一个枚举途径是配置文件。假设您足够幸运地造成了一次违规行为,使您可以访问组织网络上的主机。在这种情况下,配置文件是尝试恢复 AD 凭据的绝佳途径。根据被破坏的主机,各种配置文件可能对枚举有价值:
Web 应用程序配置文件
服务配置文件
注册表项
集中部署的应用程序
但是,在此任务中,我们将重点介绍如何从集中部署的应用程序恢复凭据。通常,这些应用程序需要一种方法在安装和执行阶段向域进行身份验证。此类应用程序的一个示例是 McAfee Enterprise Endpoint Security,组织可以将其用作安全终端检测和响应工具。
McAfee 将安装期间用于连接回业务流程协调程序的凭据嵌入到名为 ma.db 的文件中。可以使用对主机的本地访问权限检索和读取此数据库文件,以恢复关联的 AD 服务帐户。在本练习中,我们将再次使用 THMJMP1 上的 SSH 访问。
ma.db文件存储在固定位置:
C:\ProgramData\McAfee\Agent\DB
可以遵循大量攻击途径来破坏 AD。我们介绍了在这个网络中的红队演习中经常使用的一些方法。由于攻击面的庞大规模,不断发现恢复第一组 AD 凭据的新途径。需要构建适当的枚举方法并不断更新它才能找到初始凭据对。
缓解措施
在缓解措施方面,组织可以采取一些步骤:
用户意识和培训 - 网络安全链中最薄弱的环节几乎总是用户。培训用户并让他们意识到他们应该小心披露敏感信息(如凭据),并且不信任可疑电子邮件,从而减少这种攻击面。
限制 AD 服务和应用程序的在线公开 - 并非所有应用程序都必须可从 Internet 访问,尤其是那些支持 NTLM 和 LDAP 身份验证的应用程序。相反,这些应用程序应放置在可通过VPN访问的内部网中。然后,VPN 可以支持多因素身份验证以增加安全性。
强制实施网络访问控制 (NAC) - NAC 可以防止攻击者连接网络上的恶意设备。但是,这将需要相当多的努力,因为合法设备必须被列入允许列表。
强制实施 SMB 签名 - 通过强制实施 SMB 签名,无法进行 SMB 中继攻击。
遵循最小特权原则 - 在大多数情况下,攻击者将能够恢复一组 AD 凭据。通过遵循最小特权原则,特别是对于用于服务的凭据,可以显著降低与这些凭据被泄露相关的风险。