安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 网络安全 > 漏洞分享 > Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法,tnscve-2012-1675

Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法,tnscve-2012-1675

时间:2017-06-06来源:未知 作者:安云网点击:
环境:Windows 2008 R2 + Oracle 10.2.0.3 应用最新bundle patch后,扫描依然报出漏洞 Oracle Database Server TNS Listener远程数据投毒漏洞(CVE-2012-1675) •1.确定解决方案 •2.应用解决方案 •3.验证修补情况 •4.Reference 1.确定解决方案 安全厂家给出

环境:Windows 2008 R2 + Oracle 10.2.0.3

//copyright AnYun.ORG

应用最新bundle patch后,扫描依然报出漏洞 Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)

//内容来自安云网

•1.确定解决方案

//本文来自安云网

•2.应用解决方案

//内容来自AnYun.ORG

•3.验证修补情况

//ANYUN.ORG

•4.Reference
//ANYUN.ORG

1.确定解决方案

//copyright AnYun.ORG

安全厂家给出的解决办法:

//ANYUN.ORG

链接:http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html

//内容来自AnYun.ORG

根据此链接得到解决方法:
//本文来自安云网

Solution
Recommendations for protecting against this vulnerability can be found at:
My Oracle Support Note 1340831.1 for Oracle Database deployments that use Oracle Real Application Clusters (RAC).
My Oracle Support Note 1453883.1 for Oracle Database deployments that do not use RAC. //copyright AnYun.ORG 

目前这里环境不是RAC,参考文档1453883.1:
//copyright AnYun.ORG

Using Class of Secure Transport (COST) to Restrict Instance Registration (文档 ID 1453883.1)

//copyright AnYun.ORG

找到两种解决方案:

//ANYUN.ORG

SOLUTION
There are two methods that can be used to protect the listener using COST "SECURE_REGISTER_listener_name =" in stand alone database installations.
1) Restricting registration to the TCP protocol (Requires the fix for BUG:12880299)
- or - 
2) Restricting registration to the IPC protocol (The patch for BUG:12880299 is NOT required for the IPC method)
Either method accomplishes the same goal but it is your choice which type to implement subject to the restriction* noted below. Both methods will be discussed.
•The second method (using IPC) cannot be used if the database is a member of an Oracle Data Guard broker configuration. 

//copyright AnYun.ORG

我这里选择第一种解决方案:

//本文来自安云网

1) Restricting registration to the TCP protocol (Requires the fix for BUG:12880299)。
//copyright AnYun.ORG

2.应用解决方案
//copyright AnYun.ORG

2.1 确定现状
//内容来自AnYun.ORG

监听配置文件:listener.ora

//内容来自AnYun.ORG

存放路径:cd %ORACLE_HOME%/network/admin

//本文来自安云网

内容(保证安全,所有IP相关信息已二次处理):
//ANYUN.ORG

# listener.ora Network Configuration File: E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.138)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ANY")
)
(SID_DESC =
(GLOBAL = orcl)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
)
ADR_BASE_LISTENER = E:\oracle //安云网咨询系统 

数据库监听信息,原始都是空值:
//ANYUN.ORG

SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------
local_listener string
SQL> show parameter remote_listener;
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------
remote_listener string
SQL> 

//内容来自AnYun.ORG

2.2 尝试应用解决方案

//copyright AnYun.ORG

2.2.1 停止监听
//内容来自AnYun.ORG

lsnrctl stop listener

//安云网,anyun.org

2.2.2 修改监听配置文件

//copyright AnYun.ORG

Add the COST TCP protocol restriction "SECURE_REGISTER_[listener_name] = (TCP)" to the listener.ora.
Match the COST parameter variable listener_name with the name of the listener you are using in the listener.ora, e.g., If your listener name is "LISTENER_PROD" then use SECURE_REGISTER_LISTENER_PROD = (TCP) 

//安云网咨询系统

实际修改过程:
//内容来自AnYun.ORG

切换到监听配置文件所在路径:

//安云网,anyun.org

cd %ORACLE_HOME%/network/admin 

//本文来自安云网

直接修改listener.ora文件,在文件的末尾添加一行:
//内容来自安云网

SECURE_REGISTER_LISTENER = (TCP) //ANYUN.ORG 

2.2.3 启动监听
//安云网咨询系统

启动监听:

//ANYUN.ORG

lsnrctl start listener //本文来自安云网 

立即注册动态监听:
//copyright AnYun.ORG

SQL> alter system register; 

//安云网,anyun.org

2.2.4 设置local_listener
//本文来自安云网

alter system set local_listener='(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.138)(PORT = 1521)))' scope = both;
show parameter local_listener //内容来自安云网 

2.2.5 查看监听服务信息
//内容来自AnYun.ORG

lsnrctl services listener
E:\oracle\product\10.2.0\db_1\network\ADMIN>lsnrctl services listener
LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 10:2
2:02
Copyright (c) 1991, 2006, Oracle. All rights reserved. 
//内容来自安云网
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已被拒绝:0
LOCAL SERVER
服务 "orcl" 包含 1 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:3 已被拒绝:0
LOCAL SERVER
命令执行成功 //内容来自安云网 

3.验证修补情况

//内容来自AnYun.ORG

3.1 注释COST规则验证监听情况
//安云网,anyun.org

3.1.1 注释掉listener.ora文件的COST规则并重启监听
//内容来自安云网

Comment the COST rule in listener.ora and restart the listener. //安云网咨询系统 

直接修改listener.ora文件,在之前添加的一行前面加上"#"注释此行。

//安云网,anyun.org

#SECURE_REGISTER_LISTENER = (TCP) //安云网,anyun.org 

重启监听:
//copyright AnYun.ORG

lsnrctl stop listener
lsnrctl start listener //copyright AnYun.ORG 

3.1.2 设置remote_listener后查看监听服务信息
//内容来自安云网

设置remote_listener:

//copyright AnYun.ORG

SQL> alter system set remote_listener='(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.138)(PORT = 1521))' scope=memory;
SQL> show parameter remote_listener //安云网咨询系统 

快速动态监听注册:
//本文来自安云网

SQL> alter system register; //本文来自安云网 

查看监听服务信息,发现有“REMOTE SERVER”字样,说明此时漏洞存在:

//本文来自安云网

E:\oracle\product\10.2.0\db_1\network\ADMIN>lsnrctl services listener

LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 10:4
4:18

Copyright (c) 1991, 2006, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已被拒绝:0
LOCAL SERVER
服务 "orcl" 包含 2 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已被拒绝:0
LOCAL SERVER
例程 "orcl", 状态 READY, 包含此服务的 2 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已拒绝:0 状态:ready
LOCAL SERVER
"DEDICATED" 已建立:0 已拒绝:0 状态:ready
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
服务 "orclXDB" 包含 1 个例程。
例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1002 状态: ready
DISPATCHER <machine: INSPUR-IRMS-138, pid: 6728>
(ADDRESS=(PROTOCOL=tcp)(HOST=INSPUR-IRMS-138)(PORT=52676))
服务 "orcl_XPT" 包含 1 个例程。
例程 "orcl", 状态 READY, 包含此服务的 2 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已拒绝:0 状态:ready
LOCAL SERVER
"DEDICATED" 已建立:0 已拒绝:0 状态:ready
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
命令执行成功 //安云网,anyun.org 

3.2 取消注释COST规则验证监听情况
//copyright AnYun.ORG

3.2.1 取消注释COST规则重启监听并快速注册,验证监听服务信息

//内容来自安云网

去掉监听文件末尾行前的“#”号:
//ANYUN.ORG

SECURE_REGISTER_LISTENER = (TCP) 
//内容来自安云网

重启监听:
//ANYUN.ORG

lsnrctl stop listener
lsnrctl start listener 

//安云网咨询系统

快速注册动态监听:

//内容来自AnYun.ORG

SQL> alter system register; 

//安云网咨询系统

验证监听服务信息,按官档描述,正常应该没有“REMOTE SERVER”字样:

//ANYUN.ORG

E:\oracle\product\10.2.0\db_1\network\ADMIN>lsnrctl services listener

LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 11:0
0:23

Copyright (c) 1991, 2006, Oracle. All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已被拒绝:0
LOCAL SERVER
服务 "orcl" 包含 2 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:1 已被拒绝:0
LOCAL SERVER
例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已拒绝:0 状态:blocked
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
服务 "orclXDB" 包含 1 个例程。
例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1002 状态: ready
DISPATCHER <machine: INSPUR-IRMS-138, pid: 6728>
(ADDRESS=(PROTOCOL=tcp)(HOST=INSPUR-IRMS-138)(PORT=52676))
服务 "orcl_XPT" 包含 1 个例程。
例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已拒绝:0 状态:blocked
REMOTE SERVER
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
命令执行成功 
实际发现有“REMOTE SERVER”字样,但是对应的监听都是blocked. 
//内容来自安云网

3.2.2 查看监听日志
//内容来自安云网

cd %ORACLE_HOME%/network/log

//内容来自安云网

listener.log日志文件已经有TNS-01194信息,跟官档一致:

//本文来自安云网

21-9月 -2016 11:00:23 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))(COMMAND=services)(ARGUMENTS=64)(SERVICE=listener)(VERSION=169870080)) * services * 0
21-9月 -2016 11:00:54 * service_register_NSGR * 1194
TNS-01194: 监听程序命令未到达安全传输
21-9月 -2016 11:01:54 * service_register_NSGR * 1194
TNS-01194: 监听程序命令未到达安全传输
21-9月 -2016 11:02:54 * service_register_NSGR * 1194
TNS-01194: 监听程序命令未到达安全传输 

//安云网,anyun.org

 3.2.3 还原remote_listener设置

//内容来自AnYun.ORG

测试完成,还原remote_listener设置

//安云网,anyun.org

alter system set remote_listener='' scope=memory;
SQL> alter system set remote_listener='' scope=memory; //内容来自安云网 

3.2.4 查看监听服务信息

//ANYUN.ORG

E:\oracle\product\10.2.0\db_1\network\ADMIN>lsnrctl services listener
LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 11:2
2:17
Copyright (c) 1991, 2006, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:0 已被拒绝:0
LOCAL SERVER
服务 "orcl" 包含 1 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
处理程序:
"DEDICATED" 已建立:1 已被拒绝:0
LOCAL SERVER
命令执行成功 //内容来自AnYun.ORG 

4.Reference //内容来自安云网

•Using Class of Secure Transport (COST) to Restrict Instance Registration (文档 ID 1453883.1) //copyright AnYun.ORG

http://www.bkjia.com/oracle/1162511.html

//内容来自AnYun.ORG

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容