ssh_scan 0.0.26 → 0.0.27
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
- data/data/fingerprints.yml +1 -4
- data/lib/ssh_scan/client.rb +27 -18
- data/lib/ssh_scan/scan_engine.rb +1 -1
- data/lib/ssh_scan/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a533f0fb3e5546f5453e8aa849e6319e89018da
|
4
|
+
data.tar.gz: 1277467584f2809bc0e6bf7c7e39ea2bd9d45a02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f0e8efa6ec04d54c5cdfebc3b826f4a12a5bd74142101724f829ecc81fcce510101eb3bc498e886435b49aaaa4cb565666ce6967c3b291e382178bc4086cd80
|
7
|
+
data.tar.gz: 0cfe6cb0c6c3e3316511312d48f5cbfc3d97bc869e27870b5174fe95fa62be24d853d1cdd232abcf590235bb8a2151e4d527e7c983d341c0c6074b7000e2c01e
|
data/data/fingerprints.yml
CHANGED
data/lib/ssh_scan/client.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'socket'
|
2
|
+
require 'timeout'
|
2
3
|
require 'ssh_scan/constants'
|
3
4
|
require 'ssh_scan/protocol'
|
4
5
|
require 'ssh_scan/banner'
|
@@ -43,12 +44,15 @@ module SSHScan
|
|
43
44
|
@error = nil
|
44
45
|
|
45
46
|
begin
|
46
|
-
|
47
|
-
|
47
|
+
Timeout::timeout(@timeout) {
|
48
|
+
@sock = Socket.tcp(@ip, @port, connect_timeout: @timeout)
|
49
|
+
@raw_server_banner = @sock.gets
|
50
|
+
}
|
48
51
|
rescue SocketError => e
|
49
52
|
@error = SSHScan::Error::ConnectionRefused.new(e.message)
|
50
53
|
@sock = nil
|
51
|
-
rescue Errno::ETIMEDOUT
|
54
|
+
rescue Errno::ETIMEDOUT,
|
55
|
+
Timeout::Error => e
|
52
56
|
@error = SSHScan::Error::ConnectTimeout.new(e.message)
|
53
57
|
@sock = nil
|
54
58
|
rescue Errno::ECONNREFUSED => e
|
@@ -94,23 +98,28 @@ module SSHScan
|
|
94
98
|
return nil
|
95
99
|
end
|
96
100
|
|
97
|
-
|
98
|
-
@sock.write(kex_init_raw)
|
99
|
-
resp = @sock.read(4)
|
101
|
+
kex_exchange_init = nil
|
100
102
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
)
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
103
|
+
begin
|
104
|
+
Timeout::timeout(@timeout) {
|
105
|
+
@sock.write(kex_init_raw)
|
106
|
+
resp = @sock.read(4)
|
107
|
+
|
108
|
+
if resp.nil?
|
109
|
+
@error = SSHScan::Error::NoKexResponse.new(
|
110
|
+
"service did not respond to our kex init request"
|
111
|
+
)
|
112
|
+
@sock = nil
|
113
|
+
return nil
|
114
|
+
end
|
115
|
+
|
116
|
+
resp += @sock.read(resp.unpack("N").first)
|
117
|
+
@sock.close
|
111
118
|
|
112
|
-
|
113
|
-
|
119
|
+
kex_exchange_init = SSHScan::KeyExchangeInit.read(resp)
|
120
|
+
}
|
121
|
+
rescue Errno::ETIMEDOUT,
|
122
|
+
Timeout::Error => e
|
114
123
|
@error = SSHScan::Error::ConnectTimeout.new(e.message)
|
115
124
|
@sock = nil
|
116
125
|
return nil
|
data/lib/ssh_scan/scan_engine.rb
CHANGED
@@ -107,7 +107,7 @@ module SSHScan
|
|
107
107
|
net_ssh_session.close
|
108
108
|
rescue Net::SSH::ConnectionTimeout => e
|
109
109
|
result.error = SSHScan::Error::ConnectTimeout.new(e.message)
|
110
|
-
rescue Net::SSH::Disconnect => e
|
110
|
+
rescue Net::SSH::Disconnect, Errno::ECONNRESET => e
|
111
111
|
result.error = SSHScan::Error::Disconnected.new(e.message)
|
112
112
|
rescue Net::SSH::Exception => e
|
113
113
|
if e.to_s.match(/could not settle on/)
|
data/lib/ssh_scan/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ssh_scan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Claudius
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2017-
|
15
|
+
date: 2017-08-25 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: bindata
|