lib/metasploit/aggregator/http/request.rb in metasploit-aggregator-0.2.3 vs lib/metasploit/aggregator/http/request.rb in metasploit-aggregator-1.0.0

- old
+ new

@@ -23,19 +23,42 @@ uri end # provide a default response in Request form def self.parked() - parked_message = [] - parked_message << 'HTTP/1.1 200 OK' - parked_message << 'Content-Type: application/octet-stream' - parked_message << 'Connection: close' - parked_message << 'Server: Apache' - parked_message << 'Content-Length: 0' - parked_message << ' ' - parked_message << ' ' - self.new(parked_message, '', nil) + generate_response(nil) end + + def self.generate_response(http_request) + socket = nil + body = '' + unless http_request.nil? || http_request.body.nil? + body = http_request.body + end + message_headers = [] + message_headers << 'HTTP/1.1 200 OK' + "\n" + message_headers << 'Content-Type: application/octet-stream' + "\n" + message_headers << 'Connection: close' + "\n" + message_headers << 'Server: Apache' + "\n" + message_headers << 'Content-Length: ' + body.length.to_s + "\n" + message_headers << '' + "\n" + message_headers << '' + "\n" + self.new(message_headers, body, socket) + end + + def self.forge_request(uri, body, socket = nil) + message_headers = [] + message_headers << "POST #{uri}/ HTTP/1.1" + "\n" + message_headers << 'Accept-Encoding: identity' + "\n" + message_headers << 'Content-Length: ' + body.length.to_s + "\n" + message_headers << 'Host: 127.0.0.1:2447' + "\n" # this value is defaulted to reflect the aggregator + message_headers << 'Content-Type: application/octet-stream' + "\n" + message_headers << 'Connection: close' + "\n" + message_headers << 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'+ "\n" + message_headers << '' + "\n" + self.new(message_headers, body, socket) + end + end end end end \ No newline at end of file