vip彩票

让梦想从这里开始

因为有了梦想,我们才能拥有奋斗的目标,而这些目标凝结成希望的萌芽,在汗水与泪水浇灌下,绽放成功之花。

新闻资讯

某知名系统漏洞挖掘与利用思路探索

发布日期:2022-09-20 20:57    点击次数:158

  

一、引言

金万维旗下系列产品存在信息泄漏、sql 注入等漏洞,配合后台应用的功能可直接获取服务器权限。

说起金万维可能有的小伙伴没听过,但以下界面经常做攻防演练的小伙伴应该不会陌生:

通过搜索指纹 body="GNRemote.dll",发现公网上就存在大量案例:

本文以安全研究为目的,分享对该套系统的代码审计和漏洞挖掘过程,文中所提到的漏洞均已提交给 CNVD&CITIVD,请勿用做非法用途。

二、环境搭建

金万维官网上就能直接下载和搭建系统,如 " 天联高级版 " 下载地址为:

https://www.gnway.com/prod/res.php?id=tkpro_server

ps:事实上 " 易速联 "、 " 易联通 "、" 畅捷通 "、" 天联 "、" 天联高级版 "、" 云联 "、" 远程通 "、" 路路通 " 等都是其直属产品或 oem 合作产品,均存在漏洞。

下载以后直接安装即可,安装目录默认在 C:GNWay 目录下:

Web 路径为:C:GNWayTeamLinkPro ServerWeb,安装完成后根目录有 phpinfo.php,index.php 等,但并不能解析,主要由 GNRemote.dll 来调用功能,其余为静态文件。

安装后界面如下:

三、信息泄露

通过代码审计发现发现一处未鉴权接口,可获取用户名:

对应的 url 地址为:

/GNRemote.dll?GNFunction=GetUsers

有了用户名以后可以尝试通过弱口令登录后台。

四、SQL 注入

用户名泄漏 + 弱口令当然不是最稳妥的进入后台方法,通过代码审计找到一处注入点, userid 直接拼接导致注入。

该接口是将用户添加到管理员的接口,所以需要通过遍历 userid 获取用户信息。如果返回 00 代表该用户存在,反之不存在,而注入需要获取存在的 userid,每个站 userid 不同,遍历一下找到一个存在 userid 便可进行注入。

注入点还是挺好找的,通过注入可获取用户密码。比较麻烦的是密码解密,该密码的加密方式并不是传统的 MD5。

PS:信息泄漏的漏洞适用于全版本,sql 注入的漏洞适用于 2018 以上的版本。

五、密码解密分析

首先 IDA 反编译 GNRemote.dll 文件,再其中搜索 password 关键字,发现相关的 sql 语句,然后找一处相对比较简单的语句(涉及的字段比较少,便于分析),如下图所示:

经过交叉引用分析,发现该语句位于导出函数 ChangePassword 函数中,从字面意思可以理解为修改密码,如下图所示:

在这个函数中,通过其中的一些字符串可以看出,该函数可能是和修改用户密码相关,那么分析下能否找到这个语句中的 password 值的来源。简单分析后,发现多处对该值有操作,不太好定位分析,所以改为动态调试分析。

经过分析,加载 GNRemote.dll 这个文件的进程名为 GNCore.exe。使用 windbg 附加后在 ChangePassword 函数下断点,发现在 web 界面中的修改密码处,可以触发断点,也就是修改密码的功能确实在这个 ChangePassword 函数中,如下图所示:

结合刚才定位的 sql 语句,使用动态调试,反复查看 password 的值的来源,最终在地址 100758C2 出发现对输入的原始密码进行操作,最后将结果格式化到 sql 语句中,完成密码修改功能,如下图所示:

那么在该地址处的函数即为加密操作的关键函数,应该着重分析。在这个函数内部,可以看到对原始密码的长度进行判断,如果不是 8 的倍数,则在原始密码后面追加空格字符,一直填充到满足 8 的倍数为止,如下图所示:

然后将原始密码进行一系列的异或操作,如下图所示:

分析发现,异或的 KEY 来着上一函数 100D6220,在该函数内部,发现复制两处固定值数据,如下图所示:

查看其数值,发现这正式是 Blowfish 算法使用的 p_box 和 s_box 数据,如下所示:

那么该算法的 KEY 是什么?分析后发现 KEY 来自上一层函数 10154BC0,可以看到这里有两个 KEY,分别是地址 101D0480 和 101D0440,这里使用的是 101D0480 的 KEY,如下图所示:

到目前为止,分析清楚了对原始密码加密的算法是 Blowfish,并且找到了 KEY。因为这是对称加密算法,所以可以完成对加密后的密码进行解密,还原出原始密码,完成对分析结果正确性的验证,如下图:

六、后台 getshell

登录后台后可以看到服务端配置的应用程序,一般分为以下几种。

6.1 远程桌面

服务端在安装完毕后会映射一个远程桌面端口,默认为 55366,对用户配置了远程桌面可以直接通过客户端进行连接。(在易速联服务端新建用户后系统也会创建 GNWay 前缀的系统用户)

通过客户端连接到系统桌面。

6.2 服务端

配置服务端应用可以通过该用户配置远程登录,直接连接服务器。

发布桌面后该用户应用中便会添加远程登录的应用,添加完成后即可远程连接。

6.3 第三方程序

如用友 u8 等程序,一般情况都可以通过弱口令进入应用,或者本身就已经勾选了记住密码了的。利用思路也比较简单,在与系统有交互的地方 shift+ 右键即可调出 cmd。



Powered by vip彩票 @2013-2022 RSS地图 HTML地图