38 lines
678 B
Ruby
38 lines
678 B
Ruby
|
#!/usr/bin/env ruby
|
||
|
|
||
|
##
|
||
|
# $Id: $
|
||
|
##
|
||
|
|
||
|
##
|
||
|
#
|
||
|
# RFB protocol support
|
||
|
#
|
||
|
# by Joshua J. Drake <jduck>
|
||
|
#
|
||
|
# Based on:
|
||
|
# vnc_auth_none contributed by Matteo Cantoni <goony[at]nothink.org>
|
||
|
# vnc_auth_login contributed by carstein <carstein.sec[at]gmail.com>
|
||
|
#
|
||
|
##
|
||
|
|
||
|
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
|
||
|
}
|