rex-socket 0.1.54 → 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/cortex.yaml +15 -0
- data/lib/rex/socket/version.rb +1 -1
- data/lib/rex/socket.rb +69 -0
- data.tar.gz.sig +3 -3
- 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
|
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
|
@@ -963,6 +986,52 @@ protected
|
|
963
986
|
# Ensure response types (depending on underlying library used) provide required methods
|
964
987
|
return v4, v6
|
965
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
|
966
1035
|
end
|
967
1036
|
|
968
1037
|
end
|
data.tar.gz.sig
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
͂�-T'[�Ss�eq�KqS42��aH�Ɣn�5q�vB���#�x�,�C�3}����&96�{ �ϔ 8� k|�����-�Xa���J#PJ��I��:ĈΪ��;] ���o/"�ܸi�V炜�<��(�h��uM�ZQ�L�1���.����V/���ƥ�����H6Ҡ���2+i�f^��4�T/�cQu+�zxlƆD��Ǻ�<g�i0џ
|
2
|
+
��z#9j���� ~���a>�B�R��
|
3
|
+
�8�\�yZS}]0�׃�l�E������z<(�
|
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-13 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
|