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/varnish.rb
Views: 1904
require 'metasploit/framework/tcp/client'1require 'metasploit/framework/varnish/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 Varnish CLI.1011class VarnishCLI12include Metasploit::Framework::LoginScanner::Base13include Metasploit::Framework::LoginScanner::RexSocket14include Metasploit::Framework::Tcp::Client15include Metasploit::Framework::Varnish::Client1617DEFAULT_PORT = 608218LIKELY_PORTS = [ DEFAULT_PORT ]19LIKELY_SERVICE_NAMES = [ 'varnishcli' ]20PRIVATE_TYPES = [ :password ]21REALM_KEY = nil2223def attempt_login(credential)24begin25connect26success = login(credential.private)27close_session28disconnect29rescue RuntimeError => e30return {:status => Metasploit::Model::Login::Status::UNABLE_TO_CONNECT, :proof => e.message}31rescue Rex::ConnectionError, EOFError, Timeout::Error32status = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT33end34status = (success == true) ? Metasploit::Model::Login::Status::SUCCESSFUL : Metasploit::Model::Login::Status::INCORRECT3536result = Result.new(credential: credential, status: status)37result.host = host38result.port = port39result.protocol = 'tcp'40result.service_name = 'varnishcli'41result42end4344def set_sane_defaults45self.connection_timeout ||= 3046self.port ||= DEFAULT_PORT47self.max_send_size ||= 048self.send_delay ||= 049end5051end52end53end54end555657