f124597a56
git-svn-id: file:///home/svn/framework3/trunk@5773 4d416f70-5f16-0410-b530-b9f4589650da
62 lines
912 B
Ruby
62 lines
912 B
Ruby
#!/usr/bin/env ruby
|
|
|
|
$:.unshift(File.join(File.dirname(__FILE__), '..', '..', '..'))
|
|
|
|
require 'test/unit'
|
|
require 'msf/core'
|
|
require 'msf/core/handler/reverse_tcp'
|
|
|
|
module Msf
|
|
|
|
class Handler::ReverseTcp::UnitTest < Test::Unit::TestCase
|
|
|
|
class Stub < Msf::Payload
|
|
include Msf::Handler::ReverseTcp
|
|
end
|
|
|
|
module Foo
|
|
def handle_connection(client)
|
|
self.success = 1
|
|
end
|
|
|
|
attr_accessor :success, :session
|
|
end
|
|
|
|
def test_handler
|
|
c = Class.new(Stub)
|
|
c.include(Foo)
|
|
|
|
h = c.new({})
|
|
|
|
begin
|
|
h.datastore['LPORT'] = 4444
|
|
|
|
h.setup_handler
|
|
h.start_handler
|
|
|
|
5.times {
|
|
t = Rex::Socket::Tcp.create(
|
|
'PeerHost' => "127.0.0.1",
|
|
'PeerPort' => 4444)
|
|
|
|
assert_not_nil(t)
|
|
|
|
begin
|
|
Rex::ThreadSafe.sleep(1)
|
|
|
|
assert_equal(1, h.success)
|
|
|
|
h.success = 0
|
|
ensure
|
|
t.close
|
|
end
|
|
}
|
|
ensure
|
|
h.stop_handler if (h)
|
|
h.cleanup_handler if (h)
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
end |