rex 2.0.4 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rex/arch/x86.rb +16 -0
- data/lib/rex/constants.rb +1 -0
- data/lib/rex/constants/windows.rb +147 -0
- data/lib/rex/encoder/xdr.rb +3 -2
- data/lib/rex/exceptions.rb +37 -5
- data/lib/rex/exploitation/cmdstager/bourne.rb +9 -1
- data/lib/rex/exploitation/cmdstager/tftp.rb +5 -5
- data/lib/rex/java.rb +3 -0
- data/lib/rex/java/serialization.rb +54 -0
- data/lib/rex/java/serialization/model.rb +20 -0
- data/lib/rex/java/serialization/model/annotation.rb +69 -0
- data/lib/rex/java/serialization/model/block_data.rb +70 -0
- data/lib/rex/java/serialization/model/block_data_long.rb +72 -0
- data/lib/rex/java/serialization/model/class_desc.rb +64 -0
- data/lib/rex/java/serialization/model/contents.rb +156 -0
- data/lib/rex/java/serialization/model/element.rb +44 -0
- data/lib/rex/java/serialization/model/end_block_data.rb +12 -0
- data/lib/rex/java/serialization/model/field.rb +172 -0
- data/lib/rex/java/serialization/model/long_utf.rb +48 -0
- data/lib/rex/java/serialization/model/new_array.rb +225 -0
- data/lib/rex/java/serialization/model/new_class_desc.rb +155 -0
- data/lib/rex/java/serialization/model/new_enum.rb +79 -0
- data/lib/rex/java/serialization/model/new_object.rb +223 -0
- data/lib/rex/java/serialization/model/null_reference.rb +12 -0
- data/lib/rex/java/serialization/model/reference.rb +61 -0
- data/lib/rex/java/serialization/model/reset.rb +12 -0
- data/lib/rex/java/serialization/model/stream.rb +123 -0
- data/lib/rex/java/serialization/model/utf.rb +69 -0
- data/lib/rex/mime/message.rb +9 -14
- data/lib/rex/payloads.rb +1 -0
- data/lib/rex/payloads/meterpreter.rb +2 -0
- data/lib/rex/payloads/meterpreter/patch.rb +136 -0
- data/lib/rex/payloads/win32/kernel/stager.rb +26 -25
- data/lib/rex/post/meterpreter/client.rb +50 -60
- data/lib/rex/post/meterpreter/client_core.rb +18 -25
- data/lib/rex/post/meterpreter/extensions/extapi/adsi/adsi.rb +102 -8
- data/lib/rex/post/meterpreter/extensions/extapi/tlv.rb +24 -14
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/config.rb +18 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/tlv.rb +1 -0
- data/lib/rex/post/meterpreter/packet_dispatcher.rb +1 -1
- data/lib/rex/post/meterpreter/ui/console.rb +1 -1
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/extapi/adsi.rb +43 -1
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/incognito.rb +1 -1
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/sys.rb +9 -0
- data/lib/rex/proto/dcerpc/svcctl.rb +2 -0
- data/lib/rex/proto/dcerpc/svcctl/packet.rb +304 -0
- data/lib/rex/proto/kademlia.rb +8 -0
- data/lib/rex/proto/kademlia/bootstrap_request.rb +19 -0
- data/lib/rex/proto/kademlia/bootstrap_response.rb +79 -0
- data/lib/rex/proto/kademlia/message.rb +72 -0
- data/lib/rex/proto/kademlia/ping.rb +19 -0
- data/lib/rex/proto/kademlia/pong.rb +41 -0
- data/lib/rex/proto/kademlia/util.rb +22 -0
- data/lib/rex/proto/natpmp/packet.rb +30 -2
- data/lib/rex/proto/quake.rb +3 -0
- data/lib/rex/proto/quake/message.rb +73 -0
- data/lib/rex/proto/smb/client.rb +1 -0
- data/lib/rex/proto/smb/simpleclient.rb +4 -0
- data/lib/rex/proto/sunrpc/client.rb +14 -3
- data/lib/rex/socket/comm/local.rb +10 -7
- data/lib/rex/socket/ssl_tcp_server.rb +79 -40
- data/lib/rex/ui/text/input/readline.rb +33 -6
- data/lib/rex/ui/text/output/file.rb +2 -2
- data/lib/rex/ui/text/output/stdio.rb +70 -14
- data/rex.gemspec +1 -1
- metadata +38 -3
@@ -195,7 +195,7 @@ class Rex::Socket::Comm::Local
|
|
195
195
|
|
196
196
|
rescue ::Errno::EADDRNOTAVAIL,::Errno::EADDRINUSE
|
197
197
|
sock.close
|
198
|
-
raise Rex::
|
198
|
+
raise Rex::BindFailed.new(param.localhost, param.localport), caller
|
199
199
|
end
|
200
200
|
end
|
201
201
|
|
@@ -291,19 +291,22 @@ class Rex::Socket::Comm::Local
|
|
291
291
|
end
|
292
292
|
|
293
293
|
sock.close
|
294
|
-
raise Rex::HostUnreachable.new(
|
294
|
+
raise Rex::HostUnreachable.new(ip, port), caller
|
295
295
|
|
296
296
|
rescue ::Errno::EADDRNOTAVAIL,::Errno::EADDRINUSE
|
297
297
|
sock.close
|
298
|
-
raise Rex::
|
298
|
+
raise Rex::InvalidDestination.new(ip, port), caller
|
299
299
|
|
300
300
|
rescue Errno::ETIMEDOUT
|
301
301
|
sock.close
|
302
|
-
raise Rex::ConnectionTimeout.new(
|
302
|
+
raise Rex::ConnectionTimeout.new(ip, port), caller
|
303
303
|
|
304
304
|
rescue ::Errno::ECONNRESET,::Errno::ECONNREFUSED,::Errno::ENOTCONN,::Errno::ECONNABORTED
|
305
305
|
sock.close
|
306
|
-
|
306
|
+
# Report the actual thing we were trying to connect to here, not
|
307
|
+
# param.peerhost, since that's the eventual target at the end of the
|
308
|
+
# proxy chain
|
309
|
+
raise Rex::ConnectionRefused.new(ip, port.to_i), caller
|
307
310
|
end
|
308
311
|
end
|
309
312
|
|
@@ -378,9 +381,9 @@ class Rex::Socket::Comm::Local
|
|
378
381
|
ni_packet << [route_data.length - 4].pack('N') + route_data
|
379
382
|
# Now that we've built the whole packet, prepend its length before writing it to the wire
|
380
383
|
ni_packet = [ni_packet.length].pack('N') + ni_packet
|
381
|
-
|
384
|
+
|
382
385
|
size = sock.put(ni_packet)
|
383
|
-
|
386
|
+
|
384
387
|
if size != ni_packet.length
|
385
388
|
raise Rex::ConnectionProxyError.new(host, port, type, "Failed to send the entire request to the proxy"), caller
|
386
389
|
end
|
@@ -99,6 +99,80 @@ module Rex::Socket::SslTcpServer
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
+
#
|
103
|
+
# Parse a certificate in unified PEM format that contains a private key and
|
104
|
+
# one or more certificates. The first certificate is the primary, while any
|
105
|
+
# additional certificates are treated as intermediary certificates. This emulates
|
106
|
+
# the behavior of web servers like nginx.
|
107
|
+
#
|
108
|
+
# @param [String] ssl_cert
|
109
|
+
# @return [String, String, Array]
|
110
|
+
def self.ssl_parse_pem(ssl_cert)
|
111
|
+
cert = nil
|
112
|
+
key = nil
|
113
|
+
chain = nil
|
114
|
+
|
115
|
+
certs = []
|
116
|
+
ssl_cert.scan(/-----BEGIN\s*[^\-]+-----+\r?\n[^\-]*-----END\s*[^\-]+-----\r?\n?/nm).each do |pem|
|
117
|
+
if pem =~ /PRIVATE KEY/
|
118
|
+
key = OpenSSL::PKey::RSA.new(pem)
|
119
|
+
elsif pem =~ /CERTIFICATE/
|
120
|
+
certs << OpenSSL::X509::Certificate.new(pem)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
cert = certs.shift
|
125
|
+
if certs.length > 0
|
126
|
+
chain = certs
|
127
|
+
end
|
128
|
+
|
129
|
+
[key, cert, chain]
|
130
|
+
end
|
131
|
+
|
132
|
+
#
|
133
|
+
# Shim for the ssl_parse_pem module method
|
134
|
+
#
|
135
|
+
def ssl_parse_pem(ssl_cert)
|
136
|
+
Rex::Socket::SslTcpServer.ssl_parse_pem(ssl_cert)
|
137
|
+
end
|
138
|
+
|
139
|
+
#
|
140
|
+
# Generate a realistic-looking but obstensibly fake SSL
|
141
|
+
# certificate. This matches a typical "snakeoil" cert.
|
142
|
+
#
|
143
|
+
# @return [String, String, Array]
|
144
|
+
def self.ssl_generate_certificate
|
145
|
+
yr = 24*3600*365
|
146
|
+
vf = Time.at(Time.now.to_i - rand(yr * 3) - yr)
|
147
|
+
vt = Time.at(vf.to_i + (10 * yr))
|
148
|
+
cn = Rex::Text.rand_text_alpha_lower(rand(8)+2)
|
149
|
+
key = OpenSSL::PKey::RSA.new(2048){ }
|
150
|
+
cert = OpenSSL::X509::Certificate.new
|
151
|
+
cert.version = 2
|
152
|
+
cert.serial = (rand(0xFFFFFFFF) << 32) + rand(0xFFFFFFFF)
|
153
|
+
cert.subject = OpenSSL::X509::Name.new([["CN", cn]])
|
154
|
+
cert.issuer = OpenSSL::X509::Name.new([["CN", cn]])
|
155
|
+
cert.not_before = vf
|
156
|
+
cert.not_after = vt
|
157
|
+
cert.public_key = key.public_key
|
158
|
+
|
159
|
+
ef = OpenSSL::X509::ExtensionFactory.new(nil,cert)
|
160
|
+
cert.extensions = [
|
161
|
+
ef.create_extension("basicConstraints","CA:FALSE")
|
162
|
+
]
|
163
|
+
ef.issuer_certificate = cert
|
164
|
+
|
165
|
+
cert.sign(key, OpenSSL::Digest::SHA256.new)
|
166
|
+
|
167
|
+
[key, cert, nil]
|
168
|
+
end
|
169
|
+
|
170
|
+
#
|
171
|
+
# Shim for the ssl_generate_certificate module method
|
172
|
+
#
|
173
|
+
def ssl_generate_certificate
|
174
|
+
Rex::Socket::SslTcpServer.ssl_generate_certificate
|
175
|
+
end
|
102
176
|
|
103
177
|
#
|
104
178
|
# Create a new ssl context. If +ssl_cert+ is not given, generates a new
|
@@ -107,54 +181,19 @@ module Rex::Socket::SslTcpServer
|
|
107
181
|
# @param [Rex::Socket::Parameters] params
|
108
182
|
# @return [::OpenSSL::SSL::SSLContext]
|
109
183
|
def makessl(params)
|
110
|
-
|
111
|
-
if ssl_cert
|
112
|
-
cert =
|
113
|
-
key = OpenSSL::PKey::RSA.new(ssl_cert)
|
184
|
+
|
185
|
+
if params.ssl_cert
|
186
|
+
key, cert, chain = ssl_parse_pem(params.ssl_cert)
|
114
187
|
else
|
115
|
-
key =
|
116
|
-
cert = OpenSSL::X509::Certificate.new
|
117
|
-
cert.version = 2
|
118
|
-
cert.serial = rand(0xFFFFFFFF)
|
119
|
-
# name = OpenSSL::X509::Name.new([["C","JP"],["O","TEST"],["CN","localhost"]])
|
120
|
-
subject = OpenSSL::X509::Name.new([
|
121
|
-
["C","US"],
|
122
|
-
['ST', Rex::Text.rand_state()],
|
123
|
-
["L", Rex::Text.rand_text_alpha(rand(20) + 10)],
|
124
|
-
["O", Rex::Text.rand_text_alpha(rand(20) + 10)],
|
125
|
-
["CN", Rex::Text.rand_hostname],
|
126
|
-
])
|
127
|
-
issuer = OpenSSL::X509::Name.new([
|
128
|
-
["C","US"],
|
129
|
-
['ST', Rex::Text.rand_state()],
|
130
|
-
["L", Rex::Text.rand_text_alpha(rand(20) + 10)],
|
131
|
-
["O", Rex::Text.rand_text_alpha(rand(20) + 10)],
|
132
|
-
["CN", Rex::Text.rand_hostname],
|
133
|
-
])
|
134
|
-
|
135
|
-
cert.subject = subject
|
136
|
-
cert.issuer = issuer
|
137
|
-
cert.not_before = Time.now - (3600 * 365)
|
138
|
-
cert.not_after = Time.now + (3600 * 365)
|
139
|
-
cert.public_key = key.public_key
|
140
|
-
ef = OpenSSL::X509::ExtensionFactory.new(nil,cert)
|
141
|
-
cert.extensions = [
|
142
|
-
ef.create_extension("basicConstraints","CA:FALSE"),
|
143
|
-
ef.create_extension("subjectKeyIdentifier","hash"),
|
144
|
-
ef.create_extension("extendedKeyUsage","serverAuth"),
|
145
|
-
ef.create_extension("keyUsage","keyEncipherment,dataEncipherment,digitalSignature")
|
146
|
-
]
|
147
|
-
ef.issuer_certificate = cert
|
148
|
-
cert.add_extension ef.create_extension("authorityKeyIdentifier", "keyid:always,issuer:always")
|
149
|
-
cert.sign(key, OpenSSL::Digest::SHA1.new)
|
188
|
+
key, cert, chain = ssl_generate_certificate
|
150
189
|
end
|
151
190
|
|
152
191
|
ctx = OpenSSL::SSL::SSLContext.new()
|
153
192
|
ctx.key = key
|
154
193
|
ctx.cert = cert
|
194
|
+
ctx.extra_chain_cert = chain
|
155
195
|
ctx.options = 0
|
156
196
|
|
157
|
-
|
158
197
|
# Older versions of OpenSSL do not export the OP_NO_COMPRESSION symbol
|
159
198
|
if defined?(OpenSSL::SSL::OP_NO_COMPRESSION)
|
160
199
|
# enable/disable the SSL/TLS-level compression
|
@@ -20,11 +20,7 @@ begin
|
|
20
20
|
#
|
21
21
|
def initialize(tab_complete_proc = nil)
|
22
22
|
if(not Object.const_defined?('Readline'))
|
23
|
-
|
24
|
-
require 'readline'
|
25
|
-
rescue ::LoadError
|
26
|
-
require 'readline_compatible'
|
27
|
-
end
|
23
|
+
require 'readline'
|
28
24
|
end
|
29
25
|
|
30
26
|
self.extend(::Readline)
|
@@ -87,7 +83,7 @@ begin
|
|
87
83
|
Thread.current.priority = -20
|
88
84
|
|
89
85
|
output.prompting
|
90
|
-
line =
|
86
|
+
line = readline_with_output(prompt, true)
|
91
87
|
::Readline::HISTORY.pop if (line and line.empty?)
|
92
88
|
ensure
|
93
89
|
Thread.current.priority = orig || 0
|
@@ -120,6 +116,37 @@ begin
|
|
120
116
|
#
|
121
117
|
attr_accessor :output
|
122
118
|
|
119
|
+
private
|
120
|
+
|
121
|
+
def readline_with_output(prompt, add_history=false)
|
122
|
+
# rb-readlines's Readline.readline hardcodes the input and output to $stdin and $stdout, which means setting
|
123
|
+
# `Readline.input` or `Readline.ouput` has no effect when running `Readline.readline` with rb-readline, so need
|
124
|
+
# to reimplement []`Readline.readline`](https://github.com/luislavena/rb-readline/blob/ce4908dae45dbcae90a6e42e3710b8c3a1f2cd64/lib/readline.rb#L36-L58)
|
125
|
+
# for rb-readline to support setting input and output. Output needs to be set so that colorization works for the
|
126
|
+
# prompt on Windows.
|
127
|
+
if defined? RbReadline
|
128
|
+
RbReadline.rl_instream = fd
|
129
|
+
RbReadline.rl_outstream = output
|
130
|
+
|
131
|
+
begin
|
132
|
+
line = RbReadline.readline(prompt)
|
133
|
+
rescue ::Exception => exception
|
134
|
+
RbReadline.rl_cleanup_after_signal()
|
135
|
+
RbReadline.rl_deprep_terminal()
|
136
|
+
|
137
|
+
raise exception
|
138
|
+
end
|
139
|
+
|
140
|
+
if add_history && line
|
141
|
+
RbReadline.add_history(line)
|
142
|
+
end
|
143
|
+
|
144
|
+
line.try(:dup)
|
145
|
+
else
|
146
|
+
::Readline.readline(prompt, true)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
123
150
|
end
|
124
151
|
rescue LoadError
|
125
152
|
end
|
@@ -16,6 +16,76 @@ module Text
|
|
16
16
|
#
|
17
17
|
###
|
18
18
|
class Output::Stdio < Rex::Ui::Text::Output
|
19
|
+
#
|
20
|
+
# Attributes
|
21
|
+
#
|
22
|
+
|
23
|
+
# @!attribute io
|
24
|
+
# The raw `IO` backing this Text output. Defaults to `$stdout`
|
25
|
+
#
|
26
|
+
# @return [#flush, #puts, #write]
|
27
|
+
attr_writer :io
|
28
|
+
|
29
|
+
#
|
30
|
+
# Constructor
|
31
|
+
#
|
32
|
+
|
33
|
+
# @param options [Hash{Symbol => IO}]
|
34
|
+
# @option options [IO]
|
35
|
+
def initialize(options={})
|
36
|
+
options.assert_valid_keys(:io)
|
37
|
+
|
38
|
+
super()
|
39
|
+
|
40
|
+
self.io = options[:io]
|
41
|
+
end
|
42
|
+
|
43
|
+
#
|
44
|
+
# Methods
|
45
|
+
#
|
46
|
+
|
47
|
+
def flush
|
48
|
+
io.flush
|
49
|
+
end
|
50
|
+
|
51
|
+
# IO to write to.
|
52
|
+
#
|
53
|
+
# @return [IO] Default to `$stdout`
|
54
|
+
def io
|
55
|
+
@io ||= $stdout
|
56
|
+
end
|
57
|
+
|
58
|
+
#
|
59
|
+
# Prints the supplied message to standard output.
|
60
|
+
#
|
61
|
+
def print_raw(msg = '')
|
62
|
+
if (Rex::Compat.is_windows and supports_color?)
|
63
|
+
WindowsConsoleColorSupport.new(io).write(msg)
|
64
|
+
else
|
65
|
+
io.print(msg)
|
66
|
+
end
|
67
|
+
|
68
|
+
io.flush
|
69
|
+
|
70
|
+
msg
|
71
|
+
end
|
72
|
+
alias_method :write, :print_raw
|
73
|
+
|
74
|
+
def puts(*args)
|
75
|
+
args.each do |argument|
|
76
|
+
line = argument.to_s
|
77
|
+
write(line)
|
78
|
+
|
79
|
+
unless line.ends_with? "\n"
|
80
|
+
# yes, this is output, but `IO#puts` uses `rb_default_rs`, which is
|
81
|
+
# [`$/`](https://github.com/ruby/ruby/blob/3af8e150aded9d162bfd41426aaaae0279e5a653/io.c#L12168-L12172),
|
82
|
+
# which is [`$INPUT_RECORD_SEPARATOR`](https://github.com/ruby/ruby/blob/3af8e150aded9d162bfd41426aaaae0279e5a653/lib/English.rb#L83)
|
83
|
+
write($INPUT_RECORD_SEPARATOR)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
nil
|
88
|
+
end
|
19
89
|
|
20
90
|
def supports_color?
|
21
91
|
case config[:color]
|
@@ -31,20 +101,6 @@ class Output::Stdio < Rex::Ui::Text::Output
|
|
31
101
|
return (term and term.match(/(?:vt10[03]|xterm(?:-color)?|linux|screen|rxvt)/i) != nil)
|
32
102
|
end
|
33
103
|
end
|
34
|
-
|
35
|
-
#
|
36
|
-
# Prints the supplied message to standard output.
|
37
|
-
#
|
38
|
-
def print_raw(msg = '')
|
39
|
-
if (Rex::Compat.is_windows and supports_color?)
|
40
|
-
WindowsConsoleColorSupport.new($stdout).write(msg)
|
41
|
-
else
|
42
|
-
$stdout.print(msg)
|
43
|
-
end
|
44
|
-
$stdout.flush
|
45
|
-
|
46
|
-
msg
|
47
|
-
end
|
48
104
|
end
|
49
105
|
|
50
106
|
end
|
data/rex.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HD Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-22 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Rex provides a variety of classes useful for security testing and exploit
|
15
15
|
development.
|
@@ -32,6 +32,7 @@ files:
|
|
32
32
|
- lib/rex/codepage.map
|
33
33
|
- lib/rex/compat.rb
|
34
34
|
- lib/rex/constants.rb
|
35
|
+
- lib/rex/constants/windows.rb
|
35
36
|
- lib/rex/elfparsey.rb
|
36
37
|
- lib/rex/elfparsey/elf.rb
|
37
38
|
- lib/rex/elfparsey/elfbase.rb
|
@@ -107,6 +108,27 @@ files:
|
|
107
108
|
- lib/rex/io/stream.rb
|
108
109
|
- lib/rex/io/stream_abstraction.rb
|
109
110
|
- lib/rex/io/stream_server.rb
|
111
|
+
- lib/rex/java.rb
|
112
|
+
- lib/rex/java/serialization.rb
|
113
|
+
- lib/rex/java/serialization/model.rb
|
114
|
+
- lib/rex/java/serialization/model/annotation.rb
|
115
|
+
- lib/rex/java/serialization/model/block_data.rb
|
116
|
+
- lib/rex/java/serialization/model/block_data_long.rb
|
117
|
+
- lib/rex/java/serialization/model/class_desc.rb
|
118
|
+
- lib/rex/java/serialization/model/contents.rb
|
119
|
+
- lib/rex/java/serialization/model/element.rb
|
120
|
+
- lib/rex/java/serialization/model/end_block_data.rb
|
121
|
+
- lib/rex/java/serialization/model/field.rb
|
122
|
+
- lib/rex/java/serialization/model/long_utf.rb
|
123
|
+
- lib/rex/java/serialization/model/new_array.rb
|
124
|
+
- lib/rex/java/serialization/model/new_class_desc.rb
|
125
|
+
- lib/rex/java/serialization/model/new_enum.rb
|
126
|
+
- lib/rex/java/serialization/model/new_object.rb
|
127
|
+
- lib/rex/java/serialization/model/null_reference.rb
|
128
|
+
- lib/rex/java/serialization/model/reference.rb
|
129
|
+
- lib/rex/java/serialization/model/reset.rb
|
130
|
+
- lib/rex/java/serialization/model/stream.rb
|
131
|
+
- lib/rex/java/serialization/model/utf.rb
|
110
132
|
- lib/rex/job_container.rb
|
111
133
|
- lib/rex/logging.rb
|
112
134
|
- lib/rex/logging/log_dispatcher.rb
|
@@ -173,6 +195,8 @@ files:
|
|
173
195
|
- lib/rex/parser/unattend.rb
|
174
196
|
- lib/rex/parser/wapiti_nokogiri.rb
|
175
197
|
- lib/rex/payloads.rb
|
198
|
+
- lib/rex/payloads/meterpreter.rb
|
199
|
+
- lib/rex/payloads/meterpreter/patch.rb
|
176
200
|
- lib/rex/payloads/win32.rb
|
177
201
|
- lib/rex/payloads/win32/common.rb
|
178
202
|
- lib/rex/payloads/win32/kernel.rb
|
@@ -354,6 +378,8 @@ files:
|
|
354
378
|
- lib/rex/proto/dcerpc/ndr.rb
|
355
379
|
- lib/rex/proto/dcerpc/packet.rb
|
356
380
|
- lib/rex/proto/dcerpc/response.rb
|
381
|
+
- lib/rex/proto/dcerpc/svcctl.rb
|
382
|
+
- lib/rex/proto/dcerpc/svcctl/packet.rb
|
357
383
|
- lib/rex/proto/dcerpc/uuid.rb
|
358
384
|
- lib/rex/proto/dcerpc/wdscp.rb
|
359
385
|
- lib/rex/proto/dcerpc/wdscp/constants.rb
|
@@ -389,6 +415,13 @@ files:
|
|
389
415
|
- lib/rex/proto/ipmi/open_session_reply.rb
|
390
416
|
- lib/rex/proto/ipmi/rakp2.rb
|
391
417
|
- lib/rex/proto/ipmi/utils.rb
|
418
|
+
- lib/rex/proto/kademlia.rb
|
419
|
+
- lib/rex/proto/kademlia/bootstrap_request.rb
|
420
|
+
- lib/rex/proto/kademlia/bootstrap_response.rb
|
421
|
+
- lib/rex/proto/kademlia/message.rb
|
422
|
+
- lib/rex/proto/kademlia/ping.rb
|
423
|
+
- lib/rex/proto/kademlia/pong.rb
|
424
|
+
- lib/rex/proto/kademlia/util.rb
|
392
425
|
- lib/rex/proto/natpmp.rb
|
393
426
|
- lib/rex/proto/natpmp/constants.rb
|
394
427
|
- lib/rex/proto/natpmp/packet.rb
|
@@ -405,6 +438,8 @@ files:
|
|
405
438
|
- lib/rex/proto/pjl.rb
|
406
439
|
- lib/rex/proto/pjl/client.rb
|
407
440
|
- lib/rex/proto/proxy/socks4a.rb
|
441
|
+
- lib/rex/proto/quake.rb
|
442
|
+
- lib/rex/proto/quake/message.rb
|
408
443
|
- lib/rex/proto/rfb.rb
|
409
444
|
- lib/rex/proto/rfb/cipher.rb
|
410
445
|
- lib/rex/proto/rfb/client.rb
|
@@ -531,7 +566,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
531
566
|
version: '0'
|
532
567
|
requirements: []
|
533
568
|
rubyforge_project:
|
534
|
-
rubygems_version: 2.
|
569
|
+
rubygems_version: 2.4.3
|
535
570
|
signing_key:
|
536
571
|
specification_version: 4
|
537
572
|
summary: Ruby Exploitation Library
|