oracle TNS Listener远程投毒(CVE-2012-1675)漏洞潜析、复现
字数 1072 2025-08-27 12:33:48

Oracle TNS Listener远程投毒漏洞(CVE-2012-1675)分析与复现指南

漏洞概述

CVE-2012-1675是Oracle数据库TNS Listener组件中存在的一个严重安全漏洞,允许攻击者在不进行身份验证的情况下实施中间人攻击(MITM),窃取敏感数据库信息。

漏洞原理

该漏洞的核心问题在于TNS Listener组件对数据库服务注册缺乏有效的认证机制:

  1. 信任机制缺陷:TNS Listener允许任何客户端注册为"自家人",无需提供用户名和密码验证
  2. 负载均衡滥用:当存在同名数据库服务时,监听器会基于负载均衡原则将连接请求分发到负载较低的数据库
  3. 中间人攻击:攻击者可注册同名数据库服务,诱使合法连接被重定向到攻击者控制的数据库,从而截获通信数据

漏洞影响

  • 默认配置下易受攻击
  • 可导致敏感数据库凭证和查询数据泄露
  • 与CVE-2012-3137组合使用时危害更大

漏洞复现

环境要求

  • 攻击者必须拥有Oracle数据库环境
  • 目标数据库与攻击者数据库需使用相同的服务名(6字符限制)

复现步骤

1. 漏洞检测

使用Metasploit框架的tnspoison_checker模块进行检测:

use auxiliary/scanner/oracle/tnspoison_checker
set RHOSTS <目标IP>
run

若返回信息确认存在漏洞,则可进行下一步攻击。

2. 实施攻击

使用专用脚本发起TNS投毒攻击:

python tnspoisonv1.py <攻击者IP> <端口> <数据库名> <受害者IP> <端口>

注意:数据库名必须与目标数据库的服务名完全相同。

3. 捕获流量

  1. 诱使用户执行正常数据库操作(登录、查询等)
  2. 使用Wireshark等工具捕获网络流量
  3. 过滤TNS协议流量,分析捕获的数据包

数据捕获分析

  • 认证凭证:可在TNS协议数据包中找到数据库账号信息
  • 查询语句:能够拦截用户执行的SQL查询内容

防御措施

  1. 配置VALID_NODE_CHECKING:在sqlnet.ora文件中设置以下参数:

    VALID_NODE_CHECKING=ON
    
  2. 限制注册:配置TNS Listener仅允许可信节点注册服务

  3. 服务名管理

    • 使用复杂、独特的服务名
    • 避免使用默认或易猜测的服务名
  4. 网络隔离

    • 将Oracle数据库服务置于受保护网络区域
    • 实施网络访问控制列表(ACL)
  5. 补丁更新:及时应用Oracle发布的安全补丁

总结

CVE-2012-1675漏洞利用Oracle TNS Listener的信任机制缺陷,允许攻击者实施中间人攻击窃取敏感数据。虽然利用条件有一定限制(需知道目标服务名且长度为6字符),但与CVE-2012-3137等漏洞组合使用时危害显著增加。管理员应通过配置VALID_NODE_CHECKING等措施加强防护,并及时更新补丁。

Oracle TNS Listener远程投毒漏洞(CVE-2012-1675)分析与复现指南 漏洞概述 CVE-2012-1675是Oracle数据库TNS Listener组件中存在的一个严重安全漏洞,允许攻击者在不进行身份验证的情况下实施中间人攻击(MITM),窃取敏感数据库信息。 漏洞原理 该漏洞的核心问题在于TNS Listener组件对数据库服务注册缺乏有效的认证机制: 信任机制缺陷 :TNS Listener允许任何客户端注册为"自家人",无需提供用户名和密码验证 负载均衡滥用 :当存在同名数据库服务时,监听器会基于负载均衡原则将连接请求分发到负载较低的数据库 中间人攻击 :攻击者可注册同名数据库服务,诱使合法连接被重定向到攻击者控制的数据库,从而截获通信数据 漏洞影响 默认配置下易受攻击 可导致敏感数据库凭证和查询数据泄露 与CVE-2012-3137组合使用时危害更大 漏洞复现 环境要求 攻击者必须拥有Oracle数据库环境 目标数据库与攻击者数据库需使用相同的服务名(6字符限制) 复现步骤 1. 漏洞检测 使用Metasploit框架的 tnspoison_checker 模块进行检测: 若返回信息确认存在漏洞,则可进行下一步攻击。 2. 实施攻击 使用专用脚本发起TNS投毒攻击: 注意 :数据库名必须与目标数据库的服务名完全相同。 3. 捕获流量 诱使用户执行正常数据库操作(登录、查询等) 使用Wireshark等工具捕获网络流量 过滤TNS协议流量,分析捕获的数据包 数据捕获分析 认证凭证 :可在TNS协议数据包中找到数据库账号信息 查询语句 :能够拦截用户执行的SQL查询内容 防御措施 配置VALID_ NODE_ CHECKING :在sqlnet.ora文件中设置以下参数: 限制注册 :配置TNS Listener仅允许可信节点注册服务 服务名管理 : 使用复杂、独特的服务名 避免使用默认或易猜测的服务名 网络隔离 : 将Oracle数据库服务置于受保护网络区域 实施网络访问控制列表(ACL) 补丁更新 :及时应用Oracle发布的安全补丁 总结 CVE-2012-1675漏洞利用Oracle TNS Listener的信任机制缺陷,允许攻击者实施中间人攻击窃取敏感数据。虽然利用条件有一定限制(需知道目标服务名且长度为6字符),但与CVE-2012-3137等漏洞组合使用时危害显著增加。管理员应通过配置VALID_ NODE_ CHECKING等措施加强防护,并及时更新补丁。