【环境介绍】

系统环境:Solaris + Oracle 11GR2 + 单机/RAC
 
【背景描述】
基于集团数据库安全检查项,需要数据库的远程投毒漏洞进行修复。
根据Oracle官方提供的修复文档:
Using Class of Secure Transport (COST) to Restrict Instance Registration (Doc ID 1453883.1)
Using Class of Secure Transport (COST) to Restrict Instance Registration in Oracle RAC (Doc ID 1340831.1)
对于低于11GR2版本的修复方法这里不做介绍,单机比较简单,但是RAC环境修复相对比较复杂,同时会触发其他的BUG,在11GR2版本中建议使用VNCR的配置进行修复,且方法非常简单。
Valid Node Checking For Registration (VNCR) (Doc ID 1600630.1)
listener.ora文件添加如下内容(单机):
VALID_NODE_CHECKING_REGISTRATION_LISTENER =ON
REGISTRATION_INVITED_NODES_LISTENER=(host的IP都列进来)
listener.ora文件添加如下内容(RAC):
VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN3=ON
VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN2=ON
VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN1=ON
VALID_NODE_CHECKING_REGISTRATION_LISTENER =ON
REGISTRATION_INVITED_NODES_LISTENER=(两台host的IP都列进来)
该功能在12C以上的版本是默认打开的,所以不存在该漏洞。
PS:添加白名单方式也可以修复改漏洞,前提是IP列表得是具体的IP,不是IP网段的方式。
sqlnet.ora文件添加如下内容:
tcp.validnode_checking=yes
tcp.invited_nodes=(具体的IP信息,或者网段)
tcp.excluded_nodes=(具体的IP信息,或者网段)
 
【问题处理】
这里使用单机进行测试信息:
数据库主机:192.168.142.140
扫描工具主机:192.168.142.141(必须不在同一主机上)
远程漏洞投毒扫描工具:metasploit-framework 是比较普遍的检查工具
安装方法:
linux:https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers
Windows:https://windows.metasploit.com/(32位)
[root@mysqldb2 soft]# curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5525  100  5525    0     0   2291      0  0:00:02  0:00:02 --:--:--  2291
[root@mysqldb2 soft]# ls -trl
总用量 5525
-rw-r--r-- 1 root root      5525 6月  15 18:00 msfinstall
[root@mysqldb2 soft]# chmod 755 msfinstall
[root@mysqldb2 soft]# ./msfinstall
Checking for and installing update..
Adding metasploit-framework to your repository list..已加载插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
base                                                                                                                                                                  | 4.1 kB  00:00:00    
metasploit                                                                                                                                                            | 2.9 kB  00:00:00    
metasploit/primary_db                                                                                                                                                 |  11 kB  00:00:05    
正在解决依赖关系
--> 正在检查事务
---> 软件包 metasploit-framework.x86_64.0.4.17.24+20181103093740~1rapid7-1.el6 将被 安装
--> 解决依赖关系完成
依赖关系解决
=============================================================================================================================================================================================
 Package                                        架构                             版本                                                             源                                    大小
=============================================================================================================================================================================================
正在安装:
 metasploit-framework                           x86_64                           4.17.24+20181103093740~1rapid7-1.el6                             metasploit                           158 M
事务概要
=============================================================================================================================================================================================
安装  1 软件包
总下载量:158 M
安装大小:368 M
Downloading packages:
metasploit-framework-4.17.24+20181103093740~1rapid7-1.el6.x86_64.rpm            31% [=====================-                                                ] 1.4 MB/s |  49 MB  00:01:16 ETA metasploit-framework-4.17.24+20181103093740~1rapid7-1.el6.x86_64.rpm            31% [======================    警告:/var/cache/yum/x86_64/7Server/metasploit/packages/metasploit-framework-4.17.24+20181103093740~1rapid7-1.el6.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 2007b954: NOKEY
metasploit-framework-4.17.24+20181103093740~1rapid7-1.el6.x86_64.rpm 的公钥尚未安装
metasploit-framework-4.17.24+20181103093740~1rapid7-1.el6.x86_64.rpm                    | 158 MB  00:02:25    
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Metasploit 检索密钥
导入 GPG key 0x2007B954:
 用户ID     : "Metasploit <metasploit@rapid7.com>"
 指纹       : 09e5 5faf 4f78 62cd 6d55 8997 cdfb 5fa5 2007 b954
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-Metasploit
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : metasploit-framework-4.17.24+20181103093740~1rapid7-1.el6.x86_64                                                                                                         1/1
Run msfconsole to get started
  验证中      : metasploit-framework-4.17.24+20181103093740~1rapid7-1.el6.x86_64                                                                                                         1/1
已安装:
  metasploit-framework.x86_64 0:4.17.24+20181103093740~1rapid7-1.el6                                                                                                                        
完毕!
[root@mysqldb2 soft]# 
验证是否正常:
[root@mysqldb2 soft]# msfconsole
.....》》》省略部分显示
       =[ metasploit v4.17.24-dev-                        ]
+ -- --=[ 1824 exploits - 1033 auxiliary - 318 post       ]
+ -- --=[ 541 payloads - 44 encoders - 10 nops            ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]
msf >
msf > use auxiliary/scanner/oracle/tnspoison_checker
msf auxiliary(scanner/oracle/tnspoison_checker) > set rhosts 192.168.142.140 》》》设置为需要测试的数据库IP
rhosts => 192.168.142.140
msf auxiliary(scanner/oracle/tnspoison_checker) > show options
Module options (auxiliary/scanner/oracle/tnspoison_checker):
   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS   192.168.142.140  yes       The target address range or CIDR identifier
   RPORT    1521             yes       The target port (TCP)
   THREADS  1                yes       The number of concurrent threads
msf auxiliary(scanner/oracle/tnspoison_checker) > run
[+] 192.168.142.140:1521 - 192.168.142.140:1521 is vulnerable 》》》说明远程投毒漏洞存在
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(scanner/oracle/tnspoison_checker) > use auxiliary/admin/oracle/tnscmd 》》》具体进行渗透测试
msf auxiliary(admin/oracle/tnscmd) > set rhost 192.168.142.140
rhost => 192.168.142.140
msf auxiliary(admin/oracle/tnscmd) > show options
Module options (auxiliary/admin/oracle/tnscmd):
   Name   Current Setting                   Required  Description
   ----   ---------------                   --------  -----------
   CMD    (CONNECT_DATA=(COMMAND=VERSION))  no        Something like ping, version, status, etc..
   RHOST  192.168.142.140                   yes       The target address
   RPORT  1521                              yes       The target port (TCP)
msf auxiliary(admin/oracle/tnscmd) > run
[*] 192.168.142.140:1521 - Sending '(CONNECT_DATA=(COMMAND=VERSION))' to 192.168.142.140:1521
[*] 192.168.142.140:1521 - writing 90 bytes.
[*] 192.168.142.140:1521 - reading
[*] 192.168.142.140:1521 - .e......"..Y(DESCRIPTION=(TMP=)(VSNNUM=186647552)(ERR=1189)(ERROR_STACK=(ERROR=(CODE=1189)(EMFI=4))))
[*] Auxiliary module execution completed
msf auxiliary(admin/oracle/tnscmd) >
 
以上显示该数据库存在远程投毒的漏洞。
现在对数据库的配置进行修改:
[oracle@mysqldb1 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = mysqldb1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = /u01/app/oracle
VALID_NODE_CHECKING_REGISTRATION_LISTENER =ON
REGISTRATION_INVITED_NODES_LISTENER=(192.168.142.140)
[oracle@mysqldb1 admin]$
然后重启监听即可。
现在再用软件进程测试:
[root@mysqldb2 ~]# msfconsole
.....》》》忽略部分显示内容
       =[ metasploit v4.17.24-dev-                        ]
+ -- --=[ 1824 exploits - 1033 auxiliary - 318 post       ]
+ -- --=[ 541 payloads - 44 encoders - 10 nops            ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]
msf > use auxiliary/scanner/oracle/tnspoison_checker
msf auxiliary(scanner/oracle/tnspoison_checker) > set rhosts 192.168.142.140
rhosts => 192.168.142.140
msf auxiliary(scanner/oracle/tnspoison_checker) > show options
Module options (auxiliary/scanner/oracle/tnspoison_checker):
   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS   192.168.142.140  yes       The target address range or CIDR identifier
   RPORT    1521             yes       The target port (TCP)
   THREADS  1                yes       The number of concurrent threads
msf auxiliary(scanner/oracle/tnspoison_checker) > run
[-] 192.168.142.140:1521 - 192.168.142.140:1521 is not vulnerable》》》已经不存在该漏洞
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(scanner/oracle/tnspoison_checker) > 
 
PS:由于无法截图,于是贴的文字较多。

11GR2 Oracle数据库的远程投毒VNCR方式修复的更多相关文章

  1. Java连接Oracle数据库的三种连接方式

    背景: 这两天在学习Oracle数据库,这里就总结下自己上课所学的知识,同时记录下来,方便整理当天所学下的知识,也同时方便日后自己查询. SQL语句的话,这里我就不多讲了,感觉和其他的数据库(MySQ ...

  2. Oracle 数据库启动与关闭 各种方式详解整理

    概述 只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库. 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库. 虽然数据库正常运行,但如果 ...

  3. Oracle数据库迁移的几种方式

    面试: 一.exp/imp逻辑备份与恢复: 二.Storage存储迁移: 将数据文件.控制文件.日志文件.spfile挂到新机器上,然后在新机器上启动数据库. 三.利用data guard迁移: 四. ...

  4. Mac下配置Oracle数据库客户端远程连接数据库服务器

    下载mac数据库客户端: 地址:http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html 下载这俩个:(来源:http:// ...

  5. java对象属性为date oracle数据库字段为Timestamp 处理方式

    解决方案 SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date da ...

  6. oracle数据库启动和关闭方式

    Oracle数据库是重量级的,其管理非常复杂,将其在Linux平台上的启动和关闭步骤整理一下. 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_p ...

  7. 远程连接Oracle数据库

    ylbtech-Oracle:远程连接Oracle数据库  所谓远程连接Oracle数据库,是指Oracle数据库服务器和Oracle客户端分别安装在2台电脑上,我们使用Oracle客户端来连接在另一 ...

  8. Oracle数据库导入、导出(远程、10g、11g)

    1  查看oracle的版本信息 (1)用客户端连接到数据库,执行select * from v$instance             查看version项 (2)select * from pr ...

  9. Oracle数据库本地和远程导入、导出

    exp本地导出与imp本地导入 exp命令: 1 exp username/psw@TEST file=d:test.dmp full=y 2 exp username/psw@TEST file=d ...

随机推荐

  1. WSL(Windows Subsystem for Linux)--Pico Process Overview

    [转载] Windows Subsystem for Linux -- Pico Process Overview Overview This post discusses pico processe ...

  2. samba介绍和安装

    samba基本介绍 为什么需要samba 早期网络文件数据在不同主机之间传输大都可以使用Ftp完成,不过ftp使用有个小小的问题,它不能让你之间修改主机上的文件.要想修改必须要通过下载——修改——上传 ...

  3. linux系统mysql-5.7 修改字符集

    起因:我在网上看修改mysql字符的文章时,都说配置/etc/mysql/my.cnf文件 然而我打开我上述的my.cnf文件时,发现里面的内容跟别人的不一样,我就觉得这个肯定不是正确的文件 经过我在 ...

  4. CMake与Make最简单直接的区别 [转]

    写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe. 但如果源文件太多,一个一个编译时就会特别麻烦 ...

  5. 《JAVA程序设计》_第八周学习总结

    一.学习内容 1.泛型类声明--15.1知识 可以使用"class 名称"声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,如: class People<E> ...

  6. LINQ 之 GroupBy

    声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 本文作者文采欠佳,文字表达等方面不是很好,但实际的代码例子是非常实用的,请作参考. 一.先准备要使用的类: 1.Person类: cl ...

  7. Mysql [Err] 1292 - Truncated incorrect DOUBLE value

    Mysql [Err] 1292 - Truncated incorrect DOUBLE value: 'a' - 苍 - 博客园 https://www.cnblogs.com/cang12138 ...

  8. Django(九)上:ModelForm操作

    一.内容回顾 Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form - class LoginForm(Form): email = ...

  9. P2801 教主的魔法(分块入门)

    两个月之前听yyr学长讲的分块,感觉是个很神奇的暴力,但到现在还是懵的一匹 #include<bits/stdc++.h> using namespace std; ; int belon ...

  10. 关键字:This(上)

    对象初始化内存图: this 是一个关键字,表示对象本身,本质上this中存有一个引用,引用对象本身. this用于访问本对象属性,同时解决局部变量和成员变量同名的问题(接有参构造中第二种解决方案.. ...