Module: Msf::Payload::Adapter::Fetch::SMB
- Includes:
- Exploit::EXE, Msf::Payload::Adapter, Msf::Payload::Adapter::Fetch, Msf::Payload::Adapter::Fetch::Server::SMB
- Defined in:
- lib/msf/core/payload/adapter/fetch/smb.rb
Overview
Mixin for fetch payloads that retrieve and execute a stage over SMB.
Constant Summary
Constants included from Msf::Payload::Adapter
Instance Method Summary collapse
- #cleanup_handler ⇒ Object
- #fetch_protocol ⇒ Object
- #initialize(*args) ⇒ Object
- #setup_handler ⇒ Object
- #unc ⇒ Object
Methods included from Msf::Payload::Adapter::Fetch
#_check_tftp_file, #_check_tftp_port, #_determine_server_comm, #_execute_add, #_execute_nix, #_execute_win, #_generate_certutil_command, #_generate_curl_command, #_generate_ftp_command, #_generate_get_command, #_generate_tftp_command, #_generate_tnftp_command, #_generate_wget_command, #_remote_destination, #_remote_destination_nix, #_remote_destination_win, #add_srv_entry, #default_srvuri, #download_uri, #fetch_bindhost, #fetch_bindnetloc, #fetch_bindport, #generate, #generate_fetch_commands, #generate_payload_uuid, #generate_stage, #handle_connection, #linux?, #pipe_srvuri, #srvhost, #srvnetloc, #srvport, #srvuri, #windows?
Methods included from Pipe
#_download_pipe, #_generate_curl_pipe, #_generate_get_pipe, #_generate_wget_pipe, #generate_pipe_command, #pipe_supported_binaries
Methods included from Fileless
#_generate_fileless_bash_search, #_generate_fileless_python, #_generate_fileless_shell, #_generate_first_stage_shellcode, #_generate_jmp_instruction
Methods included from Msf::Payload::Adapter
#compatible?, #merge_info_adapted, #merge_info_arch, #merge_info_platform, #payload_type
Methods included from Exploit::EXE
#exe_init_options, #exe_post_generation, #generate_payload_dccw_gdiplus_dll, #generate_payload_dll, #generate_payload_exe, #generate_payload_exe_service, #generate_payload_msi, #get_custom_exe, #get_eicar_exe
Instance Method Details
#cleanup_handler ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/msf/core/payload/adapter/fetch/smb.rb', line 21 def cleanup_handler if @fetch_service cleanup_smb_fetch_service(@fetch_service) @fetch_service = nil end super end |
#fetch_protocol ⇒ Object
17 18 19 |
# File 'lib/msf/core/payload/adapter/fetch/smb.rb', line 17 def fetch_protocol 'SMB' end |
#initialize(*args) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/msf/core/payload/adapter/fetch/smb.rb', line 8 def initialize(*args) super ( [ Msf::OptString.new('FETCH_FILENAME', [ true, 'Payload file name to fetch; cannot contain spaces or slashes.', 'test.dll'], regex: %r{^[^\s/\\]*$}), ] ) end |
#setup_handler ⇒ Object
30 31 32 33 34 |
# File 'lib/msf/core/payload/adapter/fetch/smb.rb', line 30 def setup_handler payload_entry = @srv_resources.find { |e| e[:uri] == srvuri } @fetch_service = start_smb_fetch_handler(fetch_bindport, fetch_bindhost, srvuri + "\\#{datastore['FETCH_FILENAME']}", payload_entry&.dig(:data)) super end |
#unc ⇒ Object
36 37 38 39 40 41 |
# File 'lib/msf/core/payload/adapter/fetch/smb.rb', line 36 def unc path = "\\\\#{srvhost}" path << "\\#{srvuri.gsub('/', '\\').chomp('\\')}" path << "\\#{datastore['FETCH_FILENAME']}" if datastore['FETCH_FILENAME'].present? path end |