上个星期刚把域控的部分看了一遍

image-20230904210903273

这是本题的这个网络拓扑图

搭建环境就不多说了 跟着做就行了

破坏AD域的几种方法

image-20230905111806257

image-20230905111654897

以下技术来恢复此网络中的 AD 凭据:

开源情报 (OSINT) 和网络钓鱼

开始可以先从这里来获取情报

获取第一组 AD 凭据的两种流行方法是开源情报 (OSINT) 和网络钓鱼

这些地方可能都会导致凭证泄露

HaveIBeenPwned 和 DeHashed 等网站提供了出色的平台,可以确定某人的信息(例如工作电子邮件)是否曾经涉及公开的数据泄露事件。

NTLM 验证服务

新技术 LAN 管理器 (NTLM) 是一套用于在 AD 中验证用户身份的安全协议。 NTLM 可用于通过使用称为 NetNTLM 的基于质询-响应的方案进行身份验证。这种身份验证机制被网络上的服务大量使用。但是,使用 NetNTLM 的服务也可以暴露在互联网上。以下是一些流行的例子:

  • Internally-hosted Exchange (Mail) servers that expose an Outlook Web App (OWA) login portal.
    公开 Outlook Web App (OWA) 登录门户的内部托管 Exchange(邮件)服务器。
  • Remote Desktop Protocol (RDP) service of a server being exposed to the internet.
    暴露于互联网的服务器的远程桌面协议(RDP)服务。
  • Exposed VPN endpoints that were integrated with AD.
    与 AD 集成的公开 VPN 端点。
  • Web applications that are internet-facing and make use of NetNTLM.
    面向互联网并使用 NetNTLM 的 Web 应用程序。

NetNTLM,通常也称为 Windows 身份验证或 NTLM 身份验证,允许应用程序扮演客户端和 AD 之间的中间人的角色。所有身份验证材料都以质询的形式转发到域控制器,如果成功完成,应用程序将对用户进行身份验证。

这意味着应用程序代表用户进行身份验证,而不是直接在应用程序本身上对用户进行身份验证。这可以防止应用程序存储 AD 凭据,该凭据应仅存储在域控制器上。这个过程如下图所示:

img

这个图很好的进行解释了

暴力登录攻击

这里的话我们采用的不是密码爆破 因为这样子账户被锁

这里采用的是密码喷射攻击 就是用同一个密码来爆破账户进行攻击

(可以这样做的原因是因为刚入职的员工密码都是固定的 如果没有修改的话就可以爆破成功)

以下是更加详细的解释

由于大多数 AD 环境都配置了帐户锁定,因此我们无法运行完整的暴力攻击。相反,我们需要执行密码喷射攻击。我们不会尝试多个不同的密码,这可能会触发帐户锁定机制,而是选择并使用一个密码并尝试使用我们获得的所有用户名进行身份验证。但是,应该注意的是,由于这些类型的攻击将生成大量失败的身份验证尝试,因此可以检测到这些类型的攻击。

image-20230905113707762

写个脚本 批量来打 这样就可以了

LDAP 绑定凭证

image-20230905115048701

这是和NTLM协议的差别

应用程序可以使用的另一种 AD 身份验证方法是轻量级目录访问协议 (LDAP) 身份验证。 LDAP 身份验证与 NTLM 身份验证类似。但是,通过 LDAP 身份验证,应用程序可以直接验证用户的凭据。该应用程序有一对 AD 凭据,可以首先使用它们来查询 LDAP,然后验证 AD 用户的凭据。

LDAP 身份验证是与 AD 集成的第三方(非 Microsoft)应用程序的一种流行机制。其中包括应用程序和系统,例如:

  • Gitlab
  • Jenkins 詹金斯
  • Custom-developed web applications
    定制开发的网络应用程序
  • Printers 打印机
  • VPNs VPN

这个的话比较方便 因为这个不是像NTLM协议一样限制于windows

如果这些应用程序或服务中的任何一个暴露在互联网上,则可以使用与针对 NTLM 身份验证系统的攻击相同类型的攻击。然而,由于使用 LDAP 身份验证的服务需要一组 AD 凭据,因此它开辟了额外的攻击途径。本质上,我们可以尝试恢复服务使用的 AD 凭据,以获得对 AD 的经过身份验证的访问。通过LDAP进行认证的流程如下所示:

img

LDAP Pass-back Attacks LDAP 回传攻击

然而,可以针对 LDAP 身份验证机制执行另一种非常有趣的攻击,称为 LDAP 回传攻击。当您获得对内部网络的初始访问权限(例如在会议室中插入恶意设备)时,这是针对网络设备(例如打印机)的常见攻击。

当我们访问指定 LDAP 参数的设备配置时,可以执行 LDAP 回传攻击。例如,这可以是网络打印机的 Web 界面。通常,这些接口的凭据保留为默认凭据,例如 admin:adminadmin:password 。在这里,我们无法直接提取 LDAP 凭据,因为密码通常是隐藏的。但是,我们可以更改 LDAP 配置,例如 LDAP 服务器的 IP 或主机名。在 LDAP 回传攻击中,我们可以将此 IP 修改为我们的 IP,然后测试 LDAP 配置,这将强制设备尝试对我们的恶意设备进行 LDAP 身份验证。我们可以拦截此身份验证尝试以恢复 LDAP 凭据。

使用这个攻击的话就是主要跟他的这个LDAP的两次绑定有关

主要就是进行第一次绑定的LDAP请求绑定包的抓取

(就是上面图片步骤2的过程)

执行LDAP回传

image-20230905200039028

假如我们插入了恶意设备 获取了这个打印机的后台设置界面

这里的话这个LDAP验证流程就和上面的那个图一样

这里搭建的LDAP服务器的流程就不写了 thm直接自己看就行了

1
2
3
4
5
6
7
8
9
sudo tcpdump -SX -i breachad tcp port 389
//抓包指令


在给出的命令 tcpdump -SX -i breachad tcp port 389 中,-i breachad 是一个选项用于指定要捕获数据包的网络接口。
具体解释如下:
-i:这是 tcpdump 命令中用于指定要捕获数据包的网络接口的选项。
breachad:这是参数,表示要使用名为 "breachad" 的网络接口。通常,网络接口名称可以是网卡设备(例如 eth0、enp2s0)或其他虚拟接口。
因此,在给定命令中,通过 -i breachad 指定了将从名为 "breachad" 的网络接口上捕获 TCP 端口号为 389 的数据包。

image-20230905201717038

因为搭建LDAP恶意服务器的时候设置的明文传输 所以就抓包的时候就可以直接看到密码

Authentication Relays 身份验证中继

服务器消息块 (SMB) 协议允许客户端(如工作站)与服务器(如文件共享)进行通信。在使用 Microsoft AD 的网络中,SMB 负责管理从网络间文件共享到远程管理的所有事务。即使当您尝试打印文档时计算机收到的“缺纸”警报也是 SMB 协议的作用。

然而,早期版本的 SMB 协议的安全性被认为是不够的。发现了多个漏洞和漏洞,可用于恢复凭据,甚至在设备上执行代码。尽管其中一些漏洞在协议的新版本中得到了解决,但组织通常不会强制使用更新的版本,因为遗留系统不支持它们。我们将研究使用 SMB 进行 NetNTLM 身份验证的两种不同漏洞:

  • 由于NTLM Challenges可以被拦截,我们可以使用离线破解技术来恢复与NTLM Challenge相关的密码。然而,这种破解过程比直接破解 NTLM 哈希要慢得多。
  • 我们可以使用我们的流氓设备发起中间人攻击,在客户端和服务器之间中继 SMB 身份验证,这将为我们提供主动的经过身份验证的会话以及对目标服务器的访问。

这里接下来讲的东西有点难理解

这里的话先讲一下这个在SMB期间发生的身份验证 我们将使用 Responder 尝试拦截 NetNTLM 挑战来破解它

1
2
3
4
LLMNR, NBT-NS, and WPAD LLMNR、NBT-NS 和 WPAD

//这些就是在SMB身份验证期间可能会利用到的协议

LLMNR(Link-Local Multicast Name Resolution)、NBT-NS(NetBIOS Name Service)和WPAD(Web Proxy Auto-Discovery)这几个协议在SMB(Server Message Block)身份验证过程中可能会被使用到。

  1. LLMNR:LLMNR是一种用于本地网络上主机名解析的协议。当Windows系统无法通过DNS解析主机名时,它会尝试使用LLMNR来寻找其他设备并获取其IP地址。攻击者可以利用LLMNR欺骗目标系统,并截获其发出的名称查询请求,从而进行中间人攻击或捕获用户凭据。
  2. NBT-NS:NBT-NS是NetBIOS服务的一部分,在Windows操作系统中负责将NetBIOS名称转换为IP地址。类似于LLMNR,攻击者可以通过发送恶意响应来欺骗目标系统,并截取其发出的名称查询请求以获取敏感信息或执行中间人攻击。
  3. WPAD:WPAD协议用于自动配置Web代理设置。客户端设备通常会根据DHCP服务器提供的选项、DNS记录或本地配置查找代理服务器。如果开启了WPAD功能且未正确配置安全控制,那么恶意用户可以利用此漏洞设置一个恶意代理服务器,并拦截所有流经该代理服务器的HTTP请求,包括SMB身份验证中的凭据信息。

因此,攻击者可以利用LLMNR、NBT-NS和WPAD协议的弱点来执行中间人攻击或窃取用户凭据。为了提高安全性,建议在网络环境中禁用或限制这些协议,并采取其他安全措施(如启用加密通信)来保护SMB身份验证过程中的敏感信息

由于这些协议依赖于在本地网络上广播的请求,因此我们的恶意设备也会收到这些请求。通常,这些请求会被简单地丢弃,因为它们不是针对我们的主机的。然而,响应者将主动侦听请求并发送有毒响应,告诉请求主机我们的 IP 与请求的主机名相关联。通过毒害这些请求,Responder 尝试强制客户端连接到我们的 AttackBox。在同一行中,它开始托管多个服务器,例如 SMB、HTTP、SQL 等,以捕获这些请求并强制进行身份验证。

这就是SMB漏洞产生的原因之一

接下来就重点介绍一下Responder这个工具

Responder

这里介绍一下这个工具 就知道这个工具为什么能用在这了

image-20230905213851249

刚好就是可以模拟这些协议 然后欺骗客户端向其发送响应,从而获取用户凭据或敏感信息

1
需要注意的一件事是,Responder 实质上试图通过毒害连接来赢得竞争条件,以确保您拦截连接。这意味着响应程序通常仅限于本地网络上的中毒身份验证质询
1
尽管 Responder 在从连接到组织 LAN 的恶意设备执行时能够拦截和毒害更多身份验证请求,但了解这种行为可能具有破坏性并因此被检测到至关重要。通过中毒身份验证请求,正常的网络身份验证尝试将失败,这意味着用户和服务将无法连接到他们想要连接的主机和共享

https://github.com/lgandx/Responder

下载好这个Responder工具后 并且和tcpdump一样设置好要监听的端口 然后等待就行

image-20230905214852367

这样就成功的拦截到了NetNTLM 质询和响应

接下来就使用hashcat来爆破这个hash值了

image-20230905215752388

这里利用的就是这个中间人攻击技术

中继攻击(Relay Attack)是一种常见的网络攻击技术,旨在利用通信协议的弱点来获取用户凭据或执行恶意操作。其工作原理可以概括为以下步骤:

  1. 拦截受害者请求:攻击者将自己置于目标用户和目标服务器之间,监听受害者发出的请求。
  2. 中继请求:当受害者向目标服务器发送一个认证请求时(如登录、身份验证等),攻击者会立即将该请求转发到真正的目标服务器上。
  3. 获取响应:一旦目标服务器对认证请求进行响应,响应信息就会被传回给攻击者。
  4. 中继响应:收到来自目标服务器的响应后,攻击者会迅速将该响应转发给受害者设备,并假装自己是真实的服务器。
  5. 伪造成功认证:由于整个过程都是透明地进行,对于受害者而言,他们可能不知道与谁通信并且错误地相信已经通过了身份验证或登录成功。

通过中继攻击,黑客可以窃取用户凭据、执行未授权操作、篡改数据等。这种类型的攻击特别有效在那些没有使用加密保护通信流量或缺乏合适的身份验证和授权机制的协议中。

img

就差不多是这样子 起到一个转发和伪装的作用

Microsoft 部署工具包

大型组织需要工具来部署和管理资产的基础设施。在大型组织中,您无法让 IT 人员使用 DVD 甚至 USB 闪存驱动器在每台计算机上安装软件。幸运的是,微软已经提供了管理资产所需的工具。然而,我们也可以利用这些工具中的错误配置来破坏 AD。

Microsoft 部署工具包 (MDT) 是一项 Microsoft 服务,可帮助自动部署 Microsoft 操作系统 (OS)。大型组织使用 MDT 等服务来帮助更有效地在其资产中部署新映像,因为可以在中央位置维护和更新基础映像。

Microsoft 部署工具包 (MDT) 是一项 Microsoft 服务,可帮助自动部署 Microsoft 操作系统 (OS)。大型组织使用 MDT 等服务来帮助更有效地在其资产中部署新映像,因为可以在中央位置维护和更新基础映像。

通常,MDT 与 Microsoft 的系统中心配置管理器 (SCCM) 集成,后者管理所有 Microsoft 应用程序、服务和操作系统的所有更新。 MDT 用于新部署。从本质上讲,它允许 IT 团队预配置和管理启动映像。因此,如果他们需要配置一台新机器,他们只需要插入网线,一切都会自动发生。他们可以对启动映像进行各种更改,例如已经安装 Office365 等默认软件和组织选择的防病毒软件。它还可以确保在安装第一次运行时更新新版本。

SCCM 几乎可以被视为 MDT 的扩展和老大哥。软件安装后会发生什么?嗯,SCCM 进行这种类型的补丁管理。它允许 IT 团队查看整个地产中安装的所有软件的可用更新。团队还可以在沙箱环境中测试这些补丁,以确保它们稳定,然后再将它们集中部署到所有加入域的计算机。它使 IT 团队的工作变得更加轻松。

然而,任何提供基础设施集中管理的东西(例如 MDT 和 SCCM)也可能成为攻击者的目标,试图接管该资产中的大部分关键功能。尽管可以通过多种方式配置 MDT,但对于此任务,我们将专门关注称为预启动执行环境 (PXE) 启动的配置。

PXE启动

在 Active Directory(AD)域中,PXE 是 Preboot Execution Environment 的缩写。它是一种网络引导协议和技术,允许计算机通过网络启动并加载操作系统。

具体来说,PXE 提供了一种方法,在计算机尚未启动操作系统时,从网络上获取并执行预先配置的启动文件。这些启动文件可以包含操作系统映像、安装程序或其他必要的组件。(个人觉得这句话概括的很好)

使用 PXE,管理员可以通过集中管理的方式轻松地为多台计算机提供统一的操作系统部署、更新或恢复功能。当计算机开机时,它会向 DHCP 服务器发送请求以获取 IP 地址,并根据 DHCP 服务器返回的信息进一步下载和执行 PXE 启动文件。

因此,在 AD 域中使用 PXE 可以帮助简化和自动化大规模计算机部署和维护过程,并提高效率和可靠性。

大型组织使用 PXE 引导来允许连接到网络的新设备直接通过网络连接加载和安装操作系统。 MDT 可用于创建、管理和托管 PXE 启动映像。 PXE 启动通常与 DHCP 集成,这意味着如果 DHCP 分配 IP 租约,则允许主机请求 PXE 启动映像并启动网络操作系统安装过程。通信流程如下图所示

img

个人简单的总结一下 MDT PXE SCCM的差别

1
2
3
MDT  就是相当于准备文件 将要做的东西准备好
SCCM 就是对准备的东西负责检查更新
PXE 就是对准备的东西进行命令执行来部署

执行该过程后,客户端将使用 TFTP 连接下载 PXE 启动映像。我们可以将 PXE 启动映像用于两个不同的目的:

  • 注入权限升级向量(例如本地管理员帐户),以便在 PXE 启动完成后获得对操作系统的管理访问权限。
  • 执行密码抓取攻击以恢复安装期间使用的 AD 凭据。

在本任务中,我们将重点关注后者。我们将尝试在安装过程中恢复与 MDT 服务关联的部署服务帐户,以应对此密码抓取攻击。此外,还可以检索用于无人值守安装应用程序和服务的其他 AD 帐户。

PXE Boot Image Retrieval PXE 启动映像检索

由于 DHCP 有点挑剔,我们将绕过此攻击的初始步骤。我们将跳过尝试从 DHCP 请求 IP 和 PXE 启动预配置详细信息的部分。我们将手动执行该过程中此步骤的其余攻击。

您通过 DHCP 收到的有关 PXE 启动预配置的第一条信息是 MDT 服务器的 IP。在我们的例子中,您可以从 TryHackMe 网络图中恢复该信息。

您收到的第二条信息是 BCD 文件的名称。这些文件存储与不同类型的体系结构的 PXE 引导相关的信息。要检索此信息,您需要连接到此网站:http://pxeboot.za.tryhackme.com。它将列出各种 BCD 文件:

image-20230906210830635

通常,您将使用 TFTP 请求每个 BCD 文件并枚举所有文件的配置。

image-20230906212716907

(解释一下这个BCD文件是啥)

为了我们可以枚举并检索 PXE 启动映像 接下来进行ssh登录

登录之后 使用的这个工具 powerpxe(这个工具的话是可以预先进行对MDT的一些文件进行默认配置的)

前面的获取bsd和wim镜像的下载流程就不写了 跟着thm做就行了

接下来时讲 获取到这个pxe启动镜像的时候我们应该怎么做 怎么进行攻击利用

现在我们已经恢复了 PXE 启动映像,我们可以窃取存储的凭据。应该指出的是,我们可以发起各种攻击。我们可以注入本地管理员用户,因此一旦映像启动,我们就拥有管理员访问权限,我们可以安装映像以拥有加入域的计算机。如果您有兴趣了解有关这些攻击的更多信息,可以阅读本文。本次练习将重点关注尝试窃取凭据的简单攻击。

我们将再次使用 powerpxe 来恢复凭据,但您也可以通过提取映像并查找 bootstrap.ini 文件(通常存储这些类型的凭据)来手动执行此步骤。要使用 powerpxe 从引导文件恢复凭据,请运行以下命令:

1
2
3
4
5
6
7
PS C:\Users\THM\Documents\am0> Get-FindCredentials -WimFile pxeboot.wim
>> Open pxeboot.wim
>>>> Finding Bootstrap.ini
>>>> >>>> DeployRoot = \\THMMDT\MTDBuildLab$
>>>> >>>> UserID = <account>
>>>> >>>> UserDomain = ZA
>>>> >>>> UserPassword = <password>

如您所见,powerpxe 能够恢复 AD 凭据。我们现在有了另一组可以使用的 AD 凭据!

就是通过各种手段来获取这个PXE启动映像 因为这个里面含有这个默认的凭证 在企业域中大规模的配置后 我们可以使用这个获取到的凭证进行登录

Configuration Files 配置文件

这个没啥好写的 去看thm就行了