rex-socket 0.1.54 → 0.1.56
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
- checksums.yaml.gz.sig +0 -0
- data/cortex.yaml +15 -0
- data/lib/rex/socket/version.rb +1 -1
- data/lib/rex/socket.rb +85 -4
- data.tar.gz.sig +0 -0
- metadata +27 -85
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 93a2eeaa43fcd931469e95e513127b480a2ba55dd7f8ada8986b076191c22ad9
|
|
4
|
+
data.tar.gz: '09dc66492bfdddd8227b015c51ba5f41b3bf263001f1564cf4ae2ef75b80b2f8'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e614ceccfda078dbdf7cf75e68c79f47b8a663752cfe84e49909b4b1c1545284a98fc22b1003181fcb773da5785bfb5fbaf79beb6c292caa0b38153399217592
|
|
7
|
+
data.tar.gz: 44b09208c1de7dfdfb93d1b6b44426466a229434ba7c1c9412e28847e1c00a1896b9e80da8c62ec6bff8f349f591faee37a6e2e93535c5110441989fc5c78094
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/cortex.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
info:
|
|
3
|
+
title: Rex Socket
|
|
4
|
+
description: The Rex Socket Abstraction Library
|
|
5
|
+
x-cortex-git:
|
|
6
|
+
github:
|
|
7
|
+
alias: r7org
|
|
8
|
+
repository: rapid7/rex-socket
|
|
9
|
+
x-cortex-tag: rex-socket
|
|
10
|
+
x-cortex-type: service
|
|
11
|
+
x-cortex-domain-parents:
|
|
12
|
+
- tag: metasploit
|
|
13
|
+
openapi: 3.0.1
|
|
14
|
+
servers:
|
|
15
|
+
- url: "/"
|
data/lib/rex/socket/version.rb
CHANGED
data/lib/rex/socket.rb
CHANGED
|
@@ -84,6 +84,9 @@ module Socket
|
|
|
84
84
|
# Common Regular Expressions
|
|
85
85
|
#
|
|
86
86
|
|
|
87
|
+
# see: https://debugpointer.com/regex/regex-for-dns-name
|
|
88
|
+
MATCH_DNS_NAME = /^(((?!-))(xn--)?([a-z0-9][a-z0-9\-]{0,59})?[a-z0-9]\.)*(xn--)?([a-z0-9\-]{1,61}|[a-z0-9-]{1,30}\.[a-z]{2,})$/i
|
|
89
|
+
|
|
87
90
|
MATCH_IPV6 = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/
|
|
88
91
|
|
|
89
92
|
MATCH_IPV4 = /^\s*(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}))\s*$/
|
|
@@ -125,24 +128,33 @@ module Socket
|
|
|
125
128
|
# Cache our resolver
|
|
126
129
|
@@resolver = nil
|
|
127
130
|
|
|
131
|
+
#
|
|
132
|
+
# Determine whether this is a valid DNS name without trying to resolve it
|
|
133
|
+
#
|
|
134
|
+
def self.is_name?(name)
|
|
135
|
+
return false if name.length > 253
|
|
136
|
+
name =~ MATCH_DNS_NAME ? (name =~ /\s/).nil? : false
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
#
|
|
128
140
|
# Determine whether this is an IPv4 address
|
|
129
141
|
#
|
|
130
142
|
def self.is_ipv4?(addr)
|
|
131
|
-
addr =~ MATCH_IPV4 ?
|
|
143
|
+
addr =~ MATCH_IPV4 ? (addr =~ /\s/).nil? : false
|
|
132
144
|
end
|
|
133
145
|
|
|
134
146
|
#
|
|
135
147
|
# Determine whether this is an IPv6 address
|
|
136
148
|
#
|
|
137
149
|
def self.is_ipv6?(addr)
|
|
138
|
-
addr =~ MATCH_IPV6 ?
|
|
150
|
+
addr =~ MATCH_IPV6 ? (addr =~ /\s/).nil? : false
|
|
139
151
|
end
|
|
140
152
|
|
|
141
153
|
#
|
|
142
154
|
# Determine whether this is a MAC address
|
|
143
155
|
#
|
|
144
156
|
def self.is_mac_addr?(addr)
|
|
145
|
-
|
|
157
|
+
addr =~ MATCH_MAC_ADDR ? (addr =~ /\s/).nil? : false
|
|
146
158
|
end
|
|
147
159
|
|
|
148
160
|
#
|
|
@@ -157,7 +169,7 @@ module Socket
|
|
|
157
169
|
# Checks to see if the supplied address is in "dotted" form
|
|
158
170
|
#
|
|
159
171
|
def self.dotted_ip?(addr)
|
|
160
|
-
(support_ipv6? && addr
|
|
172
|
+
(support_ipv6? && self.is_ipv6?(addr)) || self.is_ipv4?(addr)
|
|
161
173
|
end
|
|
162
174
|
|
|
163
175
|
# Checks to see if an address is an IPv6 address and if so, converts it into its
|
|
@@ -258,6 +270,29 @@ module Socket
|
|
|
258
270
|
@@resolver ? self.rex_gethostbyname(host) : ::Socket.gethostbyname(host)
|
|
259
271
|
end
|
|
260
272
|
|
|
273
|
+
#
|
|
274
|
+
# Wrapper for Resolv::DNS.getresources which normalizes the return value to a
|
|
275
|
+
# list of hostnames regardless of the resource class.
|
|
276
|
+
#
|
|
277
|
+
# @param name [String] The name to lookup.
|
|
278
|
+
# @param typeclass [Symbol] The resource class to lookup, e.g. CNAME, MX, etc.
|
|
279
|
+
# @raises ArgumentError An argument error is raised when the typeclass is invalid.
|
|
280
|
+
# @return [Array<String>] The hostnames that were returned by the query.
|
|
281
|
+
def self.getresources(name, typeclass)
|
|
282
|
+
return self.rex_getresources(name, typeclass) if @@resolver
|
|
283
|
+
|
|
284
|
+
typeclass = typeclass.upcase
|
|
285
|
+
attribute = DNS_RESOURCE_ATTRIBUTE_NAMES[typeclass]
|
|
286
|
+
if attribute.nil?
|
|
287
|
+
raise ArgumentError, "Invalid typeclass: #{typeclass}"
|
|
288
|
+
end
|
|
289
|
+
const = Resolv::DNS::Resource::IN.const_get(typeclass)
|
|
290
|
+
|
|
291
|
+
dns = Resolv::DNS.new
|
|
292
|
+
resources = dns.getresources(name, const)
|
|
293
|
+
resources.map(&attribute).map(&:to_s)
|
|
294
|
+
end
|
|
295
|
+
|
|
261
296
|
#
|
|
262
297
|
# Create a sockaddr structure using the supplied IP address, port, and
|
|
263
298
|
# address family
|
|
@@ -963,6 +998,52 @@ protected
|
|
|
963
998
|
# Ensure response types (depending on underlying library used) provide required methods
|
|
964
999
|
return v4, v6
|
|
965
1000
|
end
|
|
1001
|
+
|
|
1002
|
+
def self.rex_getresources(name, typeclass, resolver: @@resolver)
|
|
1003
|
+
raise ::SocketError.new(
|
|
1004
|
+
"Rex::Socket internal DNS resolution requires passing/setting a resolver"
|
|
1005
|
+
) unless resolver
|
|
1006
|
+
raise ::SocketError.new(
|
|
1007
|
+
"Rex::Socket internal DNS resolution requires passing a String name to resolve"
|
|
1008
|
+
) unless name.is_a?(String)
|
|
1009
|
+
|
|
1010
|
+
typeclass = typeclass.upcase
|
|
1011
|
+
attribute = REX_DNS_RESOURCE_ATTRIBUTE_NAMES[typeclass]
|
|
1012
|
+
if attribute.nil?
|
|
1013
|
+
raise ArgumentError, "Invalid typeclass: #{typeclass}"
|
|
1014
|
+
end
|
|
1015
|
+
const = ::Net::DNS.const_get(typeclass)
|
|
1016
|
+
|
|
1017
|
+
resources = begin
|
|
1018
|
+
resolver.send(name, const).answer.select do |a|
|
|
1019
|
+
a.type == const
|
|
1020
|
+
end.map(&attribute).map(&:to_s)
|
|
1021
|
+
rescue
|
|
1022
|
+
[]
|
|
1023
|
+
end
|
|
1024
|
+
|
|
1025
|
+
resources
|
|
1026
|
+
end
|
|
1027
|
+
|
|
1028
|
+
DNS_RESOURCE_ATTRIBUTE_NAMES = {
|
|
1029
|
+
CNAME: :name,
|
|
1030
|
+
MX: :exchange,
|
|
1031
|
+
NS: :name,
|
|
1032
|
+
PTR: :name,
|
|
1033
|
+
SOA: :mname,
|
|
1034
|
+
SRV: :target
|
|
1035
|
+
}.freeze
|
|
1036
|
+
private_constant :DNS_RESOURCE_ATTRIBUTE_NAMES
|
|
1037
|
+
|
|
1038
|
+
REX_DNS_RESOURCE_ATTRIBUTE_NAMES = {
|
|
1039
|
+
CNAME: :domainname,
|
|
1040
|
+
MX: :exchange,
|
|
1041
|
+
NS: :domainname,
|
|
1042
|
+
PTR: :domainname,
|
|
1043
|
+
SOA: :mname,
|
|
1044
|
+
SRV: :target
|
|
1045
|
+
}.freeze
|
|
1046
|
+
private_constant :REX_DNS_RESOURCE_ATTRIBUTE_NAMES
|
|
966
1047
|
end
|
|
967
1048
|
|
|
968
1049
|
end
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rex-socket
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.56
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Metasploit Hackers
|
|
@@ -10,90 +10,31 @@ bindir: exe
|
|
|
10
10
|
cert_chain:
|
|
11
11
|
- |
|
|
12
12
|
-----BEGIN CERTIFICATE-----
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
+
|
|
13
|
+
MIIERDCCAqygAwIBAgIBATANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBttc2Zk
|
|
14
|
+
ZXYvREM9bWV0YXNwbG9pdC9EQz1jb20wHhcNMjMxMDMwMTYwNDI1WhcNMjUxMDI5
|
|
15
|
+
MTYwNDI1WjAmMSQwIgYDVQQDDBttc2ZkZXYvREM9bWV0YXNwbG9pdC9EQz1jb20w
|
|
16
|
+
ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZN/EKv+yVjwiKWvjAVhjF
|
|
17
|
+
aWNYI0E9bJ5d1qKd29omRYX9a+OOKBCu5+394fyF5RjwU4mYGr2iopX9ixRJrWXH
|
|
18
|
+
ojs70tEvV1CmvP9rhz7JKzQQoJOkinrz4d+StIylxVxVdgm7DeiB3ruTwvl7qKUv
|
|
19
|
+
piWzhrBFiVU6XIEAwq6wNEmnv2D+Omyf4h0Tf99hc6G0QmBnU3XydqvnZ+AzUbBV
|
|
20
|
+
24RH3+NQoigLbvK4M5aOeYhk19di58hznebOw6twHzNczshrBeMFQp985ScNgsvF
|
|
21
|
+
rL+7HNNwpcpngERwZfzDNn7iYN5X3cyvTcykShtsuPMa5zXsYo42LZrsTF87DW38
|
|
22
|
+
D8sxL6Dgdqu25Mltdw9m+iD4rHSfb1KJYEoNO+WwBJLO2Y4d6G1CR66tVeWsZspb
|
|
23
|
+
zneOVC+sDuil7hOm+6a7Y2yrrRyT6IfL/07DywjPAIRUp5+Jn8ZrkWRNo2AOwWBG
|
|
24
|
+
k5gz7SfJPHuyVnPlxoMA0MTFCUnnnbyHu882TGoJGgMCAwEAAaN9MHswCQYDVR0T
|
|
25
|
+
BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFIQfNa4E889ZE334cwU7eNu2hScH
|
|
26
|
+
MCAGA1UdEQQZMBeBFW1zZmRldkBtZXRhc3Bsb2l0LmNvbTAgBgNVHRIEGTAXgRVt
|
|
27
|
+
c2ZkZXZAbWV0YXNwbG9pdC5jb20wDQYJKoZIhvcNAQELBQADggGBAMfzvKcV27p7
|
|
28
|
+
pctmpW2JmIXLMrjNLyGJAxELH/t9pJueXdga7uj2fJkYQDbwGw5x4MGyFqhqJLH4
|
|
29
|
+
l/qsUF3PyAXDTSWLVaqXQVWO+IIHxecG0XjPXTNudzMU0hzqbqiBKvsW7/a3V5BP
|
|
30
|
+
SWlFzrFkoXWlPouFpoakyYMJjpW4SGdPzRv7pM4OhXtkXpHiRvx5985FrHgHlI89
|
|
31
|
+
NSIuIUbp8zqk4hP1i9MV0Lc/vTf2gOmo+RHnjqG1NiYfMCYyY/Mcd4W36kGOl468
|
|
32
|
+
I8VDTwgCufkAzFu7BJ5yCOueqtDcuq+d3YhAyU7NI4+Ja8EwazOnB+07sWhKpg7z
|
|
33
|
+
yuQ1mWYPmZfVQpoSVv1CvXsoqJYXVPBBLOacKKSj8ArVG6pPn9Bej7IOQdblaFjl
|
|
34
|
+
DgscAao7wB3xW2BWEp1KnaDWkf1x9ttgoBEYyuYwU7uatB67kBQG1PKvLt79wHvz
|
|
35
|
+
Dxs+KOjGbBRfMnPgVGYkORKVrZIwlaboHbDKxcVW5xv+oZc7KYXWGg==
|
|
33
36
|
-----END CERTIFICATE-----
|
|
34
|
-
-
|
|
35
|
-
-----BEGIN CERTIFICATE-----
|
|
36
|
-
MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
|
|
37
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
38
|
-
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
|
39
|
-
b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
|
|
40
|
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
|
41
|
-
cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
|
|
42
|
-
aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
|
|
43
|
-
Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
|
|
44
|
-
8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
|
|
45
|
-
wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
|
|
46
|
-
fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
|
|
47
|
-
jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
|
|
48
|
-
n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
|
|
49
|
-
HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
|
|
50
|
-
MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
|
|
51
|
-
MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
|
|
52
|
-
RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
|
|
53
|
-
ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
|
|
54
|
-
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
|
|
55
|
-
TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
|
56
|
-
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
|
|
57
|
-
CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
|
|
58
|
-
MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
|
|
59
|
-
fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
|
|
60
|
-
RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
|
|
61
|
-
EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
|
|
62
|
-
L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
|
|
63
|
-
B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
|
|
64
|
-
-----END CERTIFICATE-----
|
|
65
|
-
- |
|
|
66
|
-
-----BEGIN CERTIFICATE-----
|
|
67
|
-
MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
|
|
68
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
69
|
-
d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
|
|
70
|
-
SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
|
|
71
|
-
MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
|
|
72
|
-
BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
|
|
73
|
-
IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
|
|
74
|
-
4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
|
|
75
|
-
WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
|
|
76
|
-
gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
|
|
77
|
-
9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
|
|
78
|
-
yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
|
|
79
|
-
r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
|
|
80
|
-
dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
|
|
81
|
-
B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
|
|
82
|
-
L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
|
|
83
|
-
L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
|
|
84
|
-
MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
|
85
|
-
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
|
|
86
|
-
JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
|
|
87
|
-
AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
|
|
88
|
-
ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
|
|
89
|
-
BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
|
|
90
|
-
37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
|
|
91
|
-
YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
|
|
92
|
-
dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
|
|
93
|
-
EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
|
|
94
|
-
9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
|
|
95
|
-
-----END CERTIFICATE-----
|
|
96
|
-
date: 2023-09-13 00:00:00.000000000 Z
|
|
37
|
+
date: 2024-02-14 00:00:00.000000000 Z
|
|
97
38
|
dependencies:
|
|
98
39
|
- !ruby/object:Gem::Dependency
|
|
99
40
|
name: rake
|
|
@@ -157,6 +98,7 @@ files:
|
|
|
157
98
|
- Rakefile
|
|
158
99
|
- bin/console
|
|
159
100
|
- bin/setup
|
|
101
|
+
- cortex.yaml
|
|
160
102
|
- lib/rex/socket.rb
|
|
161
103
|
- lib/rex/socket/comm.rb
|
|
162
104
|
- lib/rex/socket/comm/local.rb
|
|
@@ -195,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
195
137
|
- !ruby/object:Gem::Version
|
|
196
138
|
version: '0'
|
|
197
139
|
requirements: []
|
|
198
|
-
rubygems_version: 3.
|
|
140
|
+
rubygems_version: 3.4.10
|
|
199
141
|
signing_key:
|
|
200
142
|
specification_version: 4
|
|
201
143
|
summary: The Ruby Exploitation (Rex) Socket Abstraction Library.
|
metadata.gz.sig
CHANGED
|
Binary file
|