rapid7/metasploit-framework

View on GitHub

Showing 14,626 of 20,405 total issues

Method is_match has a Cognitive Complexity of 182 (exceeds 5 allowed). Consider refactoring.
Open

  def is_match(params, module_metadata)
    return true if params.empty?

    param_hash = params

Severity: Minor
Found in lib/msf/core/modules/metadata/search.rb - About 3 days to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

File exe.rb has 1398 lines of code (exceeds 250 allowed). Consider refactoring.
Open

module Msf
module Util
#
# The class provides methods for creating and encoding executable file
# formats for various platforms. It is a replacement for the previous
Severity: Major
Found in lib/msf/util/exe.rb - About 3 days to fix

    File client.rb has 1386 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    module Rex
    module Proto
    module SMB
    class Client
    
    
    Severity: Major
    Found in lib/rex/proto/smb/client.rb - About 3 days to fix

      Method run has 710 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

        def run
          print_status("Running MS SQL Server Enumeration...")
      
          if !mssql_login_datastore
            print_error("Login was unsuccessful. Check your credentials.")
      Severity: Major
      Found in modules/auxiliary/admin/mssql/mssql_enum.rb - About 3 days to fix

        Method run_host has 709 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

          def run_host(ip)
        
            begin
              snmp = connect_snmp
        
        
        Severity: Major
        Found in modules/auxiliary/scanner/snmp/snmp_enum.rb - About 3 days to fix

          File modules.rb has 1238 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          module Msf
            module Ui
              module Console
                module CommandDispatcher
          
          
          Severity: Major
          Found in lib/msf/ui/console/command_dispatcher/modules.rb - About 3 days to fix

            File constants.rb has 1171 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            module Rex
            module Proto
            module SMB
            class Constants
            
            
            Severity: Major
            Found in lib/rex/proto/smb/constants.rb - About 3 days to fix

              Method run has 602 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                def run
                  return if not check_dependencies
              
                  begin
                    # Get all values from v$parameter
              Severity: Major
              Found in modules/auxiliary/admin/oracle/oraenum.rb - About 3 days to fix

                Method run_host has a Cognitive Complexity of 143 (exceeds 5 allowed). Consider refactoring.
                Open

                  def run_host(ip)
                
                    begin
                      snmp = connect_snmp
                
                
                Severity: Minor
                Found in modules/auxiliary/scanner/snmp/snmp_enum.rb - About 2 days to fix

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Method html_get_hash has a Cognitive Complexity of 138 (exceeds 5 allowed). Consider refactoring.
                Open

                  def html_get_hash(arg = {})
                    ntlm_ver = arg[:ntlm_ver]
                    if ntlm_ver == NTLM_CONST::NTLM_V1_RESPONSE or ntlm_ver == NTLM_CONST::NTLM_2_SESSION_RESPONSE
                      lm_hash = arg[:lm_hash]
                      nt_hash = arg[:nt_hash]
                Severity: Minor
                Found in modules/auxiliary/server/capture/http_ntlm.rb - About 2 days to fix

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                Method mssql_get_hash has a Cognitive Complexity of 135 (exceeds 5 allowed). Consider refactoring.
                Open

                  def mssql_get_hash(arg = {})
                    ntlm_ver = arg[:ntlm_ver]
                    if ntlm_ver == NTLM_CONST::NTLM_V1_RESPONSE or ntlm_ver == NTLM_CONST::NTLM_2_SESSION_RESPONSE
                      lm_hash = arg[:lm_hash]
                      nt_hash = arg[:nt_hash]
                Severity: Minor
                Found in modules/auxiliary/server/capture/mssql.rb - About 2 days to fix

                Cognitive Complexity

                Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                A method's cognitive complexity is based on a few simple rules:

                • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                • Code is considered more complex for each "break in the linear flow of the code"
                • Code is considered more complex when "flow breaking structures are nested"

                Further reading

                File rdp.rb has 1073 lines of code (exceeds 250 allowed). Consider refactoring.
                Open

                module Msf
                
                ###
                #
                # This module exposes methods for interacting with a remote RDP service
                Severity: Major
                Found in lib/msf/core/exploit/remote/rdp.rb - About 2 days to fix

                  Method cmd_wmap_run has 541 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                        def cmd_wmap_run(*args)
                          # Stop everything
                          self.masstop = false
                          self.killwhenstop = true
                  
                  
                  Severity: Major
                  Found in plugins/wmap.rb - About 2 days to fix

                    Method run has a Cognitive Complexity of 127 (exceeds 5 allowed). Consider refactoring.
                    Open

                    def run
                      @show_progress = datastore['ShowProgress']
                      @show_percent  = datastore['ShowProgressPercent'].to_i
                    
                      rhosts_walker  = Msf::RhostsWalker.new(self.datastore['RHOSTS'], self.datastore).to_enum
                    Severity: Minor
                    Found in lib/msf/core/auxiliary/scanner.rb - About 2 days to fix

                    Cognitive Complexity

                    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                    A method's cognitive complexity is based on a few simple rules:

                    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                    • Code is considered more complex for each "break in the linear flow of the code"
                    • Code is considered more complex when "flow breaking structures are nested"

                    Further reading

                    File rpc_db.rb has 1013 lines of code (exceeds 250 allowed). Consider refactoring.
                    Open

                    module Msf
                    module RPC
                    class RPC_Db < RPC_Base
                    
                    private
                    Severity: Major
                    Found in lib/msf/core/rpc/v10/rpc_db.rb - About 2 days to fix

                      File sys.rb has 1012 lines of code (exceeds 250 allowed). Consider refactoring.
                      Open

                      require 'rex/post/meterpreter'
                      require 'rex/post/meterpreter/extensions/stdapi/command_ids'
                      
                      module Rex
                      module Post
                      Severity: Major
                      Found in lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/sys.rb - About 2 days to fix

                        File windows_secrets_dump.rb has 1006 lines of code (exceeds 250 allowed). Consider refactoring.
                        Open

                        require 'metasploit/framework/hashes'
                        require 'ruby_smb/dcerpc/client'
                        
                        class MetasploitModule < Msf::Auxiliary
                          include Msf::Exploit::Remote::SMB::Client::Authenticated
                        Severity: Major
                        Found in modules/auxiliary/gather/windows_secrets_dump.rb - About 2 days to fix

                          Method create_library has 501 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                            def self.create_library(constant_manager, library_path = 'ws2_32')
                              dll = Library.new(library_path, constant_manager)
                          
                              dll.add_function('getaddrinfo', 'DWORD',[
                                ["PCHAR","pNodeName","in"],

                            Method get_registry has a Cognitive Complexity of 123 (exceeds 5 allowed). Consider refactoring.
                            Open

                              def get_registry(outlook_ver)
                                # Determine if saved accounts exist within Outlook.  Ignore the Address Book and Personal Folder registry entries.
                                outlook_exists = 0
                                saved_accounts = 0
                            
                            
                            Severity: Minor
                            Found in modules/post/windows/gather/credentials/outlook.rb - About 2 days to fix

                            Cognitive Complexity

                            Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                            A method's cognitive complexity is based on a few simple rules:

                            • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                            • Code is considered more complex for each "break in the linear flow of the code"
                            • Code is considered more complex when "flow breaking structures are nested"

                            Further reading

                            File error.rb has 970 lines of code (exceeds 250 allowed). Consider refactoring.
                            Open

                            class RbMysql
                              class Error < StandardError
                                ERRNO = 0
                            
                                def self.define_error_class(prefix_re)
                            Severity: Major
                            Found in lib/rbmysql/error.rb - About 2 days to fix
                              Severity
                              Category
                              Status
                              Source
                              Language