Yesterday Chris Gates gave his presentation (here the summary) about hacking Oracle with Metasploit at the Blackhat 2009 USA. Chris described the Oracle Attack Methodology and how to use Metasploit for this methodology (here is one of my older tutorials for Backtrack2 from 2006 following this methodology (but showing only a subset)):
- Locate Oracle Systems.
- Determine Oracle Version.
- Determine Oracle SID.
- Guess/Bruteforce USER/PASS.
- Privilege Escalation via SQL Injection.
- Manipulate Data/Post Exploitation.
- Cover Tracks.
The first new Metasploit module is TNS mixin (similar functionality to tnscmd.pl).
This module is detecting the SID via status command (8-9i only), via Brute Force, via Dictionary Attack (with the SID.txt from Red-Database-Security),spying the SID from Enterprise Manager Control/Database Control. If you need more information about detecting Oracle SID you should hava a look on “Detecting Oracle SIDs” is from Alexandr Polyakov.
A small correction: Th TNS MIXIN is detecting the version of the TNS listener and NOT the version of the Oracle database. In most cases this is identifical but not always. A pentester should check the results from the view v$version as well (“select * from v$version”).
The next step is to use guess username/password combinations using Pete’s Oracle default password list. If this was successful, it is possible to escalate the privileges if the database is unpatched. Chris provides SQL exploits for several (older) PL/SQL packages (lt_findricset, lt_findricset_cursor, dbms_metadata, dbms_cdc_ipublish, dbms_cdc_publish, lt_compressworkspace, lt_mergeworkspace, lt_removeworkspace, lt_rollbackworkspace).
After the privilege escalation Metasploit can run OS commands (e.g. install a trojan, get a remote shell, create users, …). Chris was using Java to run OS commands via Oracle. Keep in mind that this is one possibility. Additional options can be found in the Oracle documentation or here.
If you need more info about Oracle security you can check my “Oracle Security Cheat Sheet” paper.
Well done Chris.