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

【中危】Oracle TNS Listener SID 可以被猜测

一、漏洞详情

        Oracle 打补丁后,复测出一处中危漏洞:Oracle TNS Listener SID 可以被猜测。

        可以通过暴力猜测的方法探测出Oracle TNS Listener SID,探测出的SID可以用于进一步探测Oracle 数据库的口令。

建议解决办法:

1. 不应该使用安装Oracle时默认的SID(ORCL),应该设置复杂度较高的SID。
2. 对于短时间内难以通过第1种方式修补漏洞的情况,应考虑加强主机和网络层面的访问控制策略。例如采用白名单的方式,仅允许授权主机IP访问该端口,避免漏洞被攻击者恶意利用。

二、方案分析

       以上方案都可,但是一般不建议改SID,因为涉及改动可能会比较多。因此,本次采用第二种办法,即白名单方式。

       白名单方式有两种:1)服务器层面-白名单,开启防火墙,指定IP才能访问服务器。

                                        2)数据库层面-白名单,指定IP才能连接数据库。

       第一种方式,简单粗暴又有效,直接限制IP即可。√ 直接采用即可

       第二种方式,某些IP可访问服务器,但是无法访问该数据库,以下第三章节为实验尝试。

三、实验尝试(数据库层面)

3.1实验前

14服务器作为测试服务器,文件及查看如下:

1)文件:$ORACLE_HOME/network/admin/sqlnet.ora

2)连库:

sqlplus nh_dw_aml/aml1102@192.168.3.14/orclpdb1

3.2修改

1)修改 sqlnet.ora :

vim $ORACLE_HOME/network/admin/sqlnet.ora

增加内容:

#需要设置成yes,方可激活生效
tcp.validnode_checking = yes#允许访问的IP                                   
tcp.invited_nodes=(192.168.3.14,192.168.3.16,192.168.4.159)#不允许访问的IP
#tcp.excluded_nodes=(10.240.1.8,10.240.1.7) 

结果:cat sqlnet.ora

2)重启监听:

当监听的实例还未注册好时,会提示:

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor


Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied

过一会,监听再次查看。实例注册后,即可正常连库。

3)查看结果:

A.本地客户端连接:

B.14服务器本地查看(名单内):OK

C.16服务器本地查看(名单内):OK

D.13服务器查看(非名单内):NO   ORA-12547连接丢失

3.3实验总结

名单内,正常访问

非名单内,提示ORA-12547: TNS:lost contact(连接丢失)
                  Enter user-name:

命令清单:

su - oracle

vim $ORACLE_HOME/network/admin/sqlnet.ora

      tcp.validnode_checking = yes  #需要设置成yes,方可激活生效                                  
      tcp.invited_nodes=(192.168.3.14,192.168.3.16,192.168.4.159)  #允许访问的IP
    #tcp.excluded_nodes=(10.240.1.8,10.240.1.7) #不允许访问的IP

lsnrctl stop

lsnrctl start

lsnrctl status

连接测试:sqlplus 用户名/密码@ip/pdb实例名

四、最终结果

开启服务器防火墙,将可访问IP配入白名单。

复测,漏洞消失。ok

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

相关文章:

  • 三维测量与建模笔记 - 简介
  • Glide 简易教程
  • flutter 使用三方/自家字体
  • 2024台州赛CTFwp
  • 词根plac-和place、please
  • ubuntu下route命令详解
  • 13.java面向对象:面向对象的三大特征
  • 【VUE】Vue中的内置组件
  • 若依框架篇-若依框架搭建具体过程、后端源代码分析、功能详解(权限控制、数据字典、定时任务、代码生成、表单构建、接口测试)
  • 恢复已删除文件的 10 种安卓数据恢复工具
  • Internet Download Manager2025快速下载,新功能解锁!
  • 传感器应用注意事项
  • PayPal美区账号注册指南
  • 《鸟哥的Linux私房菜基础篇》---1 Linux的介绍与如何开启Linux之路
  • 选择排序,插入排序,快速排序的java简单实现
  • 数据库中,超出范围和溢出问题的一些处理方法
  • Re75 读论文:Toolformer: Language Models Can Teach Themselves to Use Tools
  • Android App系统签名
  • Shiro认证(Authentication)
  • Qt和c++面试集合
  • Spark 3.3.x版本中的动态分区裁剪(DPP,Dynamic Partition Pruning)的实现及应用剖析
  • Android 各国语言value文件夹命名规则
  • 深入理解Redis锁与Backoff重试机制在Go中的实现
  • uniapp-小程序开发0-1笔记大全
  • Go语言数据库操作深入讲解
  • 搜维尔科技:SenseGlove Nova 2触觉反馈手套开箱测评
  • 步步精科技诚邀您参加2024慕尼黑华南电子展
  • OPC UA与PostgreSQL如何实现无缝连接?
  • C语言[斐波那契数列2]
  • 八、Linux之实用指令