在Active Directory中伪造欺骗和识别欺骗详细分析
字数 1523 2025-08-27 12:33:31

Active Directory 欺骗与反欺骗技术详解

1. 欺骗技术概述

欺骗是一种心理学游戏,在网络安全领域,蓝队可以通过提供攻击者感兴趣的服务、特权或信息来检测和误导攻击者。在Active Directory (AD)环境中,有效的欺骗策略可以帮助防御者:

  • 在攻击的早期阶段(如枚举阶段)检测攻击者
  • 误导攻击者走向预设的陷阱
  • 收集攻击者的行为模式和工具信息

1.1 欺骗的核心原则

有效的AD欺骗应具备以下属性:

  1. 足够诱人:对象应包含攻击者感兴趣的特性
  2. 易于配置:部署过程不应过于复杂
  3. 无需端点变更:不应要求修改客户端配置
  4. 避免误报:不应触发正常管理活动

2. AD欺骗技术实现

2.1 基础审计配置

要实现AD对象访问的审计,需要配置以下组策略设置:

Windows设置 > 安全设置 > 高级审计策略配置 > DS Access > 审核目录服务访问

这将在访问AD对象时生成安全事件4662。审计需要在对象级别通过修改SACL(系统访问控制列表)来实现。

2.2 Deploy-Deception工具

Deploy-Deception是一个PowerShell模块,用于自动化部署各种类型的AD诱饵对象。

安装模块

Import-Module C:\Deploy-Deception\Deploy-Deception.psd1

3. 诱饵对象类型及部署

3.1 用户对象诱饵

攻击者感兴趣的用户属性包括:

  • 密码永不过期
  • 受信任的委派
  • 拥有SPN的用户
  • 描述中包含密码
  • 高权限组成员
  • 对其他对象有特殊ACL权限的用户

基本用户诱饵创建

Create-DecoyUser -UserFirstName user -UserLastName manager -Password Pass@123 | 
Deploy-UserDeception -UserFlag PasswordNeverExpires -Verbose

针对特定属性的审计

为避免过多误报,可以只审计不常见的属性(如x500uniqueIdentifier):

Deploy-UserDeception -DecoySamAccountName usermanager -RemoveAuditing $true -Verbose
Deploy-UserDeception -DecoySamAccountName usermanager -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose

包含SPN的用户诱饵

Create-DecoyUser -UserFirstName user -UserLastName manager-spn -Password Pass@123 | 
Deploy-UserDeception -SPN 'MSSQLSvc/dc' -GUID f3a64788-5306-11d1-a9c5-0000f80367c1 -Verbose

描述中包含密码的诱饵

Create-DecoyUser -UserFirstName new -UserLastName da -Password Pass@123 | 
Deploy-UserDeception -PasswordInDescription 'The new password is Pass@123' -Verbose

3.2 特权用户诱饵

高权限用户诱饵需要特殊保护措施,防止被真正利用:

  1. 登录工作站限制:设置为不存在的计算机
  2. 拒绝登录:完全禁止该用户登录

创建受保护的特权用户

# 域管理员成员,禁止登录
Create-DecoyUser -UserFirstName dec -UserLastName da -Password Pass@123 | 
Deploy-PrivilegedUserDeception -Technique DomainAdminsMemebership -Protection DenyLogon -Right ReadControl -Verbose

# DCSync权限,限制登录工作站
Create-DecoyUser -UserFirstName dec -UserLastName da -Password Pass@123 | 
Deploy-PrivilegedUserDeception -Technique DCSyncRights -Protection LogonWorkStation revert-webserver1 -Right ReadControl -Verbose

模拟真实登录记录

Create-DecoyUser -UserFirstName dec -UserLastName da -Password Pass@123 | 
Deploy-PrivilegedUserDeception -Technique DomainAdminsMemebership -Protection LogonWorkStation -LogonWorkStation revert-dc -CreateLogon -Verbose

3.3 计算机对象诱饵

攻击者感兴趣的计算机属性:

  • 较旧的操作系统
  • 有趣的SPN
  • 委派设置
  • 特权组成员

创建计算机诱饵

# 无约束委派计算机
Create-DecoyComputer -ComputerName revert-web -Verbose | 
Deploy-ComputerDeception -PropertyFlag TrustedForDelegation -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose

# 修改现有计算机对象
Deploy-ComputerDeception -DecoyComputerName comp1 -PropertyFlag TrustedForDelegation -Right ReadControl -Verbose

3.4 组对象诱饵

攻击者感兴趣的组属性:

  • 包含"admin"等关键词的名称
  • 包含高特权用户
  • 本身是高特权组的成员

创建组诱饵

# 创建分层诱饵
Create-DecoyUser -UserFirstName dns -UserLastName manager -Password Pass@123 | 
Deploy-UserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose

Create-DecoyGroup -GroupName 'Forest Admins' -Verbose | 
Deploy-GroupDeception -AddMembers dnsmanager -AddToGroup dnsadmins -GUID bc0ac240-79a9-11d0-9020-00c04fc2d4cf -Verbose

3.5 ACL诱饵

创建具有特殊ACL权限的用户关系:

# 创建主从用户
Create-DecoyUser -UserFirstName master -UserLastName user -Password Pass@123 | 
Deploy-UserDeception -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose

Create-DecoyUser -UserFirstName slave -UserLastName user -Password Pass@123 | 
Deploy-UserDeception -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose

# 设置slaveuser对masteruser的GenericAll权限
Deploy-SlaveDeception -SlaveSamAccountName slaveuser -DecoySamAccountName masteruser -Verbose

4. 红队反欺骗技术

4.1 识别诱饵对象的特征

  1. objectSID异常:不符合DomainSID-RID格式
  2. 登录相关属性
    • lastLogon/lastlogontimestamp为极早日期(如1600年)
    • logonCount为0或极低
  3. 创建时间:较新创建但从未登录
  4. 密码错误计数:badPwdCount为0
  5. 属性过多:包含过多非常用属性

4.2 避免触发欺骗的措施

  1. 避免盲目追求最低权限提升路径
  2. 谨慎使用自动化枚举工具
  3. 将可疑对象与已知合法对象(如RID 500的管理员)比较
  4. 使用多种工具交叉验证对象信息

5. 蓝队反识别技术

  1. 使用真实对象:而非专门创建的诱饵对象
  2. 模拟真实用户行为
    • 创建登录记录
    • 设置合理的logonCount
    • 模拟密码错误尝试
  3. 属性一致性:避免设置过多不合理的属性组合

6. 监控与响应

6.1 关键事件ID

  1. 4662:对象访问审计事件
  2. 4768:Kerberos认证失败(用于检测受限账户的使用尝试)

6.2 组策略配置

启用Kerberos认证失败审计:

配置 > Windows设置 > 安全设置 > 高级审计策略配置 > 审核策略 > 帐户登录 > 审核Kerberos身份验证服务 > 失败

7. 最佳实践

  1. 分层部署:结合多种诱饵类型创建防御深度
  2. 定期更新:轮换诱饵对象属性
  3. 行为分析:结合诱饵触发与其他异常行为检测
  4. 风险评估:高权限诱饵必须配置适当保护
  5. 日志整合:将诱饵触发纳入SIEM工作流

通过精心设计的AD欺骗策略,防御者可以在攻击生命周期的早期阶段检测到入侵尝试,同时收集有价值的威胁情报,为整体安全态势提供主动防御能力。

Active Directory 欺骗与反欺骗技术详解 1. 欺骗技术概述 欺骗是一种心理学游戏,在网络安全领域,蓝队可以通过提供攻击者感兴趣的服务、特权或信息来检测和误导攻击者。在Active Directory (AD)环境中,有效的欺骗策略可以帮助防御者: 在攻击的早期阶段(如枚举阶段)检测攻击者 误导攻击者走向预设的陷阱 收集攻击者的行为模式和工具信息 1.1 欺骗的核心原则 有效的AD欺骗应具备以下属性: 足够诱人 :对象应包含攻击者感兴趣的特性 易于配置 :部署过程不应过于复杂 无需端点变更 :不应要求修改客户端配置 避免误报 :不应触发正常管理活动 2. AD欺骗技术实现 2.1 基础审计配置 要实现AD对象访问的审计,需要配置以下组策略设置: 这将在访问AD对象时生成安全事件4662。审计需要在对象级别通过修改SACL(系统访问控制列表)来实现。 2.2 Deploy-Deception工具 Deploy-Deception 是一个PowerShell模块,用于自动化部署各种类型的AD诱饵对象。 安装模块 3. 诱饵对象类型及部署 3.1 用户对象诱饵 攻击者感兴趣的用户属性包括: 密码永不过期 受信任的委派 拥有SPN的用户 描述中包含密码 高权限组成员 对其他对象有特殊ACL权限的用户 基本用户诱饵创建 针对特定属性的审计 为避免过多误报,可以只审计不常见的属性(如x500uniqueIdentifier): 包含SPN的用户诱饵 描述中包含密码的诱饵 3.2 特权用户诱饵 高权限用户诱饵需要特殊保护措施,防止被真正利用: 登录工作站限制 :设置为不存在的计算机 拒绝登录 :完全禁止该用户登录 创建受保护的特权用户 模拟真实登录记录 3.3 计算机对象诱饵 攻击者感兴趣的计算机属性: 较旧的操作系统 有趣的SPN 委派设置 特权组成员 创建计算机诱饵 3.4 组对象诱饵 攻击者感兴趣的组属性: 包含"admin"等关键词的名称 包含高特权用户 本身是高特权组的成员 创建组诱饵 3.5 ACL诱饵 创建具有特殊ACL权限的用户关系: 4. 红队反欺骗技术 4.1 识别诱饵对象的特征 objectSID异常 :不符合DomainSID-RID格式 登录相关属性 : lastLogon/lastlogontimestamp为极早日期(如1600年) logonCount为0或极低 创建时间 :较新创建但从未登录 密码错误计数 :badPwdCount为0 属性过多 :包含过多非常用属性 4.2 避免触发欺骗的措施 避免盲目追求最低权限提升路径 谨慎使用自动化枚举工具 将可疑对象与已知合法对象(如RID 500的管理员)比较 使用多种工具交叉验证对象信息 5. 蓝队反识别技术 使用真实对象 :而非专门创建的诱饵对象 模拟真实用户行为 : 创建登录记录 设置合理的logonCount 模拟密码错误尝试 属性一致性 :避免设置过多不合理的属性组合 6. 监控与响应 6.1 关键事件ID 4662 :对象访问审计事件 4768 :Kerberos认证失败(用于检测受限账户的使用尝试) 6.2 组策略配置 启用Kerberos认证失败审计: 7. 最佳实践 分层部署 :结合多种诱饵类型创建防御深度 定期更新 :轮换诱饵对象属性 行为分析 :结合诱饵触发与其他异常行为检测 风险评估 :高权限诱饵必须配置适当保护 日志整合 :将诱饵触发纳入SIEM工作流 通过精心设计的AD欺骗策略,防御者可以在攻击生命周期的早期阶段检测到入侵尝试,同时收集有价值的威胁情报,为整体安全态势提供主动防御能力。