查看原文
其他

实战 | RA 风险检测技术的应用研究

金融电子化 金融电子化 2023-01-22


欢迎金融科技工作者积极投稿!

投稿邮箱:newmedia@fcmag.com.cn

                                          ——金融电子化



      

文 / 德邦证券股份有限公司  殷俊

Radmin远程桌面管理软件(简称RA软件)被广泛运用于各种金融业务系统,以方便服务器管理员进行远程控制操作。该软件普遍使用账号密码单因素认证,目前常见的弱密码检测工具均不支持对其进行弱密码扫描,因此安全人员很难批量验证使用该软件设备的密码安全性。本文通过对Radmin的通信协议进行分析,研究了无法对其进行弱密码扫描的本质原因,并提出了一种应对方法,使安全人员可以较方便地筛查出使用了弱密码Radmin服务的设备。


Radmin是一款使用较为广泛的远程控制软件,管理员可以使用Radmin客户端登录到安装了Radmin服务端的设备进行远程控制操作,该软件登录过程中的身份认证通常为Radmin账号密码单因素认证。在金融业务的生产环境中,存在不少使用Radmin软件管理服务器的情况,这本身并没有什么问题。而问题在于服务器管理员使用了诸如“123456”、“admin”等弱密码,同时又因为目前市场上的安全工具都不具备检测Radmin弱密码的能力,导致这一部分出现盲区,从而产生因Radmin密码被攻击者猜出而被获取到服务器控制权限的风险。


Radmin弱密码检测现状

弱密码检测是指通过弱密码字典,对特定服务的认证信息进行猜解,从而获得正确的登录凭证。安全人员可以通过弱密码检测提前发现网络中存在的弱密码服务并进行整改,以避免类似风险被攻击者利用。


通过对常用的几款弱密码检测工具进行测试,发现目前并没有能够支持最新版本Radmin软件(v3.5.2)的检测工具(如表1所示),仅Hydra支持Radmin2版本的弱密码检测,不过该版本官方不再支持,实际环境中应用已较少。


表1  常见弱密码检测工具支持性列表


Radmin认证协议分析

在本机安装Radmin Serverv 3.5.2服务端,随后使用Radmin Viewerv 3.5.2客户端进行连接,期间使用Wireshark工具抓取它们之间的通信流量。


经分析发现,客户端首先将登录账号发送给服务端,之后服务端返回一长串二进制信息,再接着客户端向服务端发送一长串二进制信息,最后服务端响应登录是否成功。在整个认证流量中,仅存在明文的账号信息,并无明文密码信息,由此判断密码是通过一定的加密算法计算之后,以密文的形式发送至服务端进行校验的。


上网查阅Radmin加密算法信息,在Github上找到一个名为synacktiv/Radmin3-Password-Cracker的项目。由于Radmin Server会将用户的密码以密文的形式保存在注册表中,该项目就是研究注册表中密文密码的加密算法,从而在本地进行密码明文的破解。


通过比较注册表中的内容与认证流量中的内容,发现存在较多二进制数值一致的情况,由此推断这两部分内容使用了相同的加密算法。于是根据该项目的源代码,开展加密算法研究。


通过比较研究,基本可以确定Radmin认证协议流程。首先客户端向服务端第一次发送数据,内容为用户账户信息。服务端返回Salt(盐值)等信息,以本次认证抓取到的数据包为例,具体格式如表2所示。


表2  Radmin认证协议服务端第一次返回数据


客户端接收到上述响应后,获取其中的各项参数结合用户的账号密码进行加密,加密算法为:将用户账号密码以username:password的形式拼接,然后在除冒号以外的每一个字符前插入“\x00”标志;计算步骤1结果的sha1值,并将salt参数的数值拼接在其之前;计算步骤2结果的sha1值,保存结果数值到shahash变量;使用pow函数计算参数g数值的shahash次方,再除以参数modulus,得到的余数即为密码密文。


经检验,通过该算法获得的密文,与服务端注册表中保存的密文完全一致。在计算获得用户密码密文后,客户端再通过表3所示协议将数据发送至服务端,从而完成身份认证。


表3  Radmin认证协议客户端第二次发送数据


通过模拟上述协议通信流程,尝试对Radmin进行弱密码检测,经实际测试发现,并不能有效地完成认证流程。跟踪问题后发现,真实流量数据中,客户端第二次发送数据中的密码密文字段,每次请求的数值均不相同,由此推测还存在某种随机数机制,扰乱了密文的计算结果。查询大量资料以及进行探索性测试后,亦没能解决该问题。、


由于Radmin并非开源软件,因此无法还原通信协议中的加密方式,导致无法通过程序自动化地对Radmin的密码进行猜解,也由此导致了各大弱密码检测工具无法支持Radmin弱密码检测的情况。


一种可行的Radmin弱密码检测方法

虽然暂时还不能通过通信协议对Radmin的弱密码进行检测,但是最终发现了一种折中的检测方法,就是使用Win32api模拟Radmin进行图形化登录。该api可以提供自动化操作图形界面的功能,通过模拟鼠标点击、键盘输入,实现基于图形界面的自动化登录。


查阅Radmin View客户端的使用手册,发现其提供命令行启动参数/connect,以及远程终端模式参数/telnet。因此可以使用脚本调用如下命令启动特定设备的Radmin服务连接:


Radmin.exe/con-nect:192.168.208.174/telnet


命令执行成功后,会直接弹出账号密码输入界面,等待用户输入连接账号和密码。


使用Perl语言调用Win32::GuiTest模块中的FindWindowLike函数,搜索系统中关键词为“Radmin security”的窗口,即可定位输入到Radmin的登录窗口。随后使用SendKeys函数,配合Tab键和Enter键,将弱密码列表中的账号密码输入该窗口并确认连接。


等待2秒之后,继续使用FindWindowLike函数查找有无标题包含“Telnet”关键词的窗口,若返回值为真,则表示账号密码正确,即发现Radmin弱密码问题,记录问题设备地址后模拟键入“exit”退出telnet窗口;若返回值为假,并且存在关键词为“Connectioninfo”的窗口,则表示连接失败,模拟键入Enter键退出后继续进行下一组账号密码的尝试。


经实际测试发现,短时间内连续输入错误的账号密码超过10次,Radmin会暂时锁定登录。因此使用这种方法暴力破解某一台设备的Radmin密码是比较困难的,但是作为安全人员对特定范围网络内的Radmin服务器列表进行弱密码检测,即可通过地址轮寻的方式,尝试一次失败后,立即更换地址尝试,一组账号密码测试完成后,再返回地址列表头部,继续下一组账号密码的尝试。


实验表明,这种Radmin弱密码检测方法的扫描速率平均为5-6秒一次,并且在单台设备上无法支持多线程扫描,但是弥补了对于Radmin弱密码检测的技术空白。安全运维人员由此可以使用自动化的方式以及相对较少的时间,完成原来无法完成的Radmin弱密码检测工作。


结    语

本文分享了Radmin远程控制软件的弱密码检测方法,分析了各大弱密码检测工具无法支持检测Radmin的重要原因,最终通过Radmin客户端命令行模式配合模拟登录的方式变通实现弱密码的检测。虽然尚存在一定的局限性,但也为之前无法实现的需求提供了一种解决思路,为预防此类网络安全隐患的发生提供了一个比较有效的检测方法。

参考资料

[1] 李太凤, 朱艳:《Radmin在服务器远程管理中的应用》 [J],载《西昌学院学报(自然科学版)》, 2015, 29(4),5页

[2] 雷远东:《自动检测弱口令用户》[J],载《网络运维与管理》, 2015(4),3页

[3] 李建:《"最弱密码"继续领跑,你真的会设置密码吗》 [J],载《保密工作》, 2016(6),2页


(栏目编辑:韩维蜜)





往期精选:

(点击查看精彩内容)


● 实战 | 拥抱数字化变革,打造资产管理核心竞争力——博时基金新一代投资决策支持系统建设

● 实战 | 数据治理的探索与实践

● 实战 | 保险核保智慧体检体系建设

● 实战 | 追求卓越,砥砺前行——小型机下移x86开放平台最佳实践

● 实战 | ISO 20022 报文库和我国金融报文库应用情况







新媒体中心:主任 / 邝源  编辑 / 傅甜甜  张珺  邰思琪

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存