rex-socket 0.1.33 → 0.1.36
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 +1 -1
- data/lib/rex/socket/parameters.rb +10 -0
- data/lib/rex/socket/ssl_tcp.rb +6 -2
- data/lib/rex/socket/version.rb +1 -1
- data/lib/rex/socket.rb +8 -2
- data.tar.gz.sig +0 -0
- metadata +2 -2
- 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: 5c8406c7c6de56b14dfb52d691b52e04bfa41c3c4d3dfec6604864e104371e13
|
4
|
+
data.tar.gz: 5b5346a4646a8d1c69a616df64120d5f099c0506f97a3dca5c27b40b4c253d9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1285905a72192b26a171872a76fd2272c51a3d93a78aed5648ad857c356b43bd2d2c7fa7e75ebf742c38a207fc65a7d1e6fb4641c9f5af19af4b53f8151e233f
|
7
|
+
data.tar.gz: 73bd96efa3758be73faafa8543343b959e17f4d16f49206be05dc5e65fd44be834756aa6166b2e651b4feababfb6aaa4708f7b40dc2fe39aa70873663d60e12a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -49,6 +49,7 @@ class Rex::Socket::Parameters
|
|
49
49
|
# keys can be specified.
|
50
50
|
#
|
51
51
|
# @option hash [String] 'PeerHost' The remote host to connect to
|
52
|
+
# @option hash [String] 'PeerHostname' The unresolved remote hostname, used to specify Server Name Indication (SNI)
|
52
53
|
# @option hash [String] 'PeerAddr' (alias for 'PeerHost')
|
53
54
|
# @option hash [Fixnum] 'PeerPort' The remote port to connect to
|
54
55
|
# @option hash [String] 'LocalHost' The local host to communicate from, if any
|
@@ -84,6 +85,10 @@ class Rex::Socket::Parameters
|
|
84
85
|
self.peerhost = hash['PeerAddr']
|
85
86
|
end
|
86
87
|
|
88
|
+
if (hash['PeerHostname'])
|
89
|
+
self.peerhostname = hash['PeerHostname']
|
90
|
+
end
|
91
|
+
|
87
92
|
if (hash['LocalHost'])
|
88
93
|
self.localhost = hash['LocalHost']
|
89
94
|
elsif (hash['LocalAddr'])
|
@@ -291,6 +296,11 @@ class Rex::Socket::Parameters
|
|
291
296
|
# @return [String]
|
292
297
|
attr_accessor :peerhost
|
293
298
|
|
299
|
+
# The remote hostname information, equivalent to the PeerHostname parameter hash
|
300
|
+
# key.
|
301
|
+
# @return [String]
|
302
|
+
attr_accessor :peerhostname
|
303
|
+
|
294
304
|
# The remote port. Equivalent to the PeerPort parameter hash key.
|
295
305
|
# @return [Fixnum]
|
296
306
|
attr_writer :peerport
|
data/lib/rex/socket/ssl_tcp.rb
CHANGED
@@ -123,10 +123,14 @@ begin
|
|
123
123
|
# Tie the context to a socket
|
124
124
|
self.sslsock = OpenSSL::SSL::SSLSocket.new(self, self.sslctx)
|
125
125
|
|
126
|
-
# If
|
126
|
+
# If peerhostname is set, or if hostname looks like a hostname, set the undocumented 'hostname'
|
127
127
|
# attribute on sslsock, which enables the Server Name Indication (SNI)
|
128
128
|
# extension
|
129
|
-
|
129
|
+
if self.peerhostname
|
130
|
+
self.sslsock.hostname = self.peerhostname
|
131
|
+
else !Rex::Socket.dotted_ip?(self.peerhost)
|
132
|
+
self.sslsock.hostname = self.peerhost
|
133
|
+
end
|
130
134
|
|
131
135
|
# Force a negotiation timeout
|
132
136
|
begin
|
data/lib/rex/socket/version.rb
CHANGED
data/lib/rex/socket.rb
CHANGED
@@ -184,6 +184,8 @@ module Socket
|
|
184
184
|
# @param hostname [String] A hostname or ASCII IP address
|
185
185
|
# @return [Array<String>]
|
186
186
|
def self.getaddresses(hostname, accept_ipv6 = true)
|
187
|
+
raise ::SocketError, 'getaddrinfo: nodename nor servname provided, or not known' if hostname.nil?
|
188
|
+
|
187
189
|
if hostname =~ MATCH_IPV4 || (accept_ipv6 && hostname =~ MATCH_IPV6)
|
188
190
|
return [hostname]
|
189
191
|
end
|
@@ -704,6 +706,7 @@ module Socket
|
|
704
706
|
def initsock(params = nil)
|
705
707
|
if (params)
|
706
708
|
self.peerhost = params.peerhost
|
709
|
+
self.peerhostname = params.peerhostname
|
707
710
|
self.peerport = params.peerport
|
708
711
|
self.localhost = params.localhost
|
709
712
|
self.localport = params.localport
|
@@ -783,6 +786,10 @@ module Socket
|
|
783
786
|
#
|
784
787
|
attr_reader :peerhost
|
785
788
|
#
|
789
|
+
# The peer hostname of the connected socket.
|
790
|
+
#
|
791
|
+
attr_reader :peerhostname
|
792
|
+
#
|
786
793
|
# The peer port of the connected socket.
|
787
794
|
#
|
788
795
|
attr_reader :peerport
|
@@ -807,7 +814,7 @@ module Socket
|
|
807
814
|
|
808
815
|
protected
|
809
816
|
|
810
|
-
attr_writer :peerhost, :peerport, :localhost, :localport # :nodoc:
|
817
|
+
attr_writer :peerhost, :peerhostname, :peerport, :localhost, :localport # :nodoc:
|
811
818
|
attr_writer :context # :nodoc:
|
812
819
|
attr_writer :ipv # :nodoc:
|
813
820
|
|
@@ -821,4 +828,3 @@ end
|
|
821
828
|
SHUT_RDWR = ::Socket::SHUT_RDWR
|
822
829
|
SHUT_RD = ::Socket::SHUT_RD
|
823
830
|
SHUT_WR = ::Socket::SHUT_WR
|
824
|
-
|
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.36
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Metasploit Hackers
|
@@ -93,7 +93,7 @@ cert_chain:
|
|
93
93
|
EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
|
94
94
|
9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
|
95
95
|
-----END CERTIFICATE-----
|
96
|
-
date:
|
96
|
+
date: 2022-05-03 00:00:00.000000000 Z
|
97
97
|
dependencies:
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rake
|
metadata.gz.sig
CHANGED
Binary file
|