一种无认证的Oracle版本探测的方法技术

技术编号:20745925 阅读:22 留言:0更新日期:2019-04-03 10:31
本发明专利技术涉及一种无认证的Oracle版本探测的方法,包括以下步骤:构造TNS连接包;通过Oracle数据库IP、端口与Oracle数据库建立Socket连接;客户端向Oracle数据库发送TNS连接包;Oracle数据库返回TNS拒绝包,客户端截取TNS拒绝包中的Oracle数据库版本变形信息;客户端将得到的Oracle数据库版本变形信息进行加工处理,得到真实版本号。本发明专利技术设计合理,无需用户名密码登录Oracle数据库,只需要Oracle数据库的IP和监听端口就可以直接获取Oracle数据库版本,具有安全可靠、实现成本低、便于实现等特点,可广泛应用于Oracle数据库安全检测、Oracle数据库审计、Oracle数据库防火墙、Oracle数据库安全网关、Oracle数据库资产梳理等Oracle数据库安全产品及渗透测试工具中。

【技术实现步骤摘要】
一种无认证的Oracle版本探测的方法
本专利技术属于Oracle数据库安全
,尤其是一种无认证的Oracle版本探测的方法。
技术介绍
在主机及Oracle数据库远程安全评估、Oracle数据库漏洞扫描等安全
,经常会用到主机及Oracle数据库探测技术。Oracle数据库漏洞扫描的首要步骤就是主机发现和Oracle数据库信息探测。Oracle数据库版本号是Oracle数据库信息的重要组成部分,对于Oracle数据库漏洞扫描及安全防护是至关重要的信息,在Oracle数据库防火墙等产品中也会广泛关注,是Oracle数据库安全检查和防护的前提。目前,对于上述应用场景,远程客户端通常需要登录Oracle数据库才能查询到Oracle数据库版本号,这种传统的方式因为需要知道Oracle数据库用户名密码限制比较大且成本较高。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提出一种设计合理、实现成本低且安全可靠的无认证的Oracle版本探测的方法。本专利技术解决其技术问题是采取以下技术方案实现的:一种无认证的Oracle版本探测的方法,包括以下步骤:步骤1、构造TNS连接包;步骤2、通过Oracle数据库IP、端口与Oracle数据库建立Socket连接;步骤3、客户端向Oracle数据库发送由步骤1构造的TNS连接包;步骤4、Oracle数据库返回TNS拒绝包,客户端截取TNS拒绝包中的Oracle数据库版本变形信息;步骤5、客户端将得到的Oracle数据库版本变形信息进行加工处理,得到真实版本号。所述步骤1构造的TNS连接包由通用包头header和payload组成。所述TNS连接包通用包头header的前两个字节为包长度,第五个字节为TNS类型;所述payload为一个TNS_CONNECT_header连接包结构体,连接包结构体的最后为ConnectData连接字符串,连接包结构体的第17、18字节为ConnectData长度,ConnectData的值为CONNECT_DATA=(COMMAND=version)。所述步骤5的具体处理方法为:首先将Oracle数据库版本变形信息进行十六进制转换,然后将十六进制字符串中的“00”替换为“0”,再将得到的十六进制数中的最高位字节转成十进制,最终将每两位数之间用“.”分割,得到详细的版本号信息,如“11.2.0.4.0”。本专利技术的优点和积极效果是:1、本专利技术基于oracletnsping工具的原理,通过对tnsping的命令方式进行改造,使其具有发现所有Oracle数据库版本号的功能;可以在Oracle数据库的用户名和密码未知的情况下,通过网络向Oracle数据库的监听服务端口,发送TNS连接包,通过Oracle数据库的返回拒绝包获得Oracle数据库的版本信息;由于基于Oracle本身的机制,因此对Oracle数据库的正常运行不会造成任何负面影响。2、本专利技术设计合理,无需用户名密码登录Oracle数据库,只需要Oracle数据库的IP和监听端口就可以直接获取Oracle数据库版本;采用OracleTNS协议机制,Oracle数据库实例即使没有启动,只要监听开启就可以探测到版本号,具有安全可靠、实现成本低、便于实现等特点,可广泛应用于Oracle数据库安全检测、Oracle数据库审计、Oracle数据库防火墙、Oracle数据库安全网关、Oracle数据库资产梳理等Oracle数据库安全产品及渗透测试工具中。附图说明图1是本专利技术的处理流程示意图;图2是本专利技术的客户端向Oracle数据库发送的TNS连接包的结构示意图;图3是本专利技术的Oracle数据库返回的TNS拒绝包的结构示意图。具体实施方式以下结合附图对本专利技术实施例做进一步详述。一种无认证的Oracle版本探测的方法,如图1所示,包括以下步骤:步骤1、构造TNS连接包:如图2所示,TNS包由一个8字节的通用包头header和payload组成,通用包头的前两个字节为包长度(包含通用包头),通用包头的第五个字节为TNS类型,本专利步骤一构造的TNS连接包类型为Connect(连接包)。payload部分为一个TNS_CONNECT_header连接包结构体,在客户端和Oracle建立连接时,客户端首先发送一个TNS_CONNECT_header连接包结构,然后服务器返回拒绝包,结构体的最后为ConnectData连接字符串,结构体第17、18字节为ConnectData长度,本专利技术ConnectData的值为“(CONNECT_DATA=(COMMAND=version))”。步骤2、通过Oracle数据库IP、端口与Oracle数据库建立Socket连接。步骤3、客户端向Oracle数据库发送由步骤1构造的TNS连接包。步骤4、Oracle数据库返回TNS拒绝包,客户端截取TNS拒绝包中的Oracle数据库版本变形信息。TNS拒绝包的具体结构如图3所示,客户端获取TNS拒绝包中的Oracle版本信息。步骤5、客户端将得到的Oracle数据库版本变形信息进行加工处理,得到真实版本号。本步骤中,对Oracle数据库版本变形信息进行加工处理的方法为:将获取到的Oracle数据库版本信息进行十六进制转换,然后将十六进制字符串中的“00”替换为“0”,再将得到的十六进制数中的最高位字节转成十进制,然后将每两位数之间用“.”分割,最终将得到详细的版本号信息,如“11.2.0.4.0”。需要强调的是,本专利技术所述的实施例是说明性的,而不是限定性的,因此本专利技术包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本专利技术的技术方案得出的其他实施方式,同样属于本专利技术保护的范围。本文档来自技高网...

【技术保护点】
1.一种无认证的Oracle版本探测的方法,其特征在于包括以下步骤:步骤1、构造TNS连接包;步骤2、通过Oracle数据库IP、端口与Oracle数据库建立Socket连接;步骤3、客户端向Oracle数据库发送由步骤1构造的TNS连接包;步骤4、Oracle数据库返回TNS拒绝包,客户端截取TNS拒绝包中的Oracle数据库版本变形信息;步骤5、客户端将得到的Oracle数据库版本变形信息进行加工处理,得到真实版本号。

【技术特征摘要】
1.一种无认证的Oracle版本探测的方法,其特征在于包括以下步骤:步骤1、构造TNS连接包;步骤2、通过Oracle数据库IP、端口与Oracle数据库建立Socket连接;步骤3、客户端向Oracle数据库发送由步骤1构造的TNS连接包;步骤4、Oracle数据库返回TNS拒绝包,客户端截取TNS拒绝包中的Oracle数据库版本变形信息;步骤5、客户端将得到的Oracle数据库版本变形信息进行加工处理,得到真实版本号。2.根据权利要求1所述的一种无认证的Oracle版本探测的方法,其特征在于:所述步骤1构造的TNS连接包由通用包头header和payload组成。3.根据权利要求2所述的一种无认证的Oracle版本探测的方法,其特征在于:所述TNS连接包的通用包头...

【专利技术属性】
技术研发人员:杨海峰廉小伟付蓉洁陈立张东
申请(专利权)人:北京安华金和科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1