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/lib/metasploit/framework/login_scanner/afp.rb
Views: 1904
require 'metasploit/framework/tcp/client'1require 'metasploit/framework/afp/client'2require 'metasploit/framework/login_scanner/base'3require 'metasploit/framework/login_scanner/rex_socket'45module Metasploit6module Framework7module LoginScanner89# This is the LoginScanner class for dealing with Apple Filing10# Protocol.11class AFP12include Metasploit::Framework::LoginScanner::Base13include Metasploit::Framework::LoginScanner::RexSocket14include Metasploit::Framework::Tcp::Client15include Metasploit::Framework::AFP::Client1617DEFAULT_PORT = 54818LIKELY_PORTS = [ DEFAULT_PORT ]19LIKELY_SERVICE_NAMES = [ "afp" ]20PRIVATE_TYPES = [ :password ]21REALM_KEY = nil2223# @!attribute login_timeout24# @return [Integer] Number of seconds to wait before giving up25attr_accessor :login_timeout2627def attempt_login(credential)28begin29connect30rescue Rex::ConnectionError, EOFError, Timeout::Error31status = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT32else33begin34success = login(credential.public, credential.private)35rescue RuntimeError => e36return {:status => Metasploit::Model::Login::Status::UNABLE_TO_CONNECT, :proof => e.message}37end3839status = (success == true) ? Metasploit::Model::Login::Status::SUCCESSFUL : Metasploit::Model::Login::Status::INCORRECT40end4142result = Result.new(credential: credential, status: status)43result.host = host44result.port = port45result.protocol = 'tcp'46result.service_name = 'afp'47result48end4950def set_sane_defaults51self.connection_timeout ||= 3052self.port ||= DEFAULT_PORT53self.max_send_size ||= 054self.send_delay ||= 055end56end57end58end59end606162