Class: SSHScan::OS::Ubuntu
- Inherits:
-
Object
- Object
- SSHScan::OS::Ubuntu
- Defined in:
- lib/ssh_scan/os/ubuntu.rb
Defined Under Namespace
Classes: Version
Constant Summary collapse
- FINGERPRINTS =
Obtained from scraping ChangeLog on Launchpad
{ "4.10" => [ "3.8.1p1-11ubuntu3.3", "3.8.1p1-11ubuntu3.2", "3.8.1p1-11ubuntu3" ], "5.04" => [ "3.9p1-1ubuntu2.3", "3.9p1-1ubuntu2.2", "3.9p1-1ubuntu2.1", "3.9p1-1ubuntu2" ], "5.10" => [ "4.1p1-7ubuntu4.2", "4.1p1-7ubuntu4.1", "4.1p1-7ubuntu4" ], "6.04" => [ "4.2p1-7ubuntu3.5", "4.2p1-7ubuntu3.4", "4.2p1-7ubuntu3.3", "4.2p1-7ubuntu3.2", "4.2p1-7ubuntu3.1", "4.2p1-7ubuntu3", "4.2p1-7ubuntu2", "4.2p1-7ubuntu1", "4.2p1-5ubuntu2", "4.2p1-5ubuntu1" ], "6.10" => [ "4.3p2-5ubuntu1.2", "4.3p2-5ubuntu1.1", "4.3p2-5ubuntu1", "4.3p2-4ubuntu1", "4.3p2-2ubuntu5", "4.3p2-2ubuntu4", "4.3p2-2ubuntu3", "4.3p2-2ubuntu2", "4.3p2-2ubuntu1" ], "7.04" => [], "7.10" => [ "4.6p1-5ubuntu0.6", "4.6p1-5ubuntu0.5", "4.6p1-5ubuntu0.4", "4.6p1-5ubuntu0.3", "4.6p1-5ubuntu0.2", "4.6p1-5ubuntu0.1", "4.6p1-5build1", "4.3p2-10ubuntu1" ], "8.04" => [ "4.7p1-8ubuntu3", "4.7p1-8ubuntu2", "4.7p1-8ubuntu1.2", "4.7p1-8ubuntu1.1", "4.7p1-8ubuntu1", "4.7p1-7ubuntu1", "4.7p1-6ubuntu1", "4.7p1-5ubuntu1", "4.7p1-4ubuntu1" ], "8.10" => [ "5.1p1-3ubuntu1", "5.1p1-1ubuntu2", "5.1p1-1ubuntu1", "4.7p1-12ubuntu4", "4.7p1-12ubuntu3", "4.7p1-12ubuntu2", "4.7p1-12ubuntu1", "4.7p1-10ubuntu1", "4.7p1-9ubuntu1" ], "9.04" => [ "5.1p1-5ubuntu1", "5.1p1-4ubuntu1" ], "9.10" => [ "5.1p1-6ubuntu2", "5.1p1-6ubuntu1", "5.1p1-5ubuntu2" ], "10.04" => [ "5.3p1-3ubuntu7.1", "5.3p1-3ubuntu7", "5.3p1-3ubuntu6", "5.3p1-3ubuntu5", "5.3p1-3ubuntu4", "5.3p1-3ubuntu3", "5.3p1-3ubuntu2", "5.3p1-3ubuntu1", "5.3p1-1ubuntu2", "5.3p1-1ubuntu1", "5.2p1-2ubuntu1", "5.2p1-1ubuntu1", "5.1p1-8ubuntu2", "5.1p1-8ubuntu1" ], "10.10" => [ "5.5p1-4ubuntu6", "5.5p1-4ubuntu5", "5.5p1-4ubuntu4", "5.5p1-4ubuntu3", "5.5p1-4ubuntu2", "5.5p1-4ubuntu1", "5.5p1-3ubuntu1" ], "11.04" => [ "5.8p1-1ubuntu3", "5.8p1-1ubuntu2", "5.8p1-1ubuntu1", "5.7p1-2ubuntu1", "5.7p1-1ubuntu1", "5.6p1-2ubuntu4", "5.6p1-2ubuntu3", "5.6p1-2ubuntu2", "5.6p1-2ubuntu1", "5.6p1-1ubuntu1" ], "11.10" => [ "5.8p1-7ubuntu1", "5.8p1-4ubuntu2", "5.8p1-4ubuntu1" ], "12.04" => [ "5.9p1-5ubuntu1.10", "5.9p1-5ubuntu1.9", "5.9p1-5ubuntu1.8", "5.9p1-5ubuntu1.7", "5.9p1-5ubuntu1.6", "5.9p1-5ubuntu1.4", "5.9p1-5ubuntu1.3", "5.9p1-5ubuntu1.2", "5.9p1-5ubuntu1.1", "5.9p1-5ubuntu1", "5.9p1-4ubuntu1", "5.9p1-3ubuntu1", "5.9p1-2ubuntu2", "5.9p1-2ubuntu1", "5.9p1-1ubuntu1" ], "12.10" => [ "6.0p1-3ubuntu1.2", "6.0p1-3ubuntu1.1", "6.0p1-3ubuntu1", "6.0p1-2ubuntu1", "6.0p1-1ubuntu1" ], "13.04" => [ "6.1p1-1ubuntu1" ], "13.10" => [ "6.2p2-6ubuntu0.5", "6.2p2-6ubuntu0.4", "6.2p2-6ubuntu0.3", "6.2p2-6ubuntu0.2", "6.2p2-6ubuntu0.1" ], "14.04" => [ "6.6p1-2ubuntu2.8", "6.6p1-2ubuntu2.7", "6.6p1-2ubuntu2.6", "6.6p1-2ubuntu2.5", "6.6p1-2ubuntu2.4", "6.6p1-2ubuntu2.3", "6.6p1-2ubuntu2.2", "6.6p1-2ubuntu2", "6.6p1-2ubuntu1", "6.2p2-6ubuntu1", "6.6.1p1 Ubuntu-8" ], "14.10" => [ "6.6p1-5build1" ], "15.04" => [ "6.7p1-5ubuntu1.4", "6.7p1-5ubuntu1.3", "6.7p1-5ubuntu1.2", "6.7p1-5ubuntu1" ], "15.10" => [ "6.9p1-2ubuntu0.2", "6.9p1-2ubuntu0.1", "6.7p1-6ubuntu2", "6.7p1-6ubuntu1" ], "16.04" => [ "7.2p2-4ubuntu2.1", "7.2p2-4ubuntu2", "7.2p2-4ubuntu1" ], "16.10" => [] }
Instance Attribute Summary collapse
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Instance Method Summary collapse
- #common ⇒ Object
- #cpe ⇒ Object
-
#fingerprints ⇒ Hash<String, Array<String>>
Get the FINGERPRINTS constant hash, generated from the scraping script.
-
#initialize(banner) ⇒ Ubuntu
constructor
A new instance of Ubuntu.
- #ubuntu_version_guess ⇒ Object
Constructor Details
Instance Attribute Details
#version ⇒ Object (readonly)
Returns the value of attribute version.
4 5 6 |
# File 'lib/ssh_scan/os/ubuntu.rb', line 4 def version @version end |
Instance Method Details
#common ⇒ Object
216 217 218 |
# File 'lib/ssh_scan/os/ubuntu.rb', line 216 def common "ubuntu" end |
#cpe ⇒ Object
251 252 253 |
# File 'lib/ssh_scan/os/ubuntu.rb', line 251 def cpe "o:canonical:ubuntu" + (@version.to_s ? ":#{@version}" : "") end |
#fingerprints ⇒ Hash<String, Array<String>>
Get the FINGERPRINTS constant hash, generated from the scraping script.
224 225 226 |
# File 'lib/ssh_scan/os/ubuntu.rb', line 224 def fingerprints OS::Ubuntu::FINGERPRINTS end |
#ubuntu_version_guess ⇒ Object
228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'lib/ssh_scan/os/ubuntu.rb', line 228 def ubuntu_version_guess possible_versions = [] OS::Ubuntu::FINGERPRINTS.keys.each do |ubuntu_version| OS::Ubuntu::FINGERPRINTS[ubuntu_version].uniq.each do || openssh_ps, ubuntu_sig = .split("-") openssh_version = openssh_ps # If the version is like 6.6p1, deduce that if openssh_ps.include?("p") openssh_version = openssh_ps.split("p")[0] end if @banner.include?("OpenSSH_#{openssh_version}") && @banner.include?(ubuntu_sig) possible_versions << ubuntu_version end end end possible_versions.uniq! if possible_versions.any? return possible_versions.join("|") end return nil end |