本帖最后由 kitt 于 2022-9-13 17:32 编辑
0x00 背景 某省级核心金融机构内部专网使用我们的桌面云场景,桌面云版本为5.45r3,虚拟机为win7x32旗舰版,根据业务场景不同制作了多个模板,其中一个模板为某核心业务A使用,该A业务为典型客户端CS架构,通过客户端用户名密以及UKEY认证登录,服务端在国家总部。
0x01 故障现象 推广使用阶段客户反馈A业务无法正常登录使用,具体表现为输入用户名密码后点击登陆后客户端未响应,更换台式机后能够正常登录。
0x02 现场排查 首先我们对比正常客户端与云终端的登录流程,查看业务登录故障出现的阶段。通过对比我们了解到正常终端在插入ukey打开客户端输入用户名密码点击登录后,会调用弹出windows自带的私钥证书选择界面,选择后用户再输入证书密码即可正常登录使用。 而云终端在输入用户名密码登陆后,不会弹出此证书选择界面,随后客户端出现未响应无法继续执行登录流程,等待10分钟依旧未响应。 回顾项目过程资料,我们了解到该模板为纯净模板派生虚拟机后,客户自行安装各种软件并通过测试后克隆再转换为模板,也就是说业务以及外设不存在兼容性问题。 未避免由于新模板和VDC策略相关问题,我们检查了VDC的USB相关策略均已放通使用且与之前的模板用户相同,在操作系统、终端盒子、以及业务A自带的UKEY管理程序均能正常识别UKEY,同时我们也尝试将ukey加入到VDC的相关白名单中如reset、ACC等,测试后问题故障依旧。 由于客户环境为固定IP地址加MAC绑定场景,且限制了业务的访问源IP。为了排除网络问题,我们将虚拟机的IP与MAC地址设置为正常能访问业务的物理主机,测试后问题故障依旧。
0x03 定位问题 通过上述排查后,我们初步怀疑故障原因与云平台无关,大概率为客户端软件与操作系统相关。因此我们建议客户重装业务软件A,但发现业务软件A为绿色版解压后即可使用,客户重新将原包解压到新位置运行,测试故障问题依旧。 随后我们尝试在另外一个未安装与运行业务A的虚拟机,安装该业务软件发现居然能够正常弹出证书选择界面并正常运行,因此我们推测问题为该软件在第一次运行后会生成或修改某些系统文件导致,因为模板派生的原理如派生虚拟机的SID会和模板一样但是如网卡MAC会不同,导致如一些软件激活场景失效等。
为了验证推测是否正确,我们在创建一个全新纯净模板只解压业务软件A但不运行,然后派生虚拟机使用发现业务所有流程均正常,到此已确认问题所在方向。但随即的问题就是,已做好的A模板由于是业务A专用,客户也安装了诸多其他业务软件,让客户自己或指导我们重新安装制作新模板耗时且客户意愿不强,原模板无法使用的问题始终无法解决。 问题的方向确定了,那么接下来就得确认业务A首次运行的时候会产生或修改哪些文件等,但由于牵涉到程序与系统调试,受制于个人精力水平有限无法进行下一步陷入一筹莫展之时,突然想到之前渗透使用fiddler抓取https包时,出现过证书原因导致无法抓包的问题,网上的建议是清除C:\Users\此用户\AppData\Roaming\Microsoft\Crypto\RSA的所有文件再添加新证书即可。因此我们在业务A虚拟机尝试此方法删除对应目录文件,能够正常弹出系统证书选择界面并正常登录使用,到此问题解决。 通过查询微软官方以及相关文档了解到,C:\Users\此用户\AppData\Roaming\Microsoft\Crypto\RSA\SID%文件夹存储计算机和用户的证书对密钥,只要为计算机生成证书请求,就会在此位置创建新文件,比如我们用windows自带的磁盘文件加密,也就是EFS加密,就会在此创建私钥。 因此我们判断业务A在第一次登陆时,会结合UKEY的证书与操作系统相关信息生成相关密钥文件用于登陆认证过程,由于程序设计不完善,导致在操作系统相关信息发生变化部分相同的情况下,登录认证过程出现异常,删除原密钥文件即可正常执行登录。
0x04 总结 在排查桌面云相关业务问题时,不仅要求我们对桌面云的功能策略全面熟悉,也要养成良好的排障技能有逻辑地进行对比与排除,缩小问题面从而找到问题根结所在。同时,也反映了实际业务场景的逐渐的多样性与复杂性,对我们一线实施人员的技能要求也越来越高,需要不断的提升自身技能的广度与深度。 |