diff --git a/dev/meterpreter/metcli.rb b/dev/meterpreter/metcli.rb index aceb20361a..4a0ff29e57 100644 --- a/dev/meterpreter/metcli.rb +++ b/dev/meterpreter/metcli.rb @@ -1,3 +1,5 @@ +#!/usr/bin/ruby -I../../lib + require 'Rex/Post' netconf = false @@ -122,6 +124,8 @@ end if (dir) puts "Testing dir...\n\n" + puts "%WINDIR% is #{client.fs.file.expand_path('%WINDIR%')}" + puts "Getting contents of C:\\" client.fs.dir.foreach("C:\\") { |name| diff --git a/lib/rex/post/meterpreter/extensions/stdapi/fs/file.rb b/lib/rex/post/meterpreter/extensions/stdapi/fs/file.rb index 99de86e3d0..57c72b9a26 100644 --- a/lib/rex/post/meterpreter/extensions/stdapi/fs/file.rb +++ b/lib/rex/post/meterpreter/extensions/stdapi/fs/file.rb @@ -35,6 +35,17 @@ Separator = "\\" return $2 end + # Expands a file path + def File.expand_path(path) + request = Packet.create_request('stdapi_fs_file_expand_path') + + request.add_tlv(TLV_TYPE_FILE_PATH, path) + + response = client.send_request(request) + + return response.get_tlv_value(TLV_TYPE_FILE_PATH) + end + def File.stat(name) return client.fs.filestat.new(name) end