Skip to content

Commit a577bef

Browse files
author
HD Moore
committed
Rework dirty cleanup to use skip_cleanup instead
1 parent e7ba6e8 commit a577bef

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

lib/msf/base/sessions/meterpreter.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,12 +252,13 @@ def reset_ui
252252
#
253253
# Terminates the session
254254
#
255-
def kill(dirty=false)
255+
def kill
256256
begin
257-
cleanup_meterpreter(dirty)
257+
cleanup_meterpreter
258258
self.sock.close if self.sock
259259
rescue ::Exception
260260
end
261+
# deregister will actually trigger another cleanup
261262
framework.sessions.deregister(self)
262263
end
263264

@@ -466,6 +467,7 @@ def create(param)
466467
attr_accessor :binary_suffix
467468
attr_accessor :console # :nodoc:
468469
attr_accessor :skip_ssl
470+
attr_accessor :skip_cleanup
469471
attr_accessor :target_id
470472

471473
protected

lib/msf/base/sessions/meterpreter_options.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ def on_session(session)
7676
end
7777

7878
# Terminate the session without cleanup if it did not validate
79-
session.kill(true) if not valid
79+
if not valid
80+
session.skip_cleanup = true
81+
session.kill
82+
end
8083

8184
}
8285

lib/rex/post/meterpreter/client.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,16 @@ def initialize(sock,opts={})
8484
#
8585
# Cleans up the meterpreter instance, terminating the dispatcher thread.
8686
#
87-
def cleanup_meterpreter(dirty)
88-
if not dirty
87+
def cleanup_meterpreter
88+
if not self.skip_cleanup
8989
ext.aliases.each_value do | extension |
9090
extension.cleanup if extension.respond_to?( 'cleanup' )
9191
end
9292
end
9393

9494
dispatcher_thread.kill if dispatcher_thread
9595

96-
if not dirty
96+
if not self.skip_cleanup
9797
core.shutdown rescue nil
9898
end
9999

0 commit comments

Comments
 (0)