rex-socket 0.1.55 → 0.1.57

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f205a57e2e9e372f999bd08d4e39d6be05bb5fc4a3bcc83e3b27b0de29dd90ad
4
- data.tar.gz: '028fca6197d04804b78b7f6ee8d9ca849196c84714a1eabf640b25fe723b8226'
3
+ metadata.gz: 3813cfab9315c8efee87b3104d1270a7f9c542cbd012b97b5155650d78f2f98b
4
+ data.tar.gz: 15962d9201caa7cfb3c90a80457b0988913f35007126b15669114632842fa465
5
5
  SHA512:
6
- metadata.gz: 393eb18d30bf96737c546a91cc646991cb1b17641cce3266911378a6a423c1d7a3f0e921ca455816bf7563fae6fa6933a38a39263c5b7a823be1c319ff0d8960
7
- data.tar.gz: c5f866f117febd1717a60404a2b07e5cf945f48c37c479e490d26992b5438abfb78f1b7e84940399e0e741ef155830ec07cb7fa5ef211fb88d70e7b33341e9de
6
+ metadata.gz: 0b0a6fb36088a4a299583325ff7ebe74363efd2587a0ed32ac8769b99ba8937a31b09042277d0349142e19b12bcbb7a16738d53b26b14a4d490261da3eeddad5
7
+ data.tar.gz: 32e6b77da1e059619c9aca489c6eb7cba8116e2069f79af276646db40b0fd949b4cc82d73eee4d7198e19d5fa5e06b100d3ded0aae644dbe8d6573bf318ba836
checksums.yaml.gz.sig CHANGED
Binary file
@@ -1,5 +1,5 @@
1
1
  module Rex
2
2
  module Socket
3
- VERSION = "0.1.55"
3
+ VERSION = "0.1.57"
4
4
  end
5
5
  end
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.delete_suffix('.') =~ 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 ? true : false
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 ? true : false
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
- !(addr =~ MATCH_MAC_ADDR).nil?
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 =~ MATCH_IPV6) || (addr =~ MATCH_IPV4)
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
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.55
4
+ version: 0.1.57
5
5
  platform: ruby
6
6
  authors:
7
7
  - Metasploit Hackers
@@ -34,7 +34,7 @@ cert_chain:
34
34
  DgscAao7wB3xW2BWEp1KnaDWkf1x9ttgoBEYyuYwU7uatB67kBQG1PKvLt79wHvz
35
35
  Dxs+KOjGbBRfMnPgVGYkORKVrZIwlaboHbDKxcVW5xv+oZc7KYXWGg==
36
36
  -----END CERTIFICATE-----
37
- date: 2023-12-05 00:00:00.000000000 Z
37
+ date: 2024-03-25 00:00:00.000000000 Z
38
38
  dependencies:
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: rake
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  requirements: []
140
- rubygems_version: 3.1.4
140
+ rubygems_version: 3.4.10
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: The Ruby Exploitation (Rex) Socket Abstraction Library.
metadata.gz.sig CHANGED
Binary file