class SSHScan::Banner
Public Class Methods
new(string)
click to toggle source
# File lib/ssh_scan/banner.rb, line 6 def initialize(string) @string = string end
read(string)
click to toggle source
Create {SSHScan::Banner} object based on target's SSH banner. @param string [String] String
from which the banner should be
constructed.
@return [SSHScan::Banner] {SSHScan::Banner} object
constructed from string.
# File lib/ssh_scan/banner.rb, line 15 def self.read(string) return SSHScan::Banner.new(string) end
Public Instance Methods
==(other)
click to toggle source
# File lib/ssh_scan/banner.rb, line 103 def ==(other) self.to_s == other.to_s end
os_guess()
click to toggle source
Guess target's OS
(Ubuntu, CentOS …). See {SSHScan::OS} for a list of OS(s) supported. @return [SSHScan::OS] Guessed {SSHScan::OS} instance,
otherwise {SSHScan::OS::Unknown} instance.
# 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()
click to toggle source
Guess target's SSH Library (OpenSSH, LibSSH …). See {SSHScan::SSHLib} for a list of SSH libraries supported. @return [SSHScan::SSHLib] Guessed {SSHScan::SSHLib} instance,
otherwise {SSHScan::SSHLib::Unknown} instance.
# 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()
click to toggle source
Guess target's SSH version. @return [String] If SSH version string looks like “SSH-1.81”
or "SSH-number" then return the number, else return "unknown"
# 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()
click to toggle source
# File lib/ssh_scan/banner.rb, line 107 def to_s @string end