Rapid7 Vulnerability & Exploit Database

Vagrant Synced Folder Vagrantfile Breakout

Back to Search

Vagrant Synced Folder Vagrantfile Breakout

Disclosed
01/19/2011
Created
10/27/2022

Description

This module exploits a default Vagrant synced folder (shared folder) to append a Ruby payload to the Vagrant project Vagrantfile config file. By default, unless a Vagrant project explicitly disables shared folders, Vagrant mounts the project directory on the host as a writable 'vagrant' directory on the guest virtual machine. This directory includes the project Vagrantfile configuration file. Ruby code within the Vagrantfile is loaded and executed when a user runs any vagrant command from the project directory on the host, leading to execution of Ruby code on the host.

Author(s)

  • HashiCorp
  • bcoles <bcoles@gmail.com>

Platform

Ruby

Architectures

x86, x86_64, x64, mips, mipsle, mipsbe, mips64, mips64le, ppc, ppce500v2, ppc64, ppc64le, cbea, cbea64, sparc, sparc64, armle, armbe, aarch64, cmd, php, tty, java, ruby, dalvik, python, nodejs, firefox, zarch, r, riscv32be, riscv32le, riscv64be, riscv64le, loongarch64

Development

Module Options

To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':

msf > use exploit/multi/local/vagrant_synced_folder_vagrantfile_breakout
msf exploit(vagrant_synced_folder_vagrantfile_breakout) > show targets
    ...targets...
msf exploit(vagrant_synced_folder_vagrantfile_breakout) > set TARGET < target-id >
msf exploit(vagrant_synced_folder_vagrantfile_breakout) > show options
    ...show and set options...
msf exploit(vagrant_synced_folder_vagrantfile_breakout) > exploit

Time is precious, so I don’t want to do something manually that I can automate. Leveraging the Metasploit Framework when automating any task keeps us from having to re-create the wheel as we can use the existing libraries and focus our efforts where it matters.

– Jim O’Gorman | President, Offensive Security

;