diff --git a/lib/rex/post/meterpreter/client.rb b/lib/rex/post/meterpreter/client.rb index c8854dcbf1..e17302e9d7 100644 --- a/lib/rex/post/meterpreter/client.rb +++ b/lib/rex/post/meterpreter/client.rb @@ -98,7 +98,7 @@ class Client pivot.pivoted_session.shutdown_passive_dispatcher end - if not self.skip_cleanup + unless self.skip_cleanup ext.aliases.each_value do | extension | extension.cleanup if extension.respond_to?( 'cleanup' ) end @@ -106,7 +106,7 @@ class Client dispatcher_thread.kill if dispatcher_thread - if not self.skip_cleanup + unless self.skip_cleanup core.shutdown rescue nil end diff --git a/lib/rex/post/meterpreter/pivot.rb b/lib/rex/post/meterpreter/pivot.rb index 7bdb79ed33..82814c8ce5 100644 --- a/lib/rex/post/meterpreter/pivot.rb +++ b/lib/rex/post/meterpreter/pivot.rb @@ -118,8 +118,8 @@ class Pivot stage = stager.stage_payload(stage_opts) url = "pipe://#{opts[:pipe_host]}/#{opts[:pipe_name]}" - stage = "#{opts[:arch]}/#{opts[:platform]}" - pivot_listener = PivotListener.new(::Msf::Sessions::Meterpreter_x86_Win, url, stage) + stage_config = "#{opts[:arch]}/#{opts[:platform]}" + pivot_listener = PivotListener.new(::Msf::Sessions::Meterpreter_x86_Win, url, stage_config) request.add_tlv(TLV_TYPE_PIVOT_STAGE_DATA, stage) request.add_tlv(TLV_TYPE_PIVOT_STAGE_DATA_SIZE, stage.length) diff --git a/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb b/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb index 8850815712..054ead9fa6 100644 --- a/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb +++ b/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb @@ -202,16 +202,20 @@ class Console::CommandDispatcher::Core Pivot.remove_listener(client, listener_id) print_good("Successfully removed pivot: #{opts[:guid]}") when 'list', 'show', 'print' - tbl = Rex::Text::Table.new( - 'Header' => 'Currently active pivot listeners', - 'Indent' => 4, - 'Columns' => ['Id', 'URL', 'Stage']) + if client.pivot_listeners.length > 0 + tbl = Rex::Text::Table.new( + 'Header' => 'Currently active pivot listeners', + 'Indent' => 4, + 'Columns' => ['Id', 'URL', 'Stage']) - client.pivot_listeners.each do |k, v| - tbl << v.to_row + client.pivot_listeners.each do |k, v| + tbl << v.to_row + end + print_line + print_line(tbl.to_s) + else + print_status('There are no active pivot listeners') end - print_line - print_line(tbl.to_s) when 'add' unless opts[:type] print_error('Pivot type must be specified (-t)')