Citrix密码绕过漏洞引发的渗透

Citrix系统以前听说过,未真正操作过,对于Citrix系统的研究来自与好友Micky的交流,后面对此进行了一些研究,应该说小有心得,撰文与大家一起分享。

一、Citrix简介

Citrix是Citrix Systems, Inc.的一款主打产品,该公司主要提供全球接入架构解决方案,其解决方案能够让客户在任何时间、任何地点、在任何设备上,通过任何形式的网络连接,高效获取各种应用、信息及通讯。Citrix技术使得数字办公室无处不在,令工作轻松易行。   Citrix以代号CTXS于Nasdaq Stock MarketSM上市,并获列入标准普尔500指数。2001财年公司总收益为5.92亿美元。Citrix 总部设于美国佛罗里达州 Fort Lauderdale,公司网站 http://www.citrix.com。

Citrix是一款广泛流行的远程桌面控制程序,类似于Microsoft的远程终端(Terminal Services)。只是其原理不同,Microsoft Terminal Services使用的是RDP(远程桌面协议,Remote Desktop Protocol)协议,而Citrix使用的是ICA (独立计算机架构,Independent Computing Architecture)协议。ICA技术已成为基于服务器计算模式的工业基础。ICA包括了包括以下三个重要内容:

(1)MultiWin。在服务器上模拟本地应用程序处理的多用户层;

(2)服务器端ICA软件。将应用程序的执行和显示逻辑分开,应用程序100%在服务器上进行,并通过标准的网络协议(TCP/IP、SPX、IPX、NETBEUI、NWLINK)将显示界面传送给客户端;

(3)客户端设备上的ICA软件:一方面接收显示界面,同时向服务器发送鼠标移动和键盘击键动作信息,对基于服务器上的应用程序进行操作。

ICA具有网络传输的高效性、客户端设备的灵活性、操作平台的灵活性以及连接方式的灵活性。由于在客户端与服务器之间无数据传送,传送的只是显示界面,并运用Citrix特有的SpeedScreen技术(传输的仅是显示界面变化的部分),平均只占用10K的网络带宽。ICA可以在从286计算机到现在的PIII级计算机上正常工作,可以在任何客户端操作系统平台上正常工作,客户端与服务器可通过多种连接方式LAN、WAN、电话拨号、Internet、无线的Web方式等。

迄今全球已有近十五万家用户采用了Citrix解决方案,享受到ICA技术的客户端更超过五千万,其中包括世界财富500强中99%以上的集团,以及欧洲财经时代500强中75%以上的公司,Citrix凭借其卓越的技术方案和业务成就,赢得了业界与用户的广泛赞誉。

三、一个Citrix渗透实例

(一)安装Citrix Presentation Server客户端

安装Citrix Presentation Server 客户端时跟安装其它普通软件没有什么不同,按照提示进行安装即可,不过在安装过程中需要注意一点,在选择客户端时只选择安装“Program Neighborhood”,“Web客户端”和“Program Neighborhood Agent”均不安装,即分别选中“Web客户端”和“Program Neighborhood Agent”前面向下的三角形箭头,然后选择“所有功能均不可用”,设置完毕后“Web客户端”和“Program Neighborhood Agent”前面会分别出现一个红色的叉,如图1所示。Citrix Presentation Server 客户端下载地址:http://www.antian365.com/viewthread.php?tid=6299& extra=page%3D1

  图1 选择客户端

  (二)搜索ICA文件

使用Citrix Presentation Server 客户端连接Citrix服务器主要通过读取ICA配置文件来实现,很多Citrix服务器在配置完毕后会将ICA文件放到网上供下载使用,也有一些是配置完毕后无意放在网上,不过那种方式,只要获取正确的ICA文件即可进行连接。获取ICA文件最简单和方便的方法就是通过搜索引擎获取,直接打开IE浏览器,在Google搜索中输入“Filetype:ica”搜索ica文件,如图2所示,搜索出来很多ICA文件。

  

  图2 搜索ICA文件

  (三)下载ICA文件

在Google搜索结果中任意选择一个搜索记录,然后右键单击选择“另存为”,将所选择的ICA文件保存到本地。保存ICA文件的目的就是为了在本地进行查看,如图3所示,在ICA文件中可以看到有WFClient、ApplicationServer、Route Clearing DB、EncRC5-0、Compress五个参数,WFClient参数中主要指定软件的版本,Citrix服务器地址和连接端口;第二个参数主要指定初始程序等设置。下载ICA文件的另外一个目的就是尝试修改ICA文件中的配置参数InitialProgram,在权限管理不严格的Citrix服务器中如果InitialProgram参数的值修改成cmd.exe或explorer.exe,连接Citrix服务器后可以直接调出远程服务器上的命令提示符或者资源管理器。出来这两个东东,呵呵,不说你也知道可以干什么了!

  

  二、Citrix的工作方式

Citrix主要有Citrix MetaFrame和Citrix NFuse/Citrix安全网关两种工作方式。

Citrix MetaFrame有XPs、XPa及XPe三个不同的版本,分别适合不同的环境使用;其中XPs是完全安全版,包括一些不同于其它版本的管理选项;XPa和XPe则功能相对稍微少一点;Citrix 默认使用1494端口并且只和使用了Citrix ICA加密协议的客户端通信。

Citrix NFuse/Citrix安全网关中Citrix NFuse允许管理员锁定程序且只能通过Web浏览器通信。Citrix NFuse默认安装在IIS 5.0及以上版本上的。Citrix NFuse默认安装情况下的远程权限规则允许管理员执行Citrix安全网关。

(四)直接打开ICA文件

Citrix Presentation Server 客户端正确安装后,其默认打开后缀为ICA的文件,也可以直接单击网页中的ICA文件链接地址而打开Citrix链接提示框。在连接过程中会给出一些提示,如果服务器、客户端以及参数相匹配,则会出现明显的登录警告等提示信息,如图4所示。

  

  图4 出现登录提示警告信息

  在测试过程中会有很多ICA文件是无效的或者说是过时的,有的虽然会出现一个连接提示信息,但由于协议不匹配的原因,最后将无法连接成功。还有一种情况通过ICA文件可以连接,但需要连接方提供正确的用户名和密码,如图5所示,要求用户输入跟Windows登录类似的用户名和密码,只有输入正确的用户名和密码后才能进入系统。

  

  图5 Citrix中的用户和密码验证

  (五)使用快捷键绕过密码验证

在连接上Citrix服务器后可以使用一些热键来进行常见的操作,一些常见的热键如下所示:

SHIFT+F1: 打开本地任务列表

SHIFT+F2: Toggle Title Bar

SHIFT+F3: 关闭远程应用程序

CTRL+F1: 显示Windows安全桌面相当于“Ctrl+Alt+Del”

CTRL+F2: 打开远程任务列表

CTRL+F3: 打开远程任务管理器,相当于本地热键“Ctrl+Shift+ESC”打开本地任务管理器。

ALT+MINUS: 相当于本地的“ALT+SHIFT+TAB”热键在各个任务之间切换

在Citrix服务器的某些版本存在密码绕过漏洞,通过热键直接调出任务管理器,从而绕过密码验证。即在出现确定的连接后,使用热键“CTRL+F3”打开远程的任务管理器,如图6所示,直接调出远程的任务管理器,呵呵,还是小日本的计算机呢!

  

  图6 使用热键“CTRL+F3”打开远程计算机上的任务管理器

  (六)进入远程Citrix服务器

前面的进入的日文的Citrix服务器,看不懂,后面换了一台英文版本的进行测试,如图7所示,通过热键“CTRL+F3”打开远程计算机上的任务管理器,然后在任务管理器中“文件”-“新建任务”-“打开”,在其中输入“cmd.exe”或者“Explorer”直接打开命令提示符或者资源管理器,如图7所示,通过运行“Explorer”进入对方计算机。

  

  图7 通过新建任务进入远程Citrix服务器

  (七)问题与探讨

1.修改参数失效。

在下载的ICA文件中有些通过修改参数InitialProgram的值顺利的进入远程服务器,但有些ICA文件在修改其值后,连接Citrix服务器后却要求输入用户名和密码才能进入。在没有获取用户名和密码的情况下基本无法进入。

2.具有执行程序权限,却很难提权

通过ICA文件连接使用热键绕过密码验证,虽然能够使用计算机中的资源,执行部分或者全部程序,但由于权限限制,如果登录的用户不是 administrator权限,则服务器提权很难成功。有关Citrix的更多漏洞可以参考http://secunia.com /advisories/search/?search=citrix

3. Citrix服务器安全配置的一些方法

(1)首先正确配置NFuse/Citrix Secure Gateway;

(2)确定IIS/Apache已经打了最新补丁,并且在DMZ的保护中,或者使用NTLM认证;

(3)如果可能,要求远程用户使用SecureID认证方式;

(4)使用其它的浏览器取代IE;

(5)建立一个组,把所有Citrix用户放到这个组里面,禁止他们访问cmd.exe、ftp.exe、 tftp.exe、rcp.exe、net.exe、command.com、iexplorer.exe等可能对系统有危害的权限(在安全与应用的平衡之间选择);笔者曾经在一个老外的服务器上看见其权限做的非常严格,对每一个文件、文件夹都进行了仔细的审核,尤其是system权限,进行了严格的分配。

(6)给你的Citrix打上最新的补丁;

(7)禁止winhelp32的访问,设置Internet选项禁止下载,禁止使用进程管理器;

(8)如果可能,设置Citrix Connection Configuration—>ica-tcp—>client settings—>选择必须为开。

本文摘自安全365及比特网由网络安全攻防研究室(www.91ri.org) 信息安全小组收集整理.