Feature Request - Meterpreter download: Store Full Path and Display Download Status

Open
#7,103 1 comment 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
ruby
Domain
cli, security

Research direction

Start at the Meterpreter download command and review how its existing recursive (-r) option handles destination paths. Define the expected central download location, full target-path representation, special-character handling, and progress output; done means downloads preserve their source paths and show an updating byte count and percentage.

Written by the indexing model from the issue text.

Description

feature library meterpreter

*** Feature Request/Enhancement ***

Other tools (ex. Empire, CANVAS, others) when performing a file download from your shell, will automatically download the file to a central downloads directory and recreate the full path to the location of that file. This is very helpful since later you will always know where the file came from and if there are files with duplicate names across different directories or targets, there's no concern about overwriting when downloading. So for example one way this could work is if you issue a download for C:\windows\win.ini in a meterpreter session on RHOST 192.168.1.1, it would look as such:

meterpreter > pwd
C:\Windows
meterpreter > download win.ini
[*] downloading : win.ini
[#######################] 100% (387 of 387 bytes)
[*] downloaded : win.ini -> ~/.msf4/loot/downloads/192.168.1.1/C:/Windows/win.ini

If directory names on the target contain special characters, unicode, control characters, etc.. that would have to be accounted for so it can be written correctly to the msf host filesystem. The bar of hash marks and percentage shown above would increment acting as a status indicator of the percentage download and display an updating byte count downloaded out of the total.

I think this feature would greatly enhance the download function in Meterpreter and combined with the already existing recursive feature (-r), would really add value to that feature as well if you downloaded a large directory structure.

Dominant language
Ruby
Stars
39k
Forks
15k
Avg merge
5d 6h
Merged PRs (30d)
32

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rapid7/metasploit-framework

All issues in rapid7/metasploit-framework

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.