
针对Oracle WebLogic ADF Faces(CVE-2022-21445,CVSS 9.8)的预认证远程代码执行利用。包含详细的环境搭建、载荷生成和远程调试说明,用于渗透测试。
CVE-2022-21445(CVSS 评分 9.8),该漏洞是对不可信数据的反序列化,被确认存在于 ADF Faces 组件中,可被攻击者在无需身份验证(pre-authentication)的情况下远程利用,以执行 RCE。
该漏洞由 VNG Corporation 的网络安全专家 PeterJson 和 VNPT 的 Nguyen Jang 发现。Oracle 于 2021 年 10 月收到此报告,但花了长达 6 个月的时间,即到 2022 年 4 月才发布补丁。
本文中的漏洞利用主要针对 Oracle Business Intelligence 12.2.1.4.0 版本。
条件:安装 Windows 10+ Pro 或 Windows Home (x64) 并已激活许可证,或使用 Windows Server(优先使用 Oracle 的产品)
步骤 1:安装 Java,版本为 jdk 8u112 或更高(8Ux),下载链接:JDKv8U112

步骤 2:安装 Oracle Database 19c,下载链接:Oracle 19c
准备一个用于安装数据库的文件夹,创建如下路径,并将刚下载的数据库 zip 文件解压到此处 C:\app\oracle\product\19c\db_home1
以管理员权限运行 setup.application 文件

按照 数据库安装指南 中的说明逐步执行
务必注意:
在步骤 8/17,记得勾选 Create as Container database,以创建一个可插拔数据库,供接下来的 Fusion Middleware 安装过程使用。

在步骤 9/17,选择字符集为 Unicode (AL32UTF8)



步骤 3:安装 SQL Developer,no-jre 版本,下载链接:SQLDev-NoJRE

以管理员权限运行 sqldeveloper.application 文件

按下图设置新连接的各参数,注意修改 Username 和 Password(如上文示例为 hr)、Hostname(默认为 localhost)、Port(默认为 1521)、SID(即步骤 2 中安装的全局数据库名)

如果点击 Test 时提示 Success,则连接成功,点击 Connect
步骤 4:安装 Fusion Middleware Infrastructure (FMW) 12.2.1.3.0 版本,下载链接 FMW_ver_12.2.1.3.0

步骤 5:安装 Oracle Business Intelligence (OBIEE) 12.2.1.4.0 版本,下载链接:OBIEE_ver_12.2.1.4.0
以管理员权限运行 setup_bi_platform-12.2.1.4.0_win64.exe 文件

按照 OBIEE 安装指南 逐步安装
注意:BI 的路径必须与已安装 FMW 的路径一致,例如这里是 Oracle/Middleware/Oracle_Home

步骤 6:使用 Repository Creation Utility (RCU) 工具设置 BI Schema
在路径 C:\Oracle\Middleware\Oracle_Home\oracle_common\bin 下,以管理员权限运行 rcu.bat 文件
依次执行以下步骤




步骤 7:为 OBIEE 设置环境变量

步骤 8:创建 BI Domain





在步骤 4,如果系统提示 fail to logon,请重新检查 domain 密码是否正确
在步骤 8,如果系统报错如下图,请检查你是否已激活 Windows 许可证,以及你的 Windows 是否符合前文“条件”部分的描述。
![]()
步骤 9:设置完成后,访问刚创建的 BI domain,路径为 $Oracle_Home\user_projects\domains\bi\servers\AdminServer\tmp_WL_user\adf.oracle.domain.webapp\i83uao
将这里所有的 jar 文件复制到一个单独的文件夹中,并共享到攻击机(在搭建实验环境时这样做;实际攻击时,攻击机上也需要像目标机一样安装,才能获取源码)
同时将路径 $Oracle_Home\coherence\lib 下的 coherence.jar 库添加到该文件夹中。
这是决定 payload 能否成功的重要目录,因为每个 FMW 或 BI 版本、以及每台机器的安装环境通常会有所不同,因此需要版本精确,以降低在传输 payload 时出现风险或异常(exception)的可能性。
步骤 10(仅当需要远程调试时执行;再次强调,如果在真实环境之外测试,由于无法随意设置受害者机器,因此攻击者需要在自己的机器上也完成目标机的设置,以便能够远程调试并检查错误)
安装 mozilla,添加端口为 8181 的 Burp 代理
在 BI 服务器端启用远程调试
访问 localhost:9500/console
在 Domain Structure -> 选择 bi -> Environment -> Servers

将显示两个服务器,即 Weblogic 的 AdminServer 和 BI 的 bi_server1
图 10.2:显示的服务器列表
选择左上角的 Lock & Edit,勾选 bi_server1 以编辑配置。接着点击 Configuration -> Server start -> 向下滚动到底部,选择 Advance(如果有)-> 选择并输入 Arguments -> 输入调试参数:
-Xdebug -Xnoagent – Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n
(如果之后出现无法重启的错误,可以尝试使用 0.0.0.0:5005 重启 bi_server1)
输入 weblogic 密码(之前在 Config BI Domain 部分设置的)-> Apply change & Restart