metasploit-framework/modules/auxiliary/scanner/x11/open_x11.rb

82 lines
1.8 KiB
Ruby
Raw Normal View History

##
# This module requires Metasploit: http://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
require 'msf/core'
2016-03-08 13:02:44 +00:00
class MetasploitModule < Msf::Auxiliary
2013-08-30 21:28:54 +00:00
include Msf::Exploit::Remote::Tcp
include Msf::Auxiliary::Scanner
include Msf::Auxiliary::Report
def initialize
super(
'Name' => 'X11 No-Auth Scanner',
'Description' => %q{
This module scans for X11 servers that allow anyone
to connect without authentication.
},
'Author' => ['tebo <tebodell[at]gmail.com>'],
'References' =>
[
['OSVDB', '309'],
2013-08-30 21:28:54 +00:00
['CVE', '1999-0526'],
],
'License' => MSF_LICENSE
)
register_options([
Opt::RPORT(6000)
],self.class)
end
def run_host(ip)
begin
connect
# X11.00 Null Auth Connect
sock.put("\x6c\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00")
response = sock.get_once
disconnect
if response
2013-08-30 21:28:54 +00:00
success = response[0,1].unpack('C')[0]
else
print_error("No response received due to a timeout")
return
2013-08-30 21:28:54 +00:00
end
if(success == 1)
vendor_len = response[24,2].unpack('v')[0]
vendor = response[40,vendor_len].unpack('A*')[0]
print_good("#{ip} Open X Server (#{vendor})")
# Add Report
2013-08-30 21:28:54 +00:00
report_note(
:host => ip,
:proto => 'tcp',
:sname => 'x11',
:port => rport,
:type => 'Open X Server',
:data => "Open X Server (#{vendor})"
)
elsif (success == 0)
print_error("#{ip} Access Denied")
2013-08-30 21:28:54 +00:00
else
# X can return a reason for auth failure but we don't really care for this
end
rescue ::Rex::ConnectionError
rescue ::Errno::EPIPE
end
end
end