binding the meterpreter console

git-svn-id: file:///home/svn/framework3/trunk@5013 4d416f70-5f16-0410-b530-b9f4589650da
unstable
fab 2007-07-02 19:25:42 +00:00
parent 664b15237b
commit 9a8a3096b4
2 changed files with 26 additions and 10 deletions

View File

@ -12,7 +12,14 @@ module Msf
class Shell < Msf::Ui::Gtk2::SkeletonConsole
def initialize(iter)
client = iter[3]
super(iter)
if (client.type == "meterpreter")
# TODO: use the API instead writing into the pipe
send_cmd("execute -f cmd.exe -i -H")
end
end
end # Console::Shell
@ -32,7 +39,7 @@ module Msf
super(iter)
# TODO: use the API instead writing into the pipe
send_cmd("execute -f cmd.exe -i -H")
send_cmd("help")
end
end # Console::Meterpreter

View File

@ -115,12 +115,7 @@ module Msf
# Open the session with the selected iter
#
def open_session(iter)
session = iter[O_SESSION]
if (session.type == "meterpreter")
Msf::Ui::Gtk2::Console::Meterpreter.new(iter)
else
Msf::Ui::Gtk2::Console::Shell.new(iter)
end
Msf::Ui::Gtk2::Console::Shell.new(iter)
end
#
@ -157,7 +152,7 @@ module Msf
session_item_shell = Gtk::ImageMenuItem.new("Interact Session")
session_image_shell = Gtk::Image.new
session_image_shell.set(Gtk::Stock::EXECUTE, Gtk::IconSize::MENU)
session_image_shell.set(Gtk::Stock::CONNECT, Gtk::IconSize::MENU)
session_item_shell.set_image(session_image_shell)
menu_session.append(session_item_shell)
@ -165,6 +160,13 @@ module Msf
meterpreter_separator = Gtk::SeparatorMenuItem.new
menu_session.append(meterpreter_separator)
# Meterpreter shell
meterpreter_item_shell = Gtk::ImageMenuItem.new("Meterpreter Shell")
meterpreter_image_shell = Gtk::Image.new
meterpreter_image_shell.set(Gtk::Stock::EXECUTE, Gtk::IconSize::MENU)
meterpreter_item_shell.set_image(meterpreter_image_shell)
menu_session.append(meterpreter_item_shell)
# sdapi/process
meterpreter_proc_item_shell = Gtk::ImageMenuItem.new("Process")
meterpreter_proc_image_shell = Gtk::Image.new
@ -179,14 +181,21 @@ module Msf
meterpreter_fs_item_shell.set_image(meterpreter_fs_image_shell)
menu_session.append(meterpreter_fs_item_shell)
# Process signals
# Meterpreter shell signal
meterpreter_item_shell.signal_connect('activate') do |item|
if current = @selection.selected
Msf::Ui::Gtk2::Console::Meterpreter.new(current)
end
end
# Process signal
meterpreter_proc_item_shell.signal_connect('activate') do |item|
if current = @selection.selected
Msf::Ui::Gtk2::Stdapi::Sys::Ps.new(current[O_SESSION])
end
end
# Fs signals
# Fs signal
meterpreter_fs_item_shell.signal_connect('activate') do |item|
if current = @selection.selected
Msf::Ui::Gtk2::Stdapi::Fs.new(current[O_SESSION])