You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Net::SSH::KeyFactory permits loading keys using a passphrase.
The Framework SSH modules were implemented back when we had a fork
of net-ssh in our tree, and can now use functionality provided by
the upstream gem.
Update the ssh key login scanner to add a KEY_PASS datastore
OptString which is then passed to the KeyCollection class and used
in the updated :read_key method which now calls the KeyFactory to
read data and give us the appropriate String representation of the
key in the KeyCollection's cache.
A bit of cleanup performed as well, removing legacy code paths no
longer hit by the module. Shamelessly added self to authors, fair
amount of blood and sweat in the SSH subsystem over the years, hope
nobody objects.
Testing:
None yet
Copy file name to clipboardExpand all lines: modules/auxiliary/scanner/ssh/ssh_login_pubkey.rb
+8-85Lines changed: 8 additions & 85 deletions
Original file line number
Diff line number
Diff line change
@@ -28,22 +28,19 @@ def initialize
28
28
this module will record successful logins and hosts so you can
29
29
track your access.
30
30
31
-
Note that password-protected key files will not function with this
32
-
module -- it is designed specifically for unencrypted (passwordless)
33
-
keys.
34
-
35
-
Key files may be a single private (unencrypted) key, or several private
36
-
keys concatenated together as an ASCII text file. Non-key data should be
37
-
silently ignored.
31
+
Key files may be a single private key, or several private keys in a single
32
+
directory. Only a single passphrase is supported however, so it must either
33
+
be shared between subject keys or only belong to a single one.
38
34
},
39
-
'Author'=>['todb'],
35
+
'Author'=>['todb','RageLtMan'],
40
36
'License'=>MSF_LICENSE
41
37
)
42
38
43
39
register_options(
44
40
[
45
41
Opt::RPORT(22),
46
42
OptPath.new('KEY_PATH',[true,'Filename or directory of cleartext private keys. Filenames beginning with a dot, or ending in ".pub" will be skipped.']),
43
+
OptString.new('KEY_PASS',[false,'Passphrase for SSH private key(s)']),
47
44
],self.class
48
45
)
49
46
@@ -63,10 +60,6 @@ module -- it is designed specifically for unencrypted (passwordless)
0 commit comments