Module: Msf::Payload::Adapter::Fetch::Server::FTP
- Included in:
- FTP
- Defined in:
- lib/msf/core/payload/adapter/fetch/server/ftp.rb
Overview
Mixin that provides FTP fetch handler support for fetch payload adapters.
Instance Method Summary collapse
- #add_resource(fetch_service, uri, srv_entry) ⇒ Object
- #cleanup_ftp_fetch_service(fetch_service) ⇒ Object
- #fetch_protocol ⇒ Object
- #initialize(*args) ⇒ Object
- #start_ftp_fetch_handler(srvport, srvhost) ⇒ Object
- #start_ftp_server(srvport, srvhost) ⇒ Object
Instance Method Details
#add_resource(fetch_service, uri, srv_entry) ⇒ Object
34 35 36 37 38 |
# File 'lib/msf/core/payload/adapter/fetch/server/ftp.rb', line 34 def add_resource(fetch_service, uri, srv_entry) vprint_status("Adding FTP resource #{uri}") fetch_service.register_file(uri, srv_entry[:data], serve_once: datastore['FETCH_SRVONCE']) @myresources << uri end |
#cleanup_ftp_fetch_service(fetch_service) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/msf/core/payload/adapter/fetch/server/ftp.rb', line 13 def cleanup_ftp_fetch_service(fetch_service) @myresources.each do |uri| fetch_service.deregister_file(uri) end @myresources = [] fetch_service = nil end |
#fetch_protocol ⇒ Object
21 22 23 |
# File 'lib/msf/core/payload/adapter/fetch/server/ftp.rb', line 21 def fetch_protocol 'FTP' end |
#initialize(*args) ⇒ Object
3 4 5 6 7 8 9 10 11 |
# File 'lib/msf/core/payload/adapter/fetch/server/ftp.rb', line 3 def initialize(*args) super ( [ Msf::OptBool.new('FETCH_SRVONCE', [true, 'Stop serving the payload after it is retrieved', true]), ] ) end |
#start_ftp_fetch_handler(srvport, srvhost) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/msf/core/payload/adapter/fetch/server/ftp.rb', line 40 def start_ftp_fetch_handler(srvport, srvhost) fetch_service = start_ftp_server(srvport, srvhost) if fetch_service.nil? cleanup_handler fail_with(Msf::Exploit::Failure::BadConfig, "Fetch handler failed to start on #{Rex::Socket.(srvhost, srvport)}") end fetch_service end |
#start_ftp_server(srvport, srvhost) ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/msf/core/payload/adapter/fetch/server/ftp.rb', line 25 def start_ftp_server(srvport, srvhost) vprint_status("Starting FTP server on #{Rex::Socket.(srvhost, srvport)}") Rex::ServiceManager.start( Rex::Proto::Ftp::Server, srvport, srvhost, { 'Msf' => framework, 'MsfExploit' => self } ) end |