rex-sslscan 0.1.1 → 0.1.6
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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.github/workflows/verify.yml +57 -0
- data/Gemfile +3 -0
- data/LICENSE +27 -0
- data/lib/rex/sslscan.rb +1 -0
- data/lib/rex/sslscan/result.rb +19 -8
- data/lib/rex/sslscan/scanner.rb +27 -13
- data/lib/rex/sslscan/version.rb +1 -1
- data/rex-sslscan.gemspec +8 -6
- metadata +101 -95
- metadata.gz.sig +0 -0
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d67cb7d0eb505e02c1eb42281c8c8425d661b84426794332c23f487a12a3a0b0
|
4
|
+
data.tar.gz: 53d27b39c046abe76d61a0fa4a0b41e6dd6158ba77804777e7840cb537385afe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d1c6dfb708b9f6d261f60327931a4b2687e736c5f141cd43c3694dfd4014fef5c278277b42efa0efe8e79aee557d640e5508033240f5a68a06699269c5b1cb4
|
7
|
+
data.tar.gz: 42287e7629d822fb6f2140fd304750a5c8c85f2480ecdbdd9fbd7c8271f70988e311032f6861bf1c32b31494681e9c69bf2c55f6aea572d88d5f125b3b0303b0
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
@@ -0,0 +1,57 @@
|
|
1
|
+
name: Verify
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- '*'
|
7
|
+
pull_request:
|
8
|
+
branches:
|
9
|
+
- '*'
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
test:
|
13
|
+
runs-on: ubuntu-16.04
|
14
|
+
timeout-minutes: 40
|
15
|
+
|
16
|
+
strategy:
|
17
|
+
fail-fast: true
|
18
|
+
matrix:
|
19
|
+
ruby:
|
20
|
+
- 2.5
|
21
|
+
- 2.6
|
22
|
+
- 2.7
|
23
|
+
- 3.0
|
24
|
+
test_cmd:
|
25
|
+
- bundle exec rspec
|
26
|
+
|
27
|
+
env:
|
28
|
+
RAILS_ENV: test
|
29
|
+
|
30
|
+
name: Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }}
|
31
|
+
steps:
|
32
|
+
- name: Checkout code
|
33
|
+
uses: actions/checkout@v2
|
34
|
+
|
35
|
+
- uses: actions/setup-ruby@v1
|
36
|
+
with:
|
37
|
+
ruby-version: ${{ matrix.ruby }}
|
38
|
+
|
39
|
+
- name: Setup bundler
|
40
|
+
run: |
|
41
|
+
gem install bundler
|
42
|
+
- uses: actions/cache@v2
|
43
|
+
with:
|
44
|
+
path: vendor/bundle
|
45
|
+
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
46
|
+
restore-keys: |
|
47
|
+
${{ runner.os }}-gems-
|
48
|
+
- name: Bundle install
|
49
|
+
run: |
|
50
|
+
bundle config path vendor/bundle
|
51
|
+
bundle install --jobs 4 --retry 3
|
52
|
+
- name: ${{ matrix.test_cmd }}
|
53
|
+
run: |
|
54
|
+
echo "${CMD}"
|
55
|
+
bash -c "${CMD}"
|
56
|
+
env:
|
57
|
+
CMD: ${{ matrix.test_cmd }}
|
data/Gemfile
CHANGED
data/LICENSE
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
Copyright (C) 2012-2016, Rapid7, Inc.
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without modification,
|
5
|
+
are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
* Redistributions of source code must retain the above copyright notice,
|
8
|
+
this list of conditions and the following disclaimer.
|
9
|
+
|
10
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
11
|
+
this list of conditions and the following disclaimer in the documentation
|
12
|
+
and/or other materials provided with the distribution.
|
13
|
+
|
14
|
+
* Neither the name of Rapid7 LLC nor the names of its contributors
|
15
|
+
may be used to endorse or promote products derived from this software
|
16
|
+
without specific prior written permission.
|
17
|
+
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
19
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
20
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
21
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
22
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
23
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
24
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
25
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
26
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
27
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/lib/rex/sslscan.rb
CHANGED
data/lib/rex/sslscan/result.rb
CHANGED
@@ -15,7 +15,7 @@ class Result
|
|
15
15
|
def initialize()
|
16
16
|
@cert = nil
|
17
17
|
@ciphers = Set.new
|
18
|
-
@supported_versions = [:SSLv2, :SSLv3, :TLSv1]
|
18
|
+
@supported_versions = [:SSLv2, :SSLv3, :TLSv1, :TLSv1_1, :TLSv1_2]
|
19
19
|
@deprecated_weak_ciphers = [
|
20
20
|
'ECDHE-RSA-DES-CBC3-SHA',
|
21
21
|
'ECDHE-ECDSA-DES-CBC3-SHA',
|
@@ -32,7 +32,9 @@ class Result
|
|
32
32
|
'EXP-EDH-DSS-DES-CBC-SHA',
|
33
33
|
'EXP-DES-CBC-SHA',
|
34
34
|
'EXP-RC2-CBC-MD5',
|
35
|
-
'EXP-RC4-MD5'
|
35
|
+
'EXP-RC4-MD5',
|
36
|
+
'EXP-RC4-MD5',
|
37
|
+
'DES-CBC-SHA'
|
36
38
|
]
|
37
39
|
end
|
38
40
|
|
@@ -107,8 +109,16 @@ class Result
|
|
107
109
|
!(accepted(:TLSv1).empty?)
|
108
110
|
end
|
109
111
|
|
112
|
+
def supports_tlsv1_1?
|
113
|
+
!(accepted(:TLSv1_1).empty?)
|
114
|
+
end
|
115
|
+
|
116
|
+
def supports_tlsv1_2?
|
117
|
+
!(accepted(:TLSv1_2).empty?)
|
118
|
+
end
|
119
|
+
|
110
120
|
def supports_ssl?
|
111
|
-
supports_sslv2? or supports_sslv3? or supports_tlsv1?
|
121
|
+
supports_sslv2? or supports_sslv3? or supports_tlsv1? or supports_tlsv1_1? or supports_tlsv1_2?
|
112
122
|
end
|
113
123
|
|
114
124
|
def supports_weak_ciphers?
|
@@ -118,7 +128,9 @@ class Result
|
|
118
128
|
def standards_compliant?
|
119
129
|
if supports_ssl?
|
120
130
|
return false if supports_sslv2?
|
131
|
+
return false if supports_sslv3?
|
121
132
|
return false if supports_weak_ciphers?
|
133
|
+
return false if supports_tlsv1?
|
122
134
|
end
|
123
135
|
true
|
124
136
|
end
|
@@ -126,17 +138,16 @@ class Result
|
|
126
138
|
# Adds the details of a cipher test to the Result object.
|
127
139
|
# @param version [Symbol] the SSL Version
|
128
140
|
# @param cipher [String] the SSL cipher
|
129
|
-
# @param key_length [
|
141
|
+
# @param key_length [Integer] the length of encryption key
|
130
142
|
# @param status [Symbol] :accepted or :rejected
|
131
143
|
def add_cipher(version, cipher, key_length, status)
|
132
144
|
unless @supported_versions.include? version
|
133
145
|
raise ArgumentError, "Must be a supported SSL Version"
|
134
146
|
end
|
135
|
-
unless OpenSSL::SSL::SSLContext.new(version).ciphers.flatten.include?(cipher)
|
136
|
-
|| @deprecated_weak_ciphers.include?(cipher)
|
147
|
+
unless OpenSSL::SSL::SSLContext.new(version).ciphers.flatten.include?(cipher) || @deprecated_weak_ciphers.include?(cipher)
|
137
148
|
raise ArgumentError, "Must be a valid SSL Cipher for #{version}!"
|
138
149
|
end
|
139
|
-
unless key_length.kind_of?
|
150
|
+
unless key_length.kind_of? Integer
|
140
151
|
raise ArgumentError, "Must supply a valid key length"
|
141
152
|
end
|
142
153
|
unless [:accepted, :rejected].include? status
|
@@ -200,7 +211,7 @@ class Result
|
|
200
211
|
case version
|
201
212
|
when :all
|
202
213
|
return @ciphers.select{|cipher| cipher[:status] == state}
|
203
|
-
when :SSLv2, :SSLv3, :TLSv1
|
214
|
+
when :SSLv2, :SSLv3, :TLSv1, :TLSv1_1, :TLSv1_2
|
204
215
|
return @ciphers.select{|cipher| cipher[:status] == state and cipher[:version] == version}
|
205
216
|
else
|
206
217
|
raise ArgumentError, "Invalid SSL Version Supplied: #{version}"
|
data/lib/rex/sslscan/scanner.rb
CHANGED
@@ -6,6 +6,9 @@ module Rex::SSLScan
|
|
6
6
|
|
7
7
|
class Scanner
|
8
8
|
|
9
|
+
class InvalidCipher < StandardError
|
10
|
+
end
|
11
|
+
|
9
12
|
attr_accessor :context
|
10
13
|
attr_accessor :host
|
11
14
|
attr_accessor :port
|
@@ -16,8 +19,8 @@ class Scanner
|
|
16
19
|
|
17
20
|
# Initializes the scanner object
|
18
21
|
# @param host [String] IP address or hostname to scan
|
19
|
-
# @param port [
|
20
|
-
# @param timeout [
|
22
|
+
# @param port [Integer] Port number to scan, default: 443
|
23
|
+
# @param timeout [Integer] Timeout for connections, in seconds. default: 5
|
21
24
|
# @raise [StandardError] Raised when the configuration is invalid
|
22
25
|
def initialize(host,port = 443,context = {},timeout=5)
|
23
26
|
@host = host
|
@@ -25,10 +28,10 @@ class Scanner
|
|
25
28
|
@timeout = timeout
|
26
29
|
@context = context
|
27
30
|
if check_opensslv2 == true
|
28
|
-
@supported_versions = [:SSLv2, :SSLv3, :TLSv1]
|
31
|
+
@supported_versions = [:SSLv2, :SSLv3, :TLSv1, :TLSv1_1, :TLSv1_2]
|
29
32
|
@sslv2 = true
|
30
33
|
else
|
31
|
-
@supported_versions = [:SSLv3, :TLSv1]
|
34
|
+
@supported_versions = [:SSLv3, :TLSv1, :TLSv1_1, :TLSv1_2]
|
32
35
|
@sslv2 = false
|
33
36
|
end
|
34
37
|
raise StandardError, "The scanner configuration is invalid" unless valid?
|
@@ -42,10 +45,7 @@ class Scanner
|
|
42
45
|
rescue
|
43
46
|
return false
|
44
47
|
end
|
45
|
-
|
46
|
-
return false unless @port >= 0 and @port <= 65535
|
47
|
-
return false unless @timeout.kind_of? Fixnum
|
48
|
-
return true
|
48
|
+
@port.kind_of?(Integer) && @port >= 0 && @port <= 65535 && @timeout.kind_of?(Integer)
|
49
49
|
end
|
50
50
|
|
51
51
|
# Initiate the Scan against the target. Will test each cipher one at a time.
|
@@ -59,16 +59,30 @@ class Scanner
|
|
59
59
|
return scan_result
|
60
60
|
end
|
61
61
|
|
62
|
+
threads = []
|
63
|
+
ciphers = Queue.new
|
62
64
|
@supported_versions.each do |ssl_version|
|
63
65
|
sslctx = OpenSSL::SSL::SSLContext.new(ssl_version)
|
64
66
|
sslctx.ciphers.each do |cipher_name, ssl_ver, key_length, alg_length|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
67
|
+
threads << Thread.new do
|
68
|
+
begin
|
69
|
+
status = test_cipher(ssl_version, cipher_name)
|
70
|
+
ciphers << [ssl_version, cipher_name, key_length, status]
|
71
|
+
if status == :accepted and scan_result.cert.nil?
|
72
|
+
scan_result.cert = get_cert(ssl_version, cipher_name)
|
73
|
+
end
|
74
|
+
rescue Rex::SSLScan::Scanner::InvalidCipher
|
75
|
+
next
|
76
|
+
end
|
69
77
|
end
|
70
78
|
end
|
71
79
|
end
|
80
|
+
threads.each { |thr| thr.join }
|
81
|
+
|
82
|
+
until ciphers.empty? do
|
83
|
+
cipher = ciphers.pop
|
84
|
+
scan_result.add_cipher(*cipher)
|
85
|
+
end
|
72
86
|
scan_result
|
73
87
|
end
|
74
88
|
|
@@ -188,7 +202,7 @@ class Scanner
|
|
188
202
|
raise StandardError, "Your OS hates freedom! Your OpenSSL libs are compiled without SSLv2 support!"
|
189
203
|
else
|
190
204
|
unless OpenSSL::SSL::SSLContext.new(ssl_version).ciphers.flatten.include? cipher
|
191
|
-
raise
|
205
|
+
raise InvalidCipher, "Must be a valid SSL Cipher for #{ssl_version}!"
|
192
206
|
end
|
193
207
|
end
|
194
208
|
end
|
data/lib/rex/sslscan/version.rb
CHANGED
data/rex-sslscan.gemspec
CHANGED
@@ -6,11 +6,11 @@ require 'rex/sslscan/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "rex-sslscan"
|
8
8
|
spec.version = Rex::Sslscan::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Metasploit Hackers']
|
10
|
+
spec.email = ['msfdev@metasploit.com']
|
11
11
|
|
12
12
|
spec.summary = %q{Ruby Exploitation(REX) Library for scanning the SSL/TLS capabilities of a server}
|
13
|
-
spec.description = %q{This library is a pure ruby
|
13
|
+
spec.description = %q{This library is a pure ruby implmentation of the SSLScan tool originally written
|
14
14
|
by Ian Ventura-Whiting. It currently depends on the system version of OpenSSL}
|
15
15
|
spec.homepage = "https://github.com/rapid7/rex-sslscan"
|
16
16
|
|
@@ -20,10 +20,12 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.
|
24
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
23
|
+
spec.required_ruby_version = '>= 2.2.0'
|
26
24
|
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
|
+
|
28
|
+
spec.add_runtime_dependency "rex-core"
|
27
29
|
spec.add_runtime_dependency "rex-text"
|
28
30
|
spec.add_runtime_dependency "rex-socket"
|
29
31
|
end
|
metadata
CHANGED
@@ -1,137 +1,142 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rex-sslscan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Metasploit Hackers
|
8
8
|
autorequire:
|
9
9
|
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
|
-
|
13
|
+
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
|
14
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
15
|
+
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
16
|
+
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
|
17
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
18
|
+
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
|
19
|
+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
|
20
|
+
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
|
21
|
+
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
|
22
|
+
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
|
23
|
+
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
|
24
|
+
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
|
25
|
+
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
26
|
+
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
|
27
|
+
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
|
28
|
+
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
|
29
|
+
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
|
30
|
+
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
|
31
|
+
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
32
|
+
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
32
33
|
-----END CERTIFICATE-----
|
33
34
|
- |
|
34
35
|
-----BEGIN CERTIFICATE-----
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
60
64
|
-----END CERTIFICATE-----
|
61
65
|
- |
|
62
66
|
-----BEGIN CERTIFICATE-----
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
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=
|
90
95
|
-----END CERTIFICATE-----
|
91
|
-
date:
|
96
|
+
date: 2021-02-19 00:00:00.000000000 Z
|
92
97
|
dependencies:
|
93
98
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
99
|
+
name: rake
|
95
100
|
requirement: !ruby/object:Gem::Requirement
|
96
101
|
requirements:
|
97
|
-
- - "
|
102
|
+
- - ">="
|
98
103
|
- !ruby/object:Gem::Version
|
99
|
-
version: '
|
104
|
+
version: '0'
|
100
105
|
type: :development
|
101
106
|
prerelease: false
|
102
107
|
version_requirements: !ruby/object:Gem::Requirement
|
103
108
|
requirements:
|
104
|
-
- - "
|
109
|
+
- - ">="
|
105
110
|
- !ruby/object:Gem::Version
|
106
|
-
version: '
|
111
|
+
version: '0'
|
107
112
|
- !ruby/object:Gem::Dependency
|
108
|
-
name:
|
113
|
+
name: rspec
|
109
114
|
requirement: !ruby/object:Gem::Requirement
|
110
115
|
requirements:
|
111
|
-
- - "
|
116
|
+
- - ">="
|
112
117
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
118
|
+
version: '0'
|
114
119
|
type: :development
|
115
120
|
prerelease: false
|
116
121
|
version_requirements: !ruby/object:Gem::Requirement
|
117
122
|
requirements:
|
118
|
-
- - "
|
123
|
+
- - ">="
|
119
124
|
- !ruby/object:Gem::Version
|
120
|
-
version: '
|
125
|
+
version: '0'
|
121
126
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
127
|
+
name: rex-core
|
123
128
|
requirement: !ruby/object:Gem::Requirement
|
124
129
|
requirements:
|
125
|
-
- - "
|
130
|
+
- - ">="
|
126
131
|
- !ruby/object:Gem::Version
|
127
|
-
version: '
|
128
|
-
type: :
|
132
|
+
version: '0'
|
133
|
+
type: :runtime
|
129
134
|
prerelease: false
|
130
135
|
version_requirements: !ruby/object:Gem::Requirement
|
131
136
|
requirements:
|
132
|
-
- - "
|
137
|
+
- - ">="
|
133
138
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
139
|
+
version: '0'
|
135
140
|
- !ruby/object:Gem::Dependency
|
136
141
|
name: rex-text
|
137
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,19 +166,20 @@ dependencies:
|
|
161
166
|
- !ruby/object:Gem::Version
|
162
167
|
version: '0'
|
163
168
|
description: |-
|
164
|
-
This library is a pure ruby
|
169
|
+
This library is a pure ruby implmentation of the SSLScan tool originally written
|
165
170
|
by Ian Ventura-Whiting. It currently depends on the system version of OpenSSL
|
166
171
|
email:
|
167
|
-
-
|
172
|
+
- msfdev@metasploit.com
|
168
173
|
executables: []
|
169
174
|
extensions: []
|
170
175
|
extra_rdoc_files: []
|
171
176
|
files:
|
177
|
+
- ".github/workflows/verify.yml"
|
172
178
|
- ".gitignore"
|
173
179
|
- ".rspec"
|
174
|
-
- ".travis.yml"
|
175
180
|
- CODE_OF_CONDUCT.md
|
176
181
|
- Gemfile
|
182
|
+
- LICENSE
|
177
183
|
- README.md
|
178
184
|
- Rakefile
|
179
185
|
- bin/console
|
@@ -194,7 +200,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
194
200
|
requirements:
|
195
201
|
- - ">="
|
196
202
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
203
|
+
version: 2.2.0
|
198
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
205
|
requirements:
|
200
206
|
- - ">="
|
@@ -202,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
208
|
version: '0'
|
203
209
|
requirements: []
|
204
210
|
rubyforge_project:
|
205
|
-
rubygems_version: 2.
|
211
|
+
rubygems_version: 2.7.10
|
206
212
|
signing_key:
|
207
213
|
specification_version: 4
|
208
214
|
summary: Ruby Exploitation(REX) Library for scanning the SSL/TLS capabilities of a
|
metadata.gz.sig
CHANGED
Binary file
|