rex-socket 0.1.53 → 0.1.55
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/.github/workflows/verify.yml +7 -10
- data/cortex.yaml +15 -0
- data/lib/rex/socket/version.rb +1 -1
- data/lib/rex/socket.rb +110 -21
- data.tar.gz.sig +0 -0
- metadata +26 -84
- 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: f205a57e2e9e372f999bd08d4e39d6be05bb5fc4a3bcc83e3b27b0de29dd90ad
|
4
|
+
data.tar.gz: '028fca6197d04804b78b7f6ee8d9ca849196c84714a1eabf640b25fe723b8226'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 393eb18d30bf96737c546a91cc646991cb1b17641cce3266911378a6a423c1d7a3f0e921ca455816bf7563fae6fa6933a38a39263c5b7a823be1c319ff0d8960
|
7
|
+
data.tar.gz: c5f866f117febd1717a60404a2b07e5cf945f48c37c479e490d26992b5438abfb78f1b7e84940399e0e741ef155830ec07cb7fa5ef211fb88d70e7b33341e9de
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -30,7 +30,7 @@ jobs:
|
|
30
30
|
timeout-minutes: 40
|
31
31
|
|
32
32
|
strategy:
|
33
|
-
fail-fast:
|
33
|
+
fail-fast: false
|
34
34
|
matrix:
|
35
35
|
ruby:
|
36
36
|
- '2.7'
|
@@ -39,20 +39,20 @@ jobs:
|
|
39
39
|
- '3.2'
|
40
40
|
os:
|
41
41
|
- ubuntu-20.04
|
42
|
+
- windows-2019
|
43
|
+
- macos-11
|
42
44
|
- ubuntu-latest
|
43
45
|
exclude:
|
44
46
|
- { os: ubuntu-latest, ruby: '2.7' }
|
45
47
|
- { os: ubuntu-latest, ruby: '3.0' }
|
46
|
-
test_cmd:
|
47
|
-
- bundle exec rspec
|
48
48
|
|
49
49
|
env:
|
50
50
|
RAILS_ENV: test
|
51
51
|
|
52
|
-
name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }}
|
52
|
+
name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }}
|
53
53
|
steps:
|
54
54
|
- name: Checkout code
|
55
|
-
uses: actions/checkout@
|
55
|
+
uses: actions/checkout@v4
|
56
56
|
|
57
57
|
- name: Setup Ruby
|
58
58
|
uses: ruby/setup-ruby@v1
|
@@ -60,9 +60,6 @@ jobs:
|
|
60
60
|
ruby-version: ${{ matrix.ruby }}
|
61
61
|
bundler-cache: true
|
62
62
|
|
63
|
-
- name:
|
63
|
+
- name: rspec
|
64
64
|
run: |
|
65
|
-
|
66
|
-
bash -c "${CMD}"
|
67
|
-
env:
|
68
|
-
CMD: ${{ matrix.test_cmd }}
|
65
|
+
bundle exec rspec
|
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
@@ -258,6 +258,29 @@ module Socket
|
|
258
258
|
@@resolver ? self.rex_gethostbyname(host) : ::Socket.gethostbyname(host)
|
259
259
|
end
|
260
260
|
|
261
|
+
#
|
262
|
+
# Wrapper for Resolv::DNS.getresources which normalizes the return value to a
|
263
|
+
# list of hostnames regardless of the resource class.
|
264
|
+
#
|
265
|
+
# @param name [String] The name to lookup.
|
266
|
+
# @param typeclass [Symbol] The resource class to lookup, e.g. CNAME, MX, etc.
|
267
|
+
# @raises ArgumentError An argument error is raised when the typeclass is invalid.
|
268
|
+
# @return [Array<String>] The hostnames that were returned by the query.
|
269
|
+
def self.getresources(name, typeclass)
|
270
|
+
return self.rex_getresources(name, typeclass) if @@resolver
|
271
|
+
|
272
|
+
typeclass = typeclass.upcase
|
273
|
+
attribute = DNS_RESOURCE_ATTRIBUTE_NAMES[typeclass]
|
274
|
+
if attribute.nil?
|
275
|
+
raise ArgumentError, "Invalid typeclass: #{typeclass}"
|
276
|
+
end
|
277
|
+
const = Resolv::DNS::Resource::IN.const_get(typeclass)
|
278
|
+
|
279
|
+
dns = Resolv::DNS.new
|
280
|
+
resources = dns.getresources(name, const)
|
281
|
+
resources.map(&attribute).map(&:to_s)
|
282
|
+
end
|
283
|
+
|
261
284
|
#
|
262
285
|
# Create a sockaddr structure using the supplied IP address, port, and
|
263
286
|
# address family
|
@@ -672,37 +695,57 @@ module Socket
|
|
672
695
|
# is no concurrent use of the same locals and this is safe.
|
673
696
|
def self.tcp_socket_pair
|
674
697
|
lsock = nil
|
698
|
+
last_child_error = nil
|
699
|
+
accept_timeout = 10
|
675
700
|
rsock = nil
|
676
701
|
laddr = '127.0.0.1'
|
677
702
|
lport = 0
|
678
703
|
threads = []
|
679
704
|
mutex = ::Mutex.new
|
680
705
|
|
681
|
-
threads << Rex::ThreadFactory.spawn('TcpSocketPair', false)
|
706
|
+
threads << Rex::ThreadFactory.spawn('TcpSocketPair', false) do
|
682
707
|
server = nil
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
708
|
+
begin
|
709
|
+
mutex.synchronize do
|
710
|
+
threads << Rex::ThreadFactory.spawn('TcpSocketPairClient', false) do
|
711
|
+
mutex.synchronize do
|
712
|
+
begin
|
713
|
+
rsock = ::TCPSocket.new( laddr, lport )
|
714
|
+
rescue => e
|
715
|
+
last_child_error = "#{e.class} - #{e.message}"
|
716
|
+
raise
|
717
|
+
end
|
718
|
+
end
|
719
|
+
end
|
720
|
+
server = ::TCPServer.new(laddr, 0)
|
721
|
+
if (server.getsockname =~ /127\.0\.0\.1:/)
|
722
|
+
# JRuby ridiculousness
|
723
|
+
caddr, lport = server.getsockname.split(":")
|
724
|
+
caddr = caddr[1,caddr.length]
|
725
|
+
lport = lport.to_i
|
726
|
+
else
|
727
|
+
# Sane implementations where Socket#getsockname returns a
|
728
|
+
# sockaddr
|
729
|
+
lport, caddr = ::Socket.unpack_sockaddr_in( server.getsockname )
|
730
|
+
end
|
731
|
+
end
|
732
|
+
|
733
|
+
readable, _writable, _errors = ::IO.select([server], nil, nil, accept_timeout)
|
734
|
+
if readable && readable.any?
|
735
|
+
lsock, _ = server.accept_nonblock
|
695
736
|
else
|
696
|
-
|
697
|
-
# sockaddr
|
698
|
-
lport, caddr = ::Socket.unpack_sockaddr_in( server.getsockname )
|
737
|
+
raise RuntimeError, "rsock didn't connect in #{accept_timeout} seconds"
|
699
738
|
end
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
739
|
+
ensure
|
740
|
+
server.close if server
|
741
|
+
end
|
742
|
+
end
|
704
743
|
|
705
|
-
threads.each
|
744
|
+
threads.each.with_index do |thread, i|
|
745
|
+
thread.join
|
746
|
+
rescue => e
|
747
|
+
raise "Thread #{i} - error #{e} - last child error: #{last_child_error}"
|
748
|
+
end
|
706
749
|
|
707
750
|
return [lsock, rsock]
|
708
751
|
end
|
@@ -943,6 +986,52 @@ protected
|
|
943
986
|
# Ensure response types (depending on underlying library used) provide required methods
|
944
987
|
return v4, v6
|
945
988
|
end
|
989
|
+
|
990
|
+
def self.rex_getresources(name, typeclass, resolver: @@resolver)
|
991
|
+
raise ::SocketError.new(
|
992
|
+
"Rex::Socket internal DNS resolution requires passing/setting a resolver"
|
993
|
+
) unless resolver
|
994
|
+
raise ::SocketError.new(
|
995
|
+
"Rex::Socket internal DNS resolution requires passing a String name to resolve"
|
996
|
+
) unless name.is_a?(String)
|
997
|
+
|
998
|
+
typeclass = typeclass.upcase
|
999
|
+
attribute = REX_DNS_RESOURCE_ATTRIBUTE_NAMES[typeclass]
|
1000
|
+
if attribute.nil?
|
1001
|
+
raise ArgumentError, "Invalid typeclass: #{typeclass}"
|
1002
|
+
end
|
1003
|
+
const = ::Net::DNS.const_get(typeclass)
|
1004
|
+
|
1005
|
+
resources = begin
|
1006
|
+
resolver.send(name, const).answer.select do |a|
|
1007
|
+
a.type == const
|
1008
|
+
end.map(&attribute).map(&:to_s)
|
1009
|
+
rescue
|
1010
|
+
[]
|
1011
|
+
end
|
1012
|
+
|
1013
|
+
resources
|
1014
|
+
end
|
1015
|
+
|
1016
|
+
DNS_RESOURCE_ATTRIBUTE_NAMES = {
|
1017
|
+
CNAME: :name,
|
1018
|
+
MX: :exchange,
|
1019
|
+
NS: :name,
|
1020
|
+
PTR: :name,
|
1021
|
+
SOA: :mname,
|
1022
|
+
SRV: :target
|
1023
|
+
}.freeze
|
1024
|
+
private_constant :DNS_RESOURCE_ATTRIBUTE_NAMES
|
1025
|
+
|
1026
|
+
REX_DNS_RESOURCE_ATTRIBUTE_NAMES = {
|
1027
|
+
CNAME: :domainname,
|
1028
|
+
MX: :exchange,
|
1029
|
+
NS: :domainname,
|
1030
|
+
PTR: :domainname,
|
1031
|
+
SOA: :mname,
|
1032
|
+
SRV: :target
|
1033
|
+
}.freeze
|
1034
|
+
private_constant :REX_DNS_RESOURCE_ATTRIBUTE_NAMES
|
946
1035
|
end
|
947
1036
|
|
948
1037
|
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.55
|
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-05 00:00:00.000000000 Z
|
37
|
+
date: 2023-12-05 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
|
metadata.gz.sig
CHANGED
Binary file
|