AD Enuming学习
字数 1970 2025-08-22 18:37:14

Active Directory (AD) 枚举技术详解

1. 实验环境与准备工作

1.1 实验环境

  • 目标域:za.tryhackme.com
  • 跳板机:THMJMP1.za.tryhackme.com
  • 示例用户:kenneth.davies (Password1), rachel.dunn (Bmlj9838)

1.2 凭据注入技术 (Runas)

当无法创建新的域内机器时,可使用Runas进行凭据注入:

runas.exe /netonly /user:<domain>\<username> cmd.exe

参数说明:

  • /netonly:仅对网络会话使用注入的凭据
  • /user:提供目标域和用户名(建议使用FQDN)
  • cmd.exe:注入后执行的程序

验证凭据有效性

dir \\za.tryhackme.com\SYSVOL

注意:

  • 使用主机名(FQDN)会触发Kerberos认证
  • 使用IP地址会强制使用NTLM认证

2. Microsoft管理控制台(MMC)枚举

2.1 安装AD Snap-Ins

  1. 开始菜单 → "Apps & Features"
  2. 点击"Manage Optional Features"
  3. 添加"RSAT: Active Directory Domain Services and Lightweight Directory Tools"

2.2 配置MMC

  1. 启动MMC (win+r输入mmc)

  2. 添加三个Active Directory管理单元

  3. 配置各管理单元指向目标域:

    • Active Directory Domains and Trusts → 更改森林为za.tryhackme.com
    • Active Directory Sites and Services → 更改森林
    • Active Directory Users and Computers → 更改域
  4. 启用高级功能:右键AD Users and Computers → View → Advanced Features

2.3 枚举内容

  • 查看用户和计算机结构
  • 按部门OU查看用户
  • 双击用户查看详细属性和组成员关系
  • 查看Servers或Workstations中的域内机器

优缺点

  • 优点:GUI界面直观,支持搜索,可直接修改AD对象
  • 缺点:需要RDP访问,无法收集所有AD属性

3. CMD枚举技术

3.1 常用net命令

枚举用户

net user /domain
net user <username> /domain

枚举组

net group /domain
net group <groupname> /domain

枚举密码策略

net accounts /domain

输出内容包括:

  • 密码历史长度
  • 账户锁定阈值和时间
  • 密码最小长度
  • 密码最长有效期

优缺点

  • 优点:无需额外工具,不易被监控,支持宏语言
  • 缺点:必须在域内机器执行,信息不完整

4. PowerShell枚举技术

4.1 常用AD-RSAT cmdlet

枚举用户

Get-ADUser -Identity gordon.stevens -Server za.tryhackme.com -Properties *
Get-ADUser -Filter 'Name -like "*stevens"' -Server za.tryhackme.com | Format-Table Name,SamAccountName -A

枚举组

Get-ADGroup -Identity Administrators -Server za.tryhackme.com
Get-ADGroupMember -Identity Administrators -Server za.tryhackme.com

枚举对象

Get-ADObject -Filter 'badPwdCount -gt 0' -Server za.tryhackme.com

枚举域信息

Get-ADDomain

修改对象示例

Set-ADAccountPassword -Identity gordon.stevens -Server za.tryhackme.com -OldPassword (ConvertTo-SecureString -AsPlaintext "old" -force) -NewPassword (ConvertTo-SecureString -AsPlainText "new" -Force)

优缺点

  • 优点:信息丰富,可在非域机器使用,支持自定义cmdlet,可直接修改AD
  • 缺点:易被监控,需要安装AD-RSAT

5. Bloodhound枚举技术

5.1 Sharphound收集器

三种类型

  1. Sharphound.ps1:PowerShell脚本,适合RAT使用
  2. Sharphound.exe:Windows可执行文件
  3. AzureHound:用于Azure实例

常用命令

Sharphound.exe --CollectionMethods All --Domain za.tryhackme.com --ExcludeDCs
Sharphound.exe --CollectionMethods Session --Domain za.tryhackme.com --ExcludeDCs

5.2 Bloodhound操作

启动

neo4j start
./BloodHound --no-sandbox

主要功能

  1. 节点信息查看:

    • Overview:活动会话数量等
    • Node Properties:基础信息
    • Extra Properties:详细属性
    • Group Membership:组成员关系
    • Local Admin Rights:本地管理员权限
    • Execution Rights:特殊权限
    • Control Rights:控制权限
  2. 分析功能:

    • "Find all Domain Admins"等预置查询
    • 自定义路径搜索
  3. 攻击路径分析:

    • 设置起始节点和目标节点
    • 应用过滤器查看可用路径
    • 分析路径中的权限提升点

会话更新

  • 初次使用"All"收集方法
  • 后续使用"Session"方法快速更新
  • 导入前可清除旧会话数据

优缺点

  • 优点:图形化展示攻击路径,直观易理解
  • 缺点:易被AV/EDR检测,版本需匹配

6. 关键注意事项

  1. 认证方式差异:

    • 主机名/FQDN → Kerberos认证
    • IP地址 → NTLM认证
  2. 枚举策略:

    • 初始使用MMC或PowerShell获取整体结构
    • 详细枚举使用PowerShell或Bloodhound
    • 隐蔽操作使用CMD命令
  3. 防御规避:

    • 使用/netonly参数避免直接DC认证
    • 在非工作时间执行枚举
    • 考虑使用合法管理工具作掩护
  4. 信息利用:

    • 密码策略信息用于密码喷洒攻击
    • 组成员关系用于权限提升
    • SYSVOL目录可能包含有用脚本或凭据
  5. 持续监控:

    • 定期更新Sharphound数据
    • 关注新创建的AD对象
    • 跟踪高价值目标的活动会话
Active Directory (AD) 枚举技术详解 1. 实验环境与准备工作 1.1 实验环境 目标域:za.tryhackme.com 跳板机:THMJMP1.za.tryhackme.com 示例用户:kenneth.davies (Password1), rachel.dunn (Bmlj9838) 1.2 凭据注入技术 (Runas) 当无法创建新的域内机器时,可使用Runas进行凭据注入: 参数说明: /netonly :仅对网络会话使用注入的凭据 /user :提供目标域和用户名(建议使用FQDN) cmd.exe :注入后执行的程序 验证凭据有效性 : 注意: 使用主机名(FQDN)会触发Kerberos认证 使用IP地址会强制使用NTLM认证 2. Microsoft管理控制台(MMC)枚举 2.1 安装AD Snap-Ins 开始菜单 → "Apps & Features" 点击"Manage Optional Features" 添加"RSAT: Active Directory Domain Services and Lightweight Directory Tools" 2.2 配置MMC 启动MMC (win+r输入mmc) 添加三个Active Directory管理单元 配置各管理单元指向目标域: Active Directory Domains and Trusts → 更改森林为za.tryhackme.com Active Directory Sites and Services → 更改森林 Active Directory Users and Computers → 更改域 启用高级功能:右键AD Users and Computers → View → Advanced Features 2.3 枚举内容 查看用户和计算机结构 按部门OU查看用户 双击用户查看详细属性和组成员关系 查看Servers或Workstations中的域内机器 优缺点 : 优点:GUI界面直观,支持搜索,可直接修改AD对象 缺点:需要RDP访问,无法收集所有AD属性 3. CMD枚举技术 3.1 常用net命令 枚举用户 : 枚举组 : 枚举密码策略 : 输出内容包括: 密码历史长度 账户锁定阈值和时间 密码最小长度 密码最长有效期 优缺点 : 优点:无需额外工具,不易被监控,支持宏语言 缺点:必须在域内机器执行,信息不完整 4. PowerShell枚举技术 4.1 常用AD-RSAT cmdlet 枚举用户 : 枚举组 : 枚举对象 : 枚举域信息 : 修改对象示例 : 优缺点 : 优点:信息丰富,可在非域机器使用,支持自定义cmdlet,可直接修改AD 缺点:易被监控,需要安装AD-RSAT 5. Bloodhound枚举技术 5.1 Sharphound收集器 三种类型 : Sharphound.ps1:PowerShell脚本,适合RAT使用 Sharphound.exe:Windows可执行文件 AzureHound:用于Azure实例 常用命令 : 5.2 Bloodhound操作 启动 : 主要功能 : 节点信息查看: Overview:活动会话数量等 Node Properties:基础信息 Extra Properties:详细属性 Group Membership:组成员关系 Local Admin Rights:本地管理员权限 Execution Rights:特殊权限 Control Rights:控制权限 分析功能: "Find all Domain Admins"等预置查询 自定义路径搜索 攻击路径分析: 设置起始节点和目标节点 应用过滤器查看可用路径 分析路径中的权限提升点 会话更新 : 初次使用"All"收集方法 后续使用"Session"方法快速更新 导入前可清除旧会话数据 优缺点 : 优点:图形化展示攻击路径,直观易理解 缺点:易被AV/EDR检测,版本需匹配 6. 关键注意事项 认证方式差异: 主机名/FQDN → Kerberos认证 IP地址 → NTLM认证 枚举策略: 初始使用MMC或PowerShell获取整体结构 详细枚举使用PowerShell或Bloodhound 隐蔽操作使用CMD命令 防御规避: 使用/netonly参数避免直接DC认证 在非工作时间执行枚举 考虑使用合法管理工具作掩护 信息利用: 密码策略信息用于密码喷洒攻击 组成员关系用于权限提升 SYSVOL目录可能包含有用脚本或凭据 持续监控: 定期更新Sharphound数据 关注新创建的AD对象 跟踪高价值目标的活动会话