当前位置: 首页 > news >正文

oracle TNS Listener 远程投毒漏洞修复

有个客户在等保测评过程,测评公司扫出一个关于oracle的漏洞如下:
在这里插入图片描述
客户是RAC环境11.2.0.4,在生产修复漏洞前我做了如下测试验证:

测试环境准备:

  1. RAC一套11.2.0.4 实例名dbserver
[oracle@hisdb1 ~]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.31.160.112 hisdb1
172.31.160.113 hisdb210.255.160.5 hisdb1-priv1
10.255.160.6 hisdb2-priv110.254.160.5 hisdb1-priv2
10.254.160.6 hisdb2-priv2172.31.160.114 hisdb1-vip
172.31.160.115 hisdb2-vip172.31.160.111 hisdb-scan
  1. 单机Oracle一套11.2.0.4(这里使用的是windows环境) 实例名orcl
    数据库地址:172.31.160.110

测试:我们要将单机数据库远程注册到RAC服务器

  1. 单机数据库配置remote_listener参数
--这里注册使用的是rac节点1的public ip,之前使用的是scan_ip无法注册,具体原因未知。
SQL> alter system set remote_listener='(ADDRESS = (PROTOCOL = TCP)(HOST =172.31.160.112)(PORT = 1521))' scope=memory;
系统已更改。
SQL> alter system register;
系统已更改。

在这里插入图片描述

–我们这是临时注册,所以只写在内存中,重启后失效

  1. RAC数据库查看是否有远程注册
[grid@hisdb1 ~]$ lsnrctl services listener

在这里插入图片描述

图中sevice为orcl的实例remote server为远程注册,同时这个也提示存在远程注册漏洞。

  1. 修改RAC两节点listener.ora配置
--RAC监听配置文件位于grid用户$ORACLE_HOME/network/admin/下
--修改前做好listener.ora备份
在listener.ora中添加如下内容
VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON
VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN1=ON
REGISTRATION_INVITED_NODES_LISTENER_SCAN1=(172.31.160.112,172.31.160.113,172.31.160.114,172.31.160.115,172.31.160.111)
-- REGISTRATION_INVITED_NODES_LISTENER_SCAN1参数中ip地址为RAC节点所有public_ip、vip、scan_ip

修改完监听配置文件要重启一下scan和listener

Grid用户重启监听:snrctl reload
Oracle重启scan:
srvctl stop scan
srvctl stop scan_listener
srvctl start scan
srvctl start scan_listener
  1. 重新测试
    –将单机数据库remote_listener参数置空,或者指向别的库,重新注册一下。
    在这里插入图片描述

–重新配置单机数据库remote_listener参数,重新注册一下。
在这里插入图片描述

–RAC上查看是否还有远程注册
在这里插入图片描述

没有显示有remote server,漏洞修复成功。

http://www.lryc.cn/news/176902.html

相关文章:

  • 第二章:最新版零基础学习 PYTHON 教程(第一节 - Python 输入/输出–在 Python 中获取输入)
  • react create-react-app v5 从零搭建项目
  • 2023软件测试八股文,涵盖所有面试题
  • 性能压力测试的定义及步骤是什么
  • Selenium自动化中处理鼠标悬停并操作的方法
  • python socket 编程实现猜数字
  • 20个提升效率的JS简写技巧,告别屎山!
  • Pikachu靶场——SSRF 服务端请求伪造
  • Android file
  • 【计算机网络】计网常见面试题总结
  • SpringMVC 学习(七)JSON
  • 重学C++ | std::set 的原理
  • AnV-X6使用及总结
  • Go 围炉札记
  • 数据分析回头看2——重复值检查/元素替换/异常值筛选
  • 什么是OSPF?为什么需要OSPF
  • 轻量级的日志采集组件 Filebeat 讲解与实战操作
  • C# 委托和事件
  • 数据结构与算法之字典: Leetcode 349. 两个数组的交集 (Typescript版)
  • day-56 代码随想录算法训练营(19)动态规划 part 16
  • 蓝桥等考Python组别四级005
  • 【Linux】diff 命令
  • 【51单片机】9-定时器和计数器
  • 2023年海南省职业院校技能大赛(高职组)信息安全管理与评估赛项规程
  • 大模型深挖数据要素价值:算法、算力之后,存储载体价值凸显
  • AI文章,AI文章生成工具
  • mac有必要用清理软件吗?有哪些免费的清理工具
  • React 全栈体系(十八)
  • TCP/UDP
  • c++内存对齐