File Transfer Protocol
- Số cổng: 20, 21
- Tầng giao thức: application
- Các hình thức tấn công:
- Brute force
- Packet capture
- Anonymous authentication
- Directory traversal attack
Introduction
File Transfer Protocol (FTP) là một giao thức giúp trao đổi tập tin ở dạng bản rõ (không có mã hóa).
Mechanism
Quá trình giao tiếp như sau:
- Ban đầu client sẽ kết nối đến FTP server chạy ở port 21. Việc kết nối này sẽ tạo một control channel và tất cả các câu lệnh đều được gửi thông qua kênh truyền này.
- Khi client request file, một data channel sẽ được mở ra và tập tin sẽ được trao đổi thông qua kênh truyền đó.
Minh họa:

Modes
Việc trao đổi tập tin qua data channel sẽ có 2 mode:
- Active:
- FTP client sẽ mở một kênh truyền dữ liệu ở port 20 của FTP server.
- Dữ liệu được truyền trực tiếp từ server đến client thông qua kênh truyền này.
- Điều này đòi hỏi client phải mở một port (thường là port 1023) để nhận dữ liệu.
- Passive:
Commands
Kết nối bằng câu lệnh sau:
pentester@TryHackMe$ ftp MACHINE_IPSau khi kết nối thì ta nhập username và password.
Nếu đăng nhập thành công thì terminal sẽ cho phép nhập các câu lệnh, chẳng hạn như:
ls: liệt kê các tập tin.ascii: chuyển đổi chế độ trao đổi tập tin sang ASCII.get FILENAME: thiết lập một kênh truyền riêng để trao đổi tập tin có tên làFILENAME.
Có một vài phần mềm giúp host FTP file server:
Ở phía client, ngoài việc sử dụng CLI như trên thì có thể sử dụng một phần mềm có tên là FileZilla.
Attention
Bởi vì trao đổi thông tin đăng nhập ở dạng bản rõ nên FTP traffic có thể dễ dàng bị tấn công.