Skip to content

Commit a5af21f

Browse files
timwrbusterb
authored andcommitted
add http headers to Android/Java
1 parent ac79cc9 commit a5af21f

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

lib/msf/core/payload/android/reverse_http.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,18 @@ module Payload::Android::ReverseHttp
1818
include Msf::Payload::Android
1919
include Msf::Payload::UUID::Options
2020

21+
#
22+
# Register reverse_http specific options
23+
#
24+
def initialize(*args)
25+
super
26+
register_advanced_options([
27+
OptString.new('HttpHeaderHost', [false, 'An optional value to use for the Host HTTP header']),
28+
OptString.new('HttpHeaderCookie', [false, 'An optional value to use for the Cookie HTTP header']),
29+
OptString.new('HttpHeaderReferer', [false, 'An optional value to use for the Referer HTTP header'])
30+
], self.class)
31+
end
32+
2133
#
2234
# Generate the transport-specific configuration
2335
#

lib/msf/core/payload/java/reverse_http.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ module Payload::Java::ReverseHttp
2424
def initialize(*args)
2525
super
2626
register_advanced_options([
27-
Msf::OptInt.new('Spawn', [true, 'Number of subprocesses to spawn', 2]),
28-
Msf::OptInt.new('StagerURILength', [false, 'The URI length for the stager (at least 5 bytes)'])
27+
OptInt.new('Spawn', [true, 'Number of subprocesses to spawn', 2]),
28+
OptInt.new('StagerURILength', [false, 'The URI length for the stager (at least 5 bytes)']),
29+
OptString.new('HttpHeaderHost', [false, 'An optional value to use for the Host HTTP header']),
30+
OptString.new('HttpHeaderCookie', [false, 'An optional value to use for the Cookie HTTP header']),
31+
OptString.new('HttpHeaderReferer', [false, 'An optional value to use for the Referer HTTP header']),
2932
])
3033
end
3134

@@ -64,6 +67,10 @@ def stager_config(opts={})
6467

6568
c = ''
6669
c << "Spawn=#{ds["Spawn"] || 2}\n"
70+
c << "HeaderUser-Agent=#{ds["MeterpreterUserAgent"]}\n" if ds["MeterpreterUserAgent"]
71+
c << "HeaderHost=#{ds["HttpHeaderHost"]}\n" if ds["HttpHeaderHost"]
72+
c << "HeaderReferer=#{ds["HttpHeaderReferer"]}\n" if ds["HttpHeaderReferer"]
73+
c << "HeaderCookie=#{ds["HttpHeaderCookie"]}\n" if ds["HttpHeaderCookie"]
6774
c << "URL=#{scheme}://#{ds['LHOST']}"
6875
c << ":#{ds['LPORT']}" if ds['LPORT']
6976
c << luri

lib/msf/core/payload_generator.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ def format_payload(shellcode)
298298
# @return [String] Java payload as a JAR or WAR file
299299
def generate_java_payload
300300
payload_module = framework.payloads.create(payload)
301-
payload_module.datastore.merge!(datastore)
301+
payload_module.datastore.import_options_from_hash(datastore)
302302
case format
303303
when "raw", "jar"
304304
if payload_module.respond_to? :generate_jar

0 commit comments

Comments
 (0)