File Transfer Protocol

  1. Số cổng: 20, 21
  2. Tầng giao thức: application
  3. Các hình thức tấn công:
    1. Brute force
    2. Packet capture
    3. Anonymous authentication
    4. 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:

  1. 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.
  2. Passive:
    • FTP server sẽ mở một port để lắng nghe (thường là port 1023).
    • Sau đó, FTP client sẽ kết nối đến port này để truyền dữ liệu.
    • Việc này giúp tránh các vấn đề liên quan đến các firewallNAT có thể gây khó khăn khi sử dụng chế độ active.

Commands

Kết nối bằng câu lệnh sau:

pentester@TryHackMe$ ftp MACHINE_IP

Sau 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.

Resources