Oracle TNS Listener SID Bruteforce - Metasploit


This page contains detailed information about how to use the auxiliary/scanner/oracle/sid_brute metasploit module. For list of all metasploit modules, visit the Metasploit Module Library.

Module Overview


Name: Oracle TNS Listener SID Bruteforce
Module: auxiliary/scanner/oracle/sid_brute
Source code: modules/auxiliary/scanner/oracle/sid_brute.rb
Disclosure date: -
Last modification time: 2019-04-26 08:36:32 +0000
Supported architecture(s): -
Supported platform(s): -
Target service / protocol: -
Target network port(s): 1521
List of CVEs: -

This module queries the TNS listener for a valid Oracle database instance name (also known as a SID). Any response other than a "reject" will be considered a success. If a specific SID is provided, that SID will be attempted. Otherwise, SIDs read from the named file will be attempted in sequence instead.

Module Ranking and Traits


Module Ranking:

  • normal: The exploit is otherwise reliable, but depends on a specific version and can't (or doesn't) reliably autodetect. More information about ranking can be found here.

Basic Usage


This module is a scanner module, and is capable of testing against multiple hosts.

msf > use auxiliary/scanner/oracle/sid_brute
msf auxiliary(sid_brute) > show options
    ... show and set options ...
msf auxiliary(sid_brute) > set RHOSTS ip-range
msf auxiliary(sid_brute) > exploit

Other examples of setting the RHOSTS option:

Example 1:

msf auxiliary(sid_brute) > set RHOSTS 192.168.1.3-192.168.1.200 

Example 2:

msf auxiliary(sid_brute) > set RHOSTS 192.168.1.1/24

Example 3:

msf auxiliary(sid_brute) > set RHOSTS file:/tmp/ip_list.txt

Required Options


  • RHOSTS: The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'

Go back to menu.

Msfconsole Usage


Here is how the scanner/oracle/sid_brute auxiliary module looks in the msfconsole:

msf6 > use auxiliary/scanner/oracle/sid_brute

msf6 auxiliary(scanner/oracle/sid_brute) > show info

       Name: Oracle TNS Listener SID Bruteforce
     Module: auxiliary/scanner/oracle/sid_brute
    License: Metasploit Framework License (BSD)
       Rank: Normal

Provided by:
  todb <[email protected]>

Check supported:
  No

Basic options:
  Name              Current Setting                                                      Required  Description
  ----              ---------------                                                      --------  -----------
  BRUTEFORCE_SPEED  5                                                                    yes       How fast to bruteforce, from 0 to 5
  DB_ALL_CREDS      false                                                                no        Try each user/password couple stored in the current database
  DB_ALL_PASS       false                                                                no        Add all passwords in the current database to the list
  DB_ALL_USERS      false                                                                no        Add all users in the current database to the list
  RHOSTS                                                                                 yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
  RPORT             1521                                                                 yes       The target port (TCP)
  SID                                                                                    no        A specific SID to attempt.
  SID_FILE          /opt/metasploit-framework/embedded/framework/data/wordlists/sid.txt  no        File containing instance names, one per line
  STOP_ON_SUCCESS   false                                                                yes       Stop guessing when a credential works for a host
  THREADS           1                                                                    yes       The number of concurrent threads (max one per host)
  VERBOSE           true                                                                 yes       Whether to print output for all attempts

Description:
  This module queries the TNS listener for a valid Oracle database 
  instance name (also known as a SID). Any response other than a 
  "reject" will be considered a success. If a specific SID is 
  provided, that SID will be attempted. Otherwise, SIDs read from the 
  named file will be attempted in sequence instead.

Module Options


This is a complete list of options available in the scanner/oracle/sid_brute auxiliary module:

msf6 auxiliary(scanner/oracle/sid_brute) > show options

Module options (auxiliary/scanner/oracle/sid_brute):

   Name              Current Setting                                                      Required  Description
   ----              ---------------                                                      --------  -----------
   BRUTEFORCE_SPEED  5                                                                    yes       How fast to bruteforce, from 0 to 5
   DB_ALL_CREDS      false                                                                no        Try each user/password couple stored in the current database
   DB_ALL_PASS       false                                                                no        Add all passwords in the current database to the list
   DB_ALL_USERS      false                                                                no        Add all users in the current database to the list
   RHOSTS                                                                                 yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT             1521                                                                 yes       The target port (TCP)
   SID                                                                                    no        A specific SID to attempt.
   SID_FILE          /opt/metasploit-framework/embedded/framework/data/wordlists/sid.txt  no        File containing instance names, one per line
   STOP_ON_SUCCESS   false                                                                yes       Stop guessing when a credential works for a host
   THREADS           1                                                                    yes       The number of concurrent threads (max one per host)
   VERBOSE           true                                                                 yes       Whether to print output for all attempts

Advanced Options


Here is a complete list of advanced options supported by the scanner/oracle/sid_brute auxiliary module:

msf6 auxiliary(scanner/oracle/sid_brute) > show advanced

Module advanced options (auxiliary/scanner/oracle/sid_brute):

   Name                  Current Setting  Required  Description
   ----                  ---------------  --------  -----------
   CHOST                                  no        The local client address
   CPORT                                  no        The local client port
   ConnectTimeout        10               yes       Maximum number of seconds to establish a TCP connection
   MaxGuessesPerService  0                no        Maximum number of credentials to try per service instance. If set to zero or a non-number, this option will not be used.
   MaxGuessesPerUser     0                no        Maximum guesses for a particular username for the service instance. Note that users are considered unique among different services, so a user at 10.1.1.1:22 is different from one at 10.2.2.2:
                                                    22, and both will be tried up to the MaxGuessesPerUser limit. If set to zero or a non-number, this option will not be used.
   MaxMinutesPerService  0                no        Maximum time in minutes to bruteforce the service instance. If set to zero or a non-number, this option will not be used.
   PASSWORD_SPRAY        false            yes       Reverse the credential pairing order. For each password, attempt every possible user.
   Proxies                                no        A proxy chain of format type:host:port[,type:host:port][...]
   SSL                   false            no        Negotiate SSL/TLS for outgoing connections
   SSLCipher                              no        String for SSL cipher - "DHE-RSA-AES256-SHA" or "ADH"
   SSLVerifyMode         PEER             no        SSL verification method (Accepted: CLIENT_ONCE, FAIL_IF_NO_PEER_CERT, NONE, PEER)
   SSLVersion            Auto             yes       Specify the version of SSL/TLS to be used (Auto, TLS and SSL23 are auto-negotiate) (Accepted: Auto, TLS, SSL23, SSL3, TLS1, TLS1.1, TLS1.2)
   ShowProgress          true             yes       Display progress messages during a scan
   ShowProgressPercent   10               yes       The interval in percent that progress should be shown
   TRANSITION_DELAY      0                no        Amount of time (in minutes) to delay before transitioning to the next user in the array (or password when PASSWORD_SPRAY=true)
   WORKSPACE                              no        Specify the workspace for this module

Auxiliary Actions


This is a list of all auxiliary actions that the scanner/oracle/sid_brute module can do:

msf6 auxiliary(scanner/oracle/sid_brute) > show actions

Auxiliary actions:

   Name  Description
   ----  -----------

Evasion Options


Here is the full list of possible evasion options supported by the scanner/oracle/sid_brute auxiliary module in order to evade defenses (e.g. Antivirus, EDR, Firewall, NIDS etc.):

msf6 auxiliary(scanner/oracle/sid_brute) > show evasion

Module evasion options:

   Name                Current Setting  Required  Description
   ----                ---------------  --------  -----------
   TCP::max_send_size  0                no        Maxiumum tcp segment size.  (0 = disable)
   TCP::send_delay     0                no        Delays inserted before every send.  (0 = disable)

Go back to menu.

Error Messages


This module may fail with the following error messages:

Check for the possible causes from the code snippets below found in the module source code. This can often times help in identifying the root cause of the problem.

<HOSTPORT> Oracle - No response given, something is wrong.


Here is a relevant code snippet related to the "<HOSTPORT> Oracle - No response given, something is wrong." error message:

62:	  def do_sid_check(sid,ip)
63:	    begin
64:	      connect
65:	      response_code = check_sid(sid,ip)
66:	      if response_code.nil?
67:	        print_status "#{hostport} Oracle - No response given, something is wrong."
68:	        return :abort
69:	      elsif response_code != 4
70:	        print_good "#{hostport} Oracle - '#{sid}' is valid"
71:	        report_note(
72:	          :host => ip,

<HOSTPORT> Oracle - unable to connect to a TNS listener


Here is a relevant code snippet related to the "<HOSTPORT> Oracle - unable to connect to a TNS listener" error message:

81:	      else
82:	        vprint_status "#{hostport} Oracle - Refused '#{sid}'"
83:	        return :fail
84:	      end
85:	    rescue ::Rex::ConnectionError, ::Errno::EPIPE
86:	      print_error("#{hostport} Oracle - unable to connect to a TNS listener")
87:	      return :abort
88:	    ensure
89:	      disconnect
90:	    end
91:	  end

Go back to menu.


Go back to menu.

See Also


Check also the following modules related to this module:

Authors


  • todb

Version


This page has been produced using Metasploit Framework version 6.2.23-dev. For more modules, visit the Metasploit Module Library.

Go back to menu.