Class: SSHScan::Banner
- Inherits:
-
Object
- Object
- SSHScan::Banner
- Defined in:
- lib/ssh_scan/banner.rb
Class Method Summary collapse
-
.read(string) ⇒ SSHScan::Banner
Create Banner object based on target’s SSH banner.
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#initialize(string) ⇒ Banner
constructor
A new instance of Banner.
-
#os_guess ⇒ SSHScan::OS
Guess target’s OS (Ubuntu, CentOS …).
-
#ssh_lib_guess ⇒ SSHScan::SSHLib
Guess target’s SSH Library (OpenSSH, LibSSH …).
-
#ssh_version ⇒ String
Guess target’s SSH version.
- #to_s ⇒ Object
Constructor Details
#initialize(string) ⇒ Banner
Returns a new instance of Banner.
6 7 8 |
# File 'lib/ssh_scan/banner.rb', line 6 def initialize(string) @string = string end |
Class Method Details
.read(string) ⇒ SSHScan::Banner
Create SSHScan::Banner object based on target’s SSH banner.
15 16 17 |
# File 'lib/ssh_scan/banner.rb', line 15 def self.read(string) return SSHScan::Banner.new(string) end |
Instance Method Details
#==(other) ⇒ Object
103 104 105 |
# File 'lib/ssh_scan/banner.rb', line 103 def ==(other) self.to_s == other.to_s end |
#os_guess ⇒ SSHScan::OS
Guess target’s OS (Ubuntu, CentOS …). See OS for a list of OS(s) supported.
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/ssh_scan/banner.rb', line 74 def os_guess() case @string when /Ubuntu/i return SSHScan::OS::Ubuntu.new(@string) when /6.6p1-5build1/i # non-standard Ubuntu release return SSHScan::OS::Ubuntu.new(@string) when /CentOS/i return SSHScan::OS::CentOS.new when /RHEL|RedHat/i return SSHScan::OS::RedHat.new when /FreeBSD/i return SSHScan::OS::FreeBSD.new when /Debian/i return SSHScan::OS::Debian.new when /Windows|Microsoft/i return SSHScan::OS::Windows.new when /Cisco/i return SSHScan::OS::Cisco.new when /Raspbian/i return SSHScan::OS::Raspbian.new(@string) when /ROS/i return SSHScan::OS::ROS.new when /DOPRA/i return SSHScan::OS::DOPRA.new else return SSHScan::OS::Unknown.new end end |
#ssh_lib_guess ⇒ SSHScan::SSHLib
Guess target’s SSH Library (OpenSSH, LibSSH …). See SSHLib for a list of SSH libraries supported.
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 60 61 62 63 64 65 66 67 68 |
# File 'lib/ssh_scan/banner.rb', line 35 def ssh_lib_guess() case @string when /OpenSSH/i return SSHScan::SSHLib::OpenSSH.new(@string) when /LibSSH/i return SSHScan::SSHLib::LibSSH.new() when /ipssh/i return SSHScan::SSHLib::IpSsh.new(@string) when /Cisco/i return SSHScan::SSHLib::CiscoSSH.new() when /ROS/ return SSHScan::SSHLib::ROSSSH.new() when /DOPRASSH/i return SSHScan::SSHLib::DOPRASSH.new() when /cryptlib/i return SSHScan::SSHLib::Cryptlib.new() when /NOS-SSH/i return SSHScan::SSHLib::NosSSH.new(@string) when /pgp/i return SSHScan::SSHLib::PGP.new() when /ServerTech_SSH|Mocana SSH/i return SSHScan::SSHLib::SentrySSH.new() when /mpssh/i return SSHScan::SSHLib::Mpssh.new(@string) when /dropbear/i return SSHScan::SSHLib::Dropbear.new(@string) when /RomSShell/i return SSHScan::SSHLib::RomSShell.new(@string) when /Flowssh/i return SSHScan::SSHLib::FlowSsh.new(@string) else return SSHScan::SSHLib::Unknown.new() end end |
#ssh_version ⇒ String
Guess target’s SSH version.
23 24 25 26 27 28 29 |
# File 'lib/ssh_scan/banner.rb', line 23 def ssh_version() if match = @string.match(/SSH-(\d+[\.\d+]+)/) return match[1].to_f else return "unknown" end end |
#to_s ⇒ Object
107 108 109 |
# File 'lib/ssh_scan/banner.rb', line 107 def to_s @string end |