copyFTP (File Transfer Protocol)

🌐 Introduction

Le FTP (File Transfer Protocol) est l'un des protocoles les plus anciens d'Internet, permettant le transfert de fichiers entre un client et un serveur. Il fonctionne sur la couche application du modèle TCP/IP, aux côtés de HTTP ou POP. Son fonctionnement repose sur deux canaux :

  • 🔌 Port 21 (canal de commande) : où le client envoie des instructions et reçoit des réponses.

  • 🔊 Port 20 (canal de données) : utilisé exclusivement pour le transfert de fichiers.

🔑 Modes Actif ⚪ et Passif 🔷

  • Actif : Le client informe le serveur sur quel port il peut envoyer la réponse. Problème : les pare-feux bloquent souvent ces connexions entrantes.

  • Passif : Le serveur fournit un port au client pour l'échange de données. Adapté aux environnements protégés.

✅ Authentification & Anonymat

Par défaut, FTP exige des identifiants. Cependant, certains serveurs offrent un accès anonyme (✉️ anonymous) permettant de télécharger (et parfois uploader) sans mot de passe. ❌ Attention : FTP transmet les données en clair, ce qui le rend vulnérable au sniffing.


📂 TFTP : Une version allégée de FTP

Le TFTP (Trivial FTP) est une version simplifiée du FTP :

  • ⚡ Utilise UDP (et non TCP).

  • ❌ Pas d'authentification.

  • 🏡 Ne fonctionne que sur des réseaux locaux sûris.

  • ❎ Pas de navigation dans les répertoires.

Commandes utiles :

  • connect, get, put, quit, status, verbose


🔧 Configuration de vsFTPd

Sur Linux, le serveur vsFTPd est l'un des plus répandus. On peut l'installer avec :

Quelques options clés du fichier /etc/vsftpd.conf :

Option
Description

anonymous_enable=NO

Désactiver l'accès anonyme

local_enable=YES

Autoriser les utilisateurs locaux

write_enable=YES

Autoriser les écritures

chroot_local_user=YES

Isoler les utilisateurs dans leur HOME

hide_ids=YES

Masquer les UID/GID des fichiers

Fichier à surveiller ✉️ : /etc/ftpusers (liste noire d'utilisateurs).


🚀 Exploitation d'un serveur FTP

👤 Connexion anonyme

📂 Listing des fichiers

📄 Téléchargement de fichiers

↑ Upload de fichiers

🚕 Téléchargement massif


🤖 Scan & Footprinting

🔮 Nmap avec scripts NSE

Scripts utiles :

  • ftp-anon.nse : détecte l'accès anonyme

  • ftp-syst.nse : récupère les infos du serveur

  • ftp-vsftpd-backdoor.nse : cherche une backdoor présente dans certaines versions

Pour voir les paquets envoyés :


🧰 Bonus : TLS & Interactions manuelles

🛡️ Connexion SSL avec OpenSSL

Cela permet de :

  • Vérifier le certificat SSL

  • Identifier l'organisation

  • Récupérer des métadonnées utiles

🔈 Interaction directe


✨ Conclusion

Le protocole FTP peut sembler ancien, mais il reste largement utilisé et souvent mal configuré. Sa simplicité en fait une porte d'entrée très utile lors de tests d'intrusion.


📚 Ressources utiles


Which version of the FTP server is running on the target system? Submit the entire banner as the answer.

Nous effectuons un scan de notre cible sur le port 21 afin d'obtenir la bannière associée :

La bannière associé à notre cible est InFreight FTP v1.1.


Enumerate the FTP server and find the flag.txt file. Submit the contents of it as the answer.

Nous effectuons un scan d'énumération du serveur FTP :

Nous observons ainsi la présence du fichier flag.txt dans le serveur FTP, maintenant, nous nous connectons à ce dernier en tant que anonymous et récupérons en local le fichier :

Nous analysons donc le contenu en local du fichier flag.txt afin d'en récupérer le contenu :

Voici le flag remonté :


Last updated