folder-arrow-downFTP Pentesting Notes

Protocol Overview

Basic Information

  • Port : TCP 21 (control), TCP 20 (data)

  • Protocol Type : Clear-text, application layer

  • Purpose : File transfer between client and server

  • Security : Minimal built-in security, data transmitted in cleartext

Connection Types

  1. Active FTP

    • Client opens port > 1023

    • Server connects back from port 20

    • Issues with firewalls and NAT

  2. Passive FTP

    • Client initiates all connections

    • Server provides data port > 1023

    • Better for firewalled environments

Initial Enumeration

Port Scanning

Anonymous Access

Testing Anonymous Login

Automated Anonymous Check

Brute Force Attacks

Using Hydra

Using Medusa

Using Ncrack

Common NSE Scripts

File Operations

Downloading Files

Uploading Files

TFTP Operations (UDP/69)

Advanced Techniques

FTP Bounce Attack

FTPS (FTP over SSL/TLS)

Configuration Files

Server Configuration

  • VSFTPD : /etc/vsftpd.conf

  • ProFTPD : /etc/proftpd/proftpd.conf

  • Pure-FTPd : /etc/pure-ftpd/pure-ftpd.conf

User Restrictions

  • Denied Users : /etc/ftpusers

  • User List : /etc/vsftpd.user_list

Common Vulnerabilities

  1. Anonymous Access :

    • Default enabled

    • Weak configuration

    • Public read/write access

  2. Version-specific :

    • vsftpd 2.3.4 backdoor

    • ProFTPD vulnerabilities

    • Buffer overflows

  3. Configuration Issues :

    • Clear-text credentials

    • Weak file permissions

    • Directory traversal

    • FTP bounce enabled

Post Exploitation

Information Gathering

  • List all accessible directories

  • Check for sensitive files

  • Examine file permissions

  • Look for configuration files

  • Search for user information

Privilege Escalation

  • Check upload directories for execute permissions

  • Look for writable configuration files

  • Test for directory traversal

  • Search for sensitive data in FTP home directories

Common FTP Response Codes

Code
Meaning

230

Login successful

530

Login incorrect

331

Username OK, need password

221

Goodbye

500

Syntax error

550

File unavailable

Best Practices for Pentesting

  1. Initial Reconnaissance :

    • Identify FTP service version

    • Check for anonymous access

    • Banner grab for information

    • Test default credentials

  2. Deep Enumeration :

    • Run vulnerability scans

    • Test authentication methods

    • Check file permissions

    • Look for sensitive data

    • Test upload capabilities

  3. Documentation :

    • Record all findings

    • Note server configuration

    • Document vulnerabilities

    • Save evidence for reporting

  4. Risk Assessment :

    • Evaluate impact of findings

    • Consider data sensitivity

    • Assess exploitation potential

    • Recommend mitigations

Last updated