#!/usr/bin/env ruby # -*- coding: binary -*- $:.unshift(File.join(File.dirname(__FILE__), '..', '..')) ## # $Id: $ ## ## # # RFB protocol support # # by Joshua J. Drake # # Based on: # vnc_auth_none contributed by Matteo Cantoni # vnc_auth_login contributed by carstein # ## require 'rex/socket' require 'rex/proto/rfb' sd = Rex::Socket::Tcp.create('PeerHost' => ENV["VNCHOST"], 'PeerPort' => Rex::Proto::RFB::DefaultPort) v = Rex::Proto::RFB::Client.new(sd) if not v.connect('password') $stderr.puts v.error exit(1) end loop { sret = select([sd],nil,nil,10) puts sret.inspect if sret and sret[0].include? sd buf = sd.sysread(8192) puts "read #{buf.length} bytes: #{buf.inspect}" end }