ProFTPD mod_copy Information Disclosure - Nessus

Critical   Plugin ID: 84215

This page contains detailed information about the ProFTPD mod_copy Information Disclosure Nessus plugin including available exploits and PoCs found on GitHub, in Metasploit or Exploit-DB for verifying of this vulnerability.

Plugin Overview


ID: 84215
Name: ProFTPD mod_copy Information Disclosure
Filename: proftpd_1_3_5_info_disc.nasl
Vulnerability Published: 2015-04-07
This Plugin Published: 2015-06-16
Last Modification Time: 2020-03-27
Plugin Version: 1.10
Plugin Type: remote
Plugin Family: FTP
Dependencies: ftp_anonymous.nasl, ftpserver_detect_type_nd_version.nasl
Required KB Items [?]: ftp/proftpd

Vulnerability Information


Severity: Critical
Vulnerability Published: 2015-04-07
Patch Published: 2015-04-07
CVE [?]: CVE-2015-3306
CPE [?]: cpe:/a:proftpd:proftpd

Synopsis

The remote host is running a ProFTPD module that is affected by an information disclosure vulnerability.

Description

The remote host is running a version of ProFTPD that is affected by an information disclosure vulnerability in the mod_copy module due to the SITE CPFR and SITE CPTO commands being available to unauthenticated clients. An unauthenticated, remote attacker can exploit this flaw to read and write to arbitrary files on any web accessible path on the host.

Solution

Upgrade to ProFTPD 1.3.5a / 1.3.6rc1 or later.

Public Exploits


Target Network Port(s): 21
Target Asset(s): Services/ftp
Exploit Available: True (Metasploit Framework, Exploit-DB, GitHub, Immunity Canvas)
Exploit Ease: Exploits are available

Here's the list of publicly known exploits and PoCs for verifying the ProFTPD mod_copy Information Disclosure vulnerability:

  1. Metasploit: exploit/unix/ftp/proftpd_modcopy_exec
    [ProFTPD 1.3.5 Mod_Copy Command Execution]
  2. Exploit-DB: exploits/linux/remote/36742.txt
    [EDB-36742: ProFTPd 1.3.5 - File Copy]
  3. Exploit-DB: exploits/linux/remote/36803.py
    [EDB-36803: ProFTPd 1.3.5 - 'mod_copy' Remote Command Execution]
  4. Exploit-DB: exploits/linux/remote/37262.rb
    [EDB-37262: ProFTPd 1.3.5 - 'mod_copy' Command Execution (Metasploit)]
  5. Exploit-DB: exploits/linux/remote/49908.py
    [EDB-49908: ProFTPd 1.3.5 - 'mod_copy' Remote Command Execution (2)]
  6. GitHub: https://github.com/7unn3l/CVE-2015-3306-PoC
    [CVE-2015-3306: PoC Exploit for CVE-2015-3306]
  7. GitHub: https://github.com/El-Palomo/JOY
    [CVE-2015-3306]
  8. GitHub: https://github.com/Jean-Francois-C/Boot2root-CTFs-Writeups
    [CVE-2015-3306]
  9. GitHub: https://github.com/NCSU-DANCE-Research-Group/CDL
    [CVE-2015-3306]
  10. GitHub: https://github.com/cd6629/CVE-2015-3306-Python-PoC
    [CVE-2015-3306: Converted with tweaks from a metasploit module as an exercise for OSCP studying and ...]
  11. GitHub: https://github.com/cdedmondson/Modified-CVE-2015-3306-Exploit
    [CVE-2015-3306]
  12. GitHub: https://github.com/chcx/cpx_proftpd
    [CVE-2015-3306: Tool for exploit CVE-2015-3306]
  13. GitHub: https://github.com/davidtavarez/CVE-2015-3306
    [CVE-2015-3306: ProFTPd 1.3.5 - File Copy]
  14. GitHub: https://github.com/jptr218/proftpd_bypass
    [CVE-2015-3306: An implementation of CVE-2015-3306]
  15. GitHub: https://github.com/m4udSec/ProFTPD_CVE-2015-3306
    [CVE-2015-3306]
  16. GitHub: https://github.com/nootropics/propane
    [CVE-2015-3306: Exploits the arbitrary file write bug in proftpd (CVE-2015-3306) attempts code ...]
  17. GitHub: https://github.com/t0kx/exploit-CVE-2015-3306
    [CVE-2015-3306: ProFTPd 1.3.5 - (mod_copy) Remote Command Execution exploit and vulnerable container ...]
  18. GitHub: https://github.com/vshaliii/Funbox2-rookie
    [CVE-2015-3306]
  19. GitHub: https://github.com/waqeen/cyber_security21
    [CVE-2015-3306]
  20. GitHub: https://www.exploit-db.com/exploits/36803/
    [CVE-2015-3306]
  21. GitHub: https://github.com/cved-sources/cve-2015-3306
    [CVE-2015-3306: Cve-2015-3306]
  22. GitHub: https://github.com/hackarada/cve-2015-3306
    [CVE-2015-3306: Cve-2015-3306 docker image]
  23. Immunity Canvas: CANVAS

Before running any exploit against any system, make sure you are authorized by the owner of the target system(s) to perform such activity. In any other case, this would be considered as an illegal activity.

WARNING: Beware of using unverified exploits from sources such as GitHub or Exploit-DB. These exploits and PoCs could contain malware. For more information, see how to use exploits safely.

Risk Information


CVSS Score Source [?]: CVE-2015-3306
CVSS V2 Vector: AV:N/AC:L/Au:N/C:C/I:C/A:C/E:F/RL:OF/RC:C
CVSS Base Score:10.0 (High)
Impact Subscore:10.0
Exploitability Subscore:10.0
CVSS Temporal Score:8.3 (High)
CVSS Environmental Score:NA (None)
Modified Impact Subscore:NA
Overall CVSS Score:8.3 (High)
CVSS V3 Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:F/RL:O/RC:C
CVSS Base Score:9.8 (Critical)
Impact Subscore:5.9
Exploitability Subscore:3.9
CVSS Temporal Score:9.1 (Critical)
CVSS Environmental Score:NA (None)
Modified Impact Subscore:NA
Overall CVSS Score:9.1 (Critical)

Go back to menu.

Plugin Source


This is the proftpd_1_3_5_info_disc.nasl nessus plugin source code. This script is Copyright (C) 2015-2020 and is owned by Tenable, Inc. or an Affiliate thereof.

#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(84215);
  script_version("1.10");
  script_set_attribute(attribute:"plugin_modification_date", value:"2020/03/27");

  script_cve_id("CVE-2015-3306");
  script_bugtraq_id(74238);
  script_xref(name:"EDB-ID", value:"36742");
  script_xref(name:"EDB-ID", value:"36803");

  script_name(english:"ProFTPD mod_copy Information Disclosure");
  script_summary(english:"Checks if SITE CPFR command is available without authentication.");

  script_set_attribute(attribute:"synopsis", value:
"The remote host is running a ProFTPD module that is affected by an
information disclosure vulnerability.");
  script_set_attribute(attribute:"description", value:
"The remote host is running a version of ProFTPD that is affected by an
information disclosure vulnerability in the mod_copy module due to the
SITE CPFR and SITE CPTO commands being available to unauthenticated
clients. An unauthenticated, remote attacker can exploit this flaw to
read and write to arbitrary files on any web accessible path on the
host.");
  script_set_attribute(attribute:"see_also", value:"http://bugs.proftpd.org/show_bug.cgi?id=4169");
  script_set_attribute(attribute:"solution", value:
"Upgrade to ProFTPD 1.3.5a / 1.3.6rc1 or later.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:F/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2015-3306");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
  script_set_attribute(attribute:"metasploit_name", value:'ProFTPD 1.3.5 Mod_Copy Command Execution');
  script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
  script_set_attribute(attribute:"exploit_framework_canvas", value:"true");
  script_set_attribute(attribute:"canvas_package", value:'CANVAS');

  script_set_attribute(attribute:"vuln_publication_date", value:"2015/04/07");
  script_set_attribute(attribute:"patch_publication_date", value:"2015/04/07");
  script_set_attribute(attribute:"plugin_publication_date", value:"2015/06/16");

  script_set_attribute(attribute:"plugin_type", value:"remote");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:proftpd:proftpd");
  script_end_attributes();

  script_category(ACT_ATTACK);
  script_copyright(english:"This script is Copyright (C) 2015-2020 and is owned by Tenable, Inc. or an Affiliate thereof.");
  script_family(english:"FTP");

  script_dependencies("ftpserver_detect_type_nd_version.nasl", "ftp_anonymous.nasl");
  script_require_keys("ftp/proftpd");
  script_require_ports("Services/ftp", 21);

  exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("ftp_func.inc");
include("misc_func.inc");

get_kb_item_or_exit("ftp/proftpd");

# Connect to the FTP server
port = get_ftp_port(default: 21, broken:TRUE);

soc = open_sock_tcp(port);
if (!soc) audit(AUDIT_SOCK_FAIL, port);

ftp_debug(str:"custom banner");
r = ftp_recv_line(socket:soc);
if (isnull(r)) audit(AUDIT_RESP_NOT, port);

c = 'SITE CPFR /etc/passwd \r\n';
send(socket:soc, data:c);
b = recv(socket:soc, length:3);

ftp_close(socket: soc);

if(b == "350")
{
  if (report_verbosity > 0) security_hole(port:port, extra:'\nNessus received a 350 response from sending the following unauthenticated request :\n\nSITE CPFR /etc/passwd\n');
  else security_hole(port);
}
else audit(AUDIT_LISTEN_NOT_VULN, 'ProFTPD', port);

The latest version of this script can be found in these locations depending on your platform:

  • Linux / Unix:
    /opt/nessus/lib/nessus/plugins/proftpd_1_3_5_info_disc.nasl
  • Windows:
    C:\ProgramData\Tenable\Nessus\nessus\plugins\proftpd_1_3_5_info_disc.nasl
  • Mac OS X:
    /Library/Nessus/run/lib/nessus/plugins/proftpd_1_3_5_info_disc.nasl

Go back to menu.

How to Run


Here is how to run the ProFTPD mod_copy Information Disclosure as a standalone plugin via the Nessus web user interface (https://localhost:8834/):

  1. Click to start a New Scan.
  2. Select Advanced Scan.
  3. Navigate to the Plugins tab.
  4. On the top right corner click to Disable All plugins.
  5. On the left side table select FTP plugin family.
  6. On the right side table select ProFTPD mod_copy Information Disclosure plugin ID 84215.
  7. Specify the target on the Settings tab and click to Save the scan.
  8. Run the scan.

Here are a few examples of how to run the plugin in the command line. Note that the examples below demonstrate the usage on the Linux / Unix platform.

Basic usage:

/opt/nessus/bin/nasl proftpd_1_3_5_info_disc.nasl -t <IP/HOST>

Run the plugin with audit trail message on the console:

/opt/nessus/bin/nasl -a proftpd_1_3_5_info_disc.nasl -t <IP/HOST>

Run the plugin with trace script execution written to the console (useful for debugging):

/opt/nessus/bin/nasl -T - proftpd_1_3_5_info_disc.nasl -t <IP/HOST>

Run the plugin with using a state file for the target and updating it (useful for running multiple plugins on the target):

/opt/nessus/bin/nasl -K /tmp/state proftpd_1_3_5_info_disc.nasl -t <IP/HOST>

Go back to menu.

References


BID | SecurityFocus Bugtraq ID: See also: Similar and related Nessus plugins:
  • 83546 - Debian DSA-3263-1 : proftpd-dfsg - security update
  • 83198 - Fedora 20 : proftpd-1.3.4e-3.fc20 (2015-6401)
  • 83323 - Fedora 21 : proftpd-1.3.5-5.fc21 (2015-7086)
  • 83224 - Fedora 22 : proftpd-1.3.5-6.fc22 (2015-7164)
  • 83752 - FreeBSD : proftpd -- arbitrary code execution vulnerability with chroot (d0034536-ff24-11e4-a072-d050996490d0)
  • 84134 - openSUSE Security Update : proftpd (openSUSE-2015-410)
  • 82925 - Slackware 13.0 / 13.1 / 13.37 / 14.0 / 14.1 / current : proftpd (SSA:2015-111-12)
  • 27055 - ProFTPD < 1.3.0a Multiple Vulnerabilities
  • 17718 - ProFTPD < 1.3.1rc1 mod_ctrls Module pr_ctrls_recv_request Function Local Overflow
  • 106750 - ProFTPD 1.3.1 SQL injection protection bypass
  • 50989 - ProFTPD Compromised Source Packages Trojaned Distribution
  • 50544 - ProFTPD < 1.3.3c Multiple Vulnerabilities
  • 51366 - ProFTPD < 1.3.3d 'mod_sql' Buffer Overflow
  • 56956 - ProFTPD < 1.3.3g / 1.3.4 Response Pool Use-After-Free Code Execution
  • 106754 - ProFTPD 1.3.4d / 1.3.5rc3 Denial of Service
  • 106755 - ProFTPD < 1.3.5b / 1.3.6x < 1.3.6rc2 weak Diffie-Hellman key
  • 106756 - ProFTPD < 1.3.5e / 1.3.6x < 1.3.6rc5 AllowChrootSymlinks bypass
  • 77986 - GNU Bash Environment Variable Handling Code Injection via ProFTPD (Shellshock)
  • 34265 - ProFTPD Command Truncation Cross-Site Request Forgery
  • 132749 - ProFTPD 'mod_copy' Arbitrary File Copy Vulnerability (Remote)
  • 70446 - ProFTPD TELNET IAC Escape Sequence Remote Buffer Overflow
  • 35690 - ProFTPD Username Variable Substitution SQL Injection

Version


This page has been produced using Nessus Professional 10.1.2 (#68) LINUX, Plugin set 202205072148.
Plugin file proftpd_1_3_5_info_disc.nasl version 1.10. For more plugins, visit the Nessus Plugin Library.

Go back to menu.