FTP 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
Active FTP
Client opens port > 1023
Server connects back from port 20
Issues with firewalls and NAT
Passive FTP
Client initiates all connections
Server provides data port > 1023
Better for firewalled environments
Initial Enumeration
Port Scanning
Banner Grabbing
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
Anonymous Access :
Default enabled
Weak configuration
Public read/write access
Version-specific :
vsftpd 2.3.4 backdoor
ProFTPD vulnerabilities
Buffer overflows
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
230
Login successful
530
Login incorrect
331
Username OK, need password
221
Goodbye
500
Syntax error
550
File unavailable
Best Practices for Pentesting
Initial Reconnaissance :
Identify FTP service version
Check for anonymous access
Banner grab for information
Test default credentials
Deep Enumeration :
Run vulnerability scans
Test authentication methods
Check file permissions
Look for sensitive data
Test upload capabilities
Documentation :
Record all findings
Note server configuration
Document vulnerabilities
Save evidence for reporting
Risk Assessment :
Evaluate impact of findings
Consider data sensitivity
Assess exploitation potential
Recommend mitigations
Last updated