1 / 5
文档名称:

Oracle中泄露“天机”的TNS.docx

格式:docx   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Oracle中泄露“天机”的TNS.docx

上传人:yixingmaoj 2016/7/8 文件大小:0 KB

下载得到文件列表

Oracle中泄露“天机”的TNS.docx

文档介绍

文档介绍:? 201 6 www . - 1- 一. Oracle 中泄露“天机”的 TNS 数据库的安全是长期存在的问题。在目前大量的数据泄露事件以及漏洞面前, 大家看到的大都是 SQl 注入、越权操作、缓冲区溢出等这些具体漏洞。往往却忽视了造成这些问题的前提,黑客想要入侵数据库一定会尝试获取数据库 ip 、端口和数据库版本号。没有 ip 和端口黑客对数据库的攻击将无从下手,也就无法对数据库发动真正有效的进攻。所以防止数据库 ip 、端口和版本号的泄露是防止***数据库的第一道防线。 数据库版本号的泄露途径要想防止黑客盗取数据库版本信息。首先就要弄清黑客是从哪些渠道获取数据库版本信息的, 然后才能提出切实有效的防御方案。本文仅针对 Oracle 讲解黑客获取 Oracle 数据库版本号的方式以及预防措施。除去社会工程学从技术角度出发 TNS ( ORTACLE 的网络核心组件) 是泄露数据库版本号的一个重要功能。安华金和数据库攻防实验室结合多年的经验与实践总结出黑客通过 TNS 获取 ORACLE 数据库版本信息主要有以下三种方式: 1. 身份验证前部分函数泄露数据库版本在 TNS 的通讯包中存在大量的函数调用。这些函数调用中有一部分函数会在进行身份验证之前被运行, 其中一部分函数会导致数据库版本信息外泄。从而使得只要黑客知道数据库 ip 和端口以及实例名就可以成功骗去数据库版本信息。其中最有代表的函数是 0x3B TTC 函数。客户端接收到服务器发送的接收包,服务器可能会选择商议附加的网络服务,约定客户端和服务器采用的身份验证、加密、数据完整性和管理等。在 ANO 商议头(下面包中的 0XDEADBEEF )后面的 3 个字节中可以找到服务器的数据库版本信息。? 201 6 www . - 2- 图中红线所指地方 0x0a200100 就是数据库版本信息, 只观可以判断版本为 (a在 16 进制里是 10 )。 报错信息泄露数据库版本如果 TNS 接到一个它无法识别的 TNS 命令(是格式正确,但内容不对),就会会送一个错误, 在这个错误中包含 VSNNUM , 它保存了一个十进制数字, 把该数字转成十六进制会得到数据库版本号。这种方式比上一种方式需求的信息更少,只需要数据库的 IP 和端口就可以进行数据库版本号的骗取。例如: C:\Documents and Settings\lsc>sqlplus scott/******@:1521/or (实例名、密码全不对,但格式正确。) 服务器会回答一个错误应答包如下图所示: 箭头所指的方向 VS NNUM=169869568 是 ORACLE 客户端的版本号。把这组数转成 16 进制变成 A200100 ? 201 6 www . - 3- 3. TNS 命令不合理使用泄露数据版本第三种也是最危险的一种。只需要有 IP 就能获取端口号、数据库版本号甚至操作系统版本号。危险的来源是本来 lsnrctl 的命令应该只在本地执行,但 oracle 为了照顾操作的灵活性, 某些版本支持 lsnrctl 远程使用。仅通过 IP 信息可以获取目标数据库所有外围敏感信息。例如我们 ping 发