本文作者:eth10(贝塔安全实验室-核心成员)
本文目录:
Citrix Receiver 简介
一:前言
二:浏览器利用点
- 2.1 越权/SSRF
- 2.2 文件读取
- 2.3 服务器端工具调用
- 2.4 默认关联打开powershell
- 2.5 生成psc1文件
- 2.5.1 火狐浏览器getPowerShell
- 2.5.2 IE浏览器getPowerShell
- 2.5.3 Google浏览器getPowerShell
- 2.6 获取powershell之后
- 2.7 Firefox/Google 浏览器SSRF内网端口扫描
- 2.8 修复建议
Citrix Receiver 简介:
Citrix Receiver 是一种轻便的通用软件客户端,并带有类似浏览器的可扩展“插件”架构。Receiver 标 配 有 多 种 可 选 插 件 , 可 在 Citrix Delivery Center 产 品 系 列 ( 如 :XenApp 、 XenDesktop 、 Citrix Access Gateway 和 Branch Repeater)中与前端基础设施进行通信。这些插件支持的功能包括在 线和离线应用、虚拟桌面交付、安全访问控制、密码管理、应用加速、多媒体加速、 服务级监测以及语音 通信。
0x01:前言:
如果对 Citrix receiver 或者其他云桌面平台熟悉的话,那么本文才有其价值所在,否则就会认为是篇 鸡肋文章,即使如此,依旧建议走马观花过一遍,缘分很是奇妙,可能哪天你就会遇到这样的环境。
用户登陆平台点击对应的连接方式,即可在用户端打开服务器端上面的应用程序进行本地操作,应用系统连接方式主要是各类主流浏览器,如 IE、火狐、Google chrome 等,可参考下图:
主机系统连接方式主要是远程类终端进行登录,如:mstsc、redmin、putty、SecureCRT 等。本文主要 是利用应用系统映射的浏览器进行渗透。
0x02:浏览器利用点
2.1 越权/SSRF
由于地址栏是可控,且浏览器功能也是完整的,所以可以通过修改授权的应用系统地址去访问他人 的系统,该漏洞可以认为是越权漏洞,由于这些操作都是通过服务器请求完成的,因此也可认为是服务器 端请求伪造。但是这个漏洞危害主要是越权访问他人系统,以及探测他人服务器的端口信息,但是由于接 入的系统都是经过基线检查才接入的,所以弱口令几率很小,该点不容易利用来进入到系统。
2.2 文件读取
文件读取主要是利用 file 协议,可读取服务器中公共盘中的文件,如图:
2.3 服务器端工具调用
服务器端工具调用主要是利用火狐浏览器对应用程序的处理方式,通过不断尝试发现使用 telnet:///可以调 用服务器上面的应用程序(火狐可以调用应用程序,Google 可以调用 telnet 终端),如图:
后面通过翻阅火狐浏览器配置发现了是由于火狐对应用程序的处理,如图:
后面尝试 irc、ircs、webcal、mailto 均可以,但是只对火狐浏览器有效,如图:
但是由于服务器对自己 C 盘做了限制,虽然可以使用 file 读取 C 盘文件,但是无法调用服务器上面的应用 程序,直接如图:
如果直接调用本地磁盘上面的应用程序,显然权限是不够的,不然的话所有客户端还不是直接被控制了, 调用失败如图:
2.4 默认关联打开 powershell
通过查看自己电脑上面的关联程序,发现.psc1 默认关联 PowerShell,如图:
2.5 生成psc1文件
psc1 文件可以使用 Export-Console 来进行生成,在 powershell 里面执行 Export-Console F:x.psc1 即 可得到一个 psc1 文件,如图:
x.psc1:
代码语言:javascript复制<?xml version="1.0" encoding="utf-8"?>
<PSConsoleFile ConsoleSchemaVersion="1.0">
<PSVersion>5.1.17134.858</PSVersion>
<PSSnapIns/>
</PSConsoleFile>
由于我本地生成的 psc1 文件里面配置的版本过高,导致第一次没有成功,通过修改版本为 3.0 即可成功。
代码语言:javascript复制<?xml version="1.0" encoding="utf-8"?>
<PSConsoleFile ConsoleSchemaVersion="1.0">
<PSVersion>3.0</PSVersion>
<PSSnapIns/>
</PSConsoleFile>
2.5.1 火狐浏览器getPowerShell
火狐浏览器可以直接通过 file 展示的文件单击打开即可获取 powershell,如图:
为了证明此 shell 不是本地的,截图证明:
另外还可以通过 telnet 那几个协议来进行调用本地的 psc1 来获取服务器端的 powershell,如图:
这里虽然不会显示 .psc1 文件,但是我们可以直接在文件名那里输入 x.psc1 即可,如图:
2.5.2 IE浏览器getPowerShell
由于服务器的 IE 浏览器禁用了地址栏,禁用了鼠标右键以及菜单、设置等功能,因此就在本地 IE 浏览器 进行测试,在地址栏中直接访问会提示下载,如图:
2.5.3 Google浏览器getPowerShell
通过 file 点击下载之后进行打开,如图:
2.6 获取 powershell 之后
通过上述获取到 powershell,那么就可以进行下一步的横向渗透或者调用任意工具,同时也绕过了系统对 C 盘的限制,如图:
注:由于这个系统是超重要系统,因此未进行下一步的提权操作!但是可以参考 90sec 社区中的一篇文章 “CitrixReceiver 平台的一次渗透测试【通过】:https://forum.90sec.com/t/topic/310
2.7 Firefox/Google 浏览器 SSRF 内网端口扫描
使用 Firefox 或 Google 浏览器访问 telnet:///,第一个应用程序就是默认的 telnet 终端,如图:
打开链接即可进入到 telnet 终端,由于服务器做了限制,这里使用本地测试,如图:
2.8 修复建议:
1) 设置权限控制,对用户访问的资产进行白名单限制,白名单外的资产拒绝访问!
2) 最小化原则,禁用相关功能,如禁用鼠标右键、不显示地址栏、不显示菜单栏等,如图: