Skip to content

Commit da23432

Browse files
committed
Update cleanup method to check CWD
1 parent e60aeca commit da23432

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

lib/msf/core/exploit/file_dropper.rb

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,19 @@ def on_new_session(session)
6161

6262
@dropped_files.delete_if do |file|
6363
exists_before = file_dropper_exist?(session, file)
64+
6465
if file_dropper_delete_file(session, file)
6566
file_dropper_deleted?(session, file, exists_before)
6667
end
6768
end
6869

6970
@dropped_dirs.delete_if do |dir|
71+
if file_dropper_check_cwd?(session, dir)
72+
print_warning("Attempting to delete working directory #{dir}")
73+
end
74+
7075
exists_before = file_dropper_exist?(session, dir)
76+
7177
if file_dropper_delete_dir(session, dir)
7278
file_dropper_deleted?(session, dir, exists_before)
7379
end
@@ -110,6 +116,10 @@ def cleanup
110116
# Check if dir_rm method is available (local exploit, mixin support, module support)
111117
if respond_to?(:dir_rm)
112118
@dropped_dirs.delete_if do |dir|
119+
if respond_to?(:pwd) && pwd.include?(dir)
120+
print_warning("Attempting to delete working directory #{dir}")
121+
end
122+
113123
begin
114124
dir_rm(dir)
115125
rescue ::Exception => e
@@ -201,10 +211,6 @@ def file_dropper_delete_file(session, file)
201211
# @param [String] dir The directory to delete
202212
# @return [Boolean] True if the delete command has been executed in the remote machine, otherwise false.
203213
def file_dropper_delete_dir(session, dir)
204-
if file_dropper_check_cwd?(session, dir)
205-
print_warning("Attempting to delete working directory #{dir}")
206-
end
207-
208214
win_dir = file_dropper_win_path(dir)
209215

210216
if session.type == 'meterpreter'
@@ -264,9 +270,9 @@ def file_dropper_check_cwd?(session, path)
264270
else
265271
pwd =
266272
if session.platform == 'windows'
267-
session.shell_command_token('echo %cd%').strip
273+
session.shell_command_token('echo %cd%')
268274
else
269-
session.shell_command_token('pwd').strip
275+
session.shell_command_token('pwd')
270276
end
271277

272278
# Check for subdirectories and relative paths

0 commit comments

Comments
 (0)