diff --git a/modules/auxiliary/scanner/ssh/ssh_version.rb b/modules/auxiliary/scanner/ssh/ssh_version.rb new file mode 100644 index 0000000000..13e0dd32b6 --- /dev/null +++ b/modules/auxiliary/scanner/ssh/ssh_version.rb @@ -0,0 +1,56 @@ +## +# $Id$ +## + +## +# This file is part of the Metasploit Framework and may be subject to +# redistribution and commercial restrictions. Please see the Metasploit +# Framework web site for more information on licensing and terms of use. +# http://metasploit.com/framework/ +## + +require 'msf/core' + + +class Metasploit3 < Msf::Auxiliary + + include Msf::Exploit::Remote::Tcp + include Msf::Auxiliary::Scanner + include Msf::Auxiliary::Report + + def initialize + super( + 'Name' => 'SSH Version Scannner', + 'Version' => '$Revision$', + 'Description' => 'Detect SSH Version.', + 'References' => + [ + [ 'URL', 'http://en.wikipedia.org/wiki/SecureShell' ], + ], + 'Author' => [ 'Daniel van Eeden ' ], + 'License' => MSF_LICENSE + ) + + register_options( + [ + Opt::RPORT(22), + ], self.class) + end + + def run_host(target_host) + + connect + + ver = sock.get_once(50,1) + ver,msg = (ver.split(/(\n|\r)/)) + + if (ver =~ /SSH/) + print_status("#{target_host}:#{rport}, SSH server version: #{ver}") + report_service(:host => rhost, :port => rport, :name => "ssh") + else + print_status("#{target_host}:#{rport}, SSH server version detection failed!") + end + + disconnect + end +end