Browse / CVEs / CVE-2010-20103
CVE-2010-20103
ProFTPd-1.3.3c - Backdoor Command Execution
criticalseverity
15%likelihood of exploitation, next 30 days
97%of all CVEs are less likely
Readycheck to confirm it
ProFTPD 1.3.3c contains a command injection backdoor caused by a hidden FTP command trigger in the source tarball, letting remote unauthenticated attackers execute arbitrary shell commands with root privileges.
Impact
Unauthenticated attackers can execute arbitrary shell commands with root privileges by sending specially crafted HELP commands that trigger the hidden backdoor in the compromised source tarball.
Fix
Update to a version later than 1.3.3c or the latest available version.
How to confirm it
Positive when: success == true and contains(response, '220 ProFTPD 1.3.3c') AND not contains "contains(response, '502 Unknown command')"Run it with nuclei: nuclei -id CVE-2010-20103 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2010-20103
info:
name: ProFTPd-1.3.3c - Backdoor Command Execution
author: pussycat0x
severity: critical
description: |
ProFTPD 1.3.3c contains a command injection backdoor caused by a hidden FTP command trigger in the source tarball, letting remote unauthenticated attackers execute arbitrary shell commands with root privileges.
impact: |
Unauthenticated attackers can execute arbitrary shell commands with root privileges by sending specially crafted HELP commands that trigger the hidden backdoor in the compromised source tarball.
remediation: |
Update to a version later than 1.3.3c or the latest available version.
reference:
- https://github.com/shafdo/ProFTPD-1.3.3c-Backdoor_Command_Execution_Automated_Script/blob/main/README.md
- https://www.rapid7.com/db/modules/exploit/unix/ftp/proftpd_133c_backdoor/
- https://www.exploit-db.com/exploits/15662
metadata:
max-request: 1
shodan-query: product:\"ProFTPD\"
tags: cve,cve2010,js,network,proftpd,ftp,backdoor,vkev,passive,vuln
javascript:
- pre-condition: |
isPortOpen(Host,Port);
code: |
const data = "HELP ACIDBITCHEZ\r\n";
const c = require("nuclei/net");
let conn = c.Open('tcp', `${Host}:${Port}`);
conn.Send(data);
let resp = conn.RecvString();
Export(resp);
args:
Host: "{{Host}}"
Port: 21
matchers-condition: and
matchers:
- type: dsl
dsl:
- "success == true"
- "contains(response, '220 ProFTPD 1.3.3c')"
condition: and
- type: word
words:
- "contains(response, '502 Unknown command')"
negative: trueReferences
- https://github.com/shafdo/ProFTPD-1.3.3c-Backdoor_Command_Execution_Automated_Script/blob/main/README.md
- https://www.rapid7.com/db/modules/exploit/unix/ftp/proftpd_133c_backdoor/
- https://www.exploit-db.com/exploits/15662
Use this check only on systems you are authorised to test. Where the data comes from