Kraken
  • 🐙Привет!
    • 👋Добро пожаловать!
  • ✏️Крупицы знаний
    • 🌚Общие статьи
      • Как установить Kali Linux
      • Как поставить виртуальную Kali Linux
      • Что такое CVE
      • Обзор популярных алгоритмов хеширования
      • Модель OSI
      • Какие есть алгоритмы шифрования
      • Что такое TCP/IP
      • HSTS
      • Что такое хеширование и как его используют в ИБ
      • Скрипт для проверки данных SSL-сертификата
      • Шифруем файлы на Kali Linux с помощью OpenSSL
      • Как работает WPA2
      • О протоколе FTP
      • Что такое CVSS
      • Что такое политика одного источника (SOP)
      • О Cross-Origin Resource Sharing (CORS)
      • О Content Security Policy (CSP)
      • Что такое Bash
      • Веб-сокеты
      • MITRE ATT&CK
      • Начало в OSINT
      • Особенности и подходы к тестированию мобильных приложений
      • Что такое REST
      • Что такое API
      • Сравнение безопасности среды iOS и Android
      • CSS в ИБ
    • 🎪Карьера
      • Какие бывают роли у пентестеров и в чем их смысл
      • Какие есть виды пентеста
      • Что входит в пентест
      • Какие есть области знаний в веб-пентесте
      • Главные ошибки новичков в ИБ
    • 😰Уязвимости
      • Об атаке Pastejaking
      • Об уязвимости KRACK
      • Об уязвимости Regex DoS
      • Об атаке MITM
      • Что такое уязвимость нулевого дня
      • Атака на протокол STP
      • Защита протокола STP
      • Clickjacking
      • База при атаке на Wi-Fi
      • Атаки по сторонним каналам
      • DNS ребайндинг
    • ⚙️Инструменты
      • Лучшие сканеры открытых портов и инструменты проверки портов
      • Что такое OWASP ZAP и как он помогает защитить приложения?
      • О фреймворке WiFi Exploitation Framework (WEF)
      • WeBaCoo — поддерживаем доступ к взломанному веб-серверу
      • Socialscan — проверяем использование электронной почты и имен пользователей в соцсетях
      • Обзор инструментов Red Team
      • 11 инструментов для сканирования уязвимостей
      • Подборка инструментов для автоматизации атак на JWT
      • О Bulk_Extractor
      • О Unicornscan
      • О Maryam
      • О Picocrypt, утилите для шифрования данных
      • Анализируем трафик с ZUI (Zed User Interface)
      • Об инструменте SkipFish
      • Как получить уведомления на почту о входе по SSH
      • О сканере OpenSCAP
      • О Censys — инструменте для поиска уязвимых поддоменов
      • О Scanless — инструменте для анонимного сканирования открытых портов
      • О SearchSploit — инструменте для поиска эксплойтов
      • Выбираем менеджер паролей
      • О Maltego
      • Устанавливаем и используем Snyk CLI в Windows
      • Проверяем безопасность Docker-образов с помощью Trivy
      • Об инструменте SpiderFoot
      • Сканируем сети с помощью скриптов Bash
      • О фреймворке Volatility на Windows
      • Определяем тип WAF с помощью WafW00f
      • Об инструменте ReNgine
      • О Foremost — инструменте для восстановления данных
      • Chisel — инструмент для проброса портов
      • O Yersinia
      • Об Acunetix
      • O Netcat
      • O Samba
      • O John the Ripper
      • О Common User Passwords Profiler (CUPP)
      • О RainbowCrack
      • Shodan
      • MobSF
      • Netsparker
      • Fortify
      • Veracode
      • Rapid7 InsightVM
      • Aircrack-ng
  • 🛠️ИНСТРУМЕНТЫ
    • ⌨️Беспроводные атаки
      • Aircrack-Ng
    • 🔑Атаки на пароли
      • Crunch
      • John
      • CUPP
      • Hashcat
      • Hydra
    • 👁️Сбор Информации
      • Masscan
      • Dnsenum
      • Parsero
      • Nmap
  • 👨‍💻Пентест
    • Методология
    • 🖥️Аппаратный/Физический доступ
      • Физические атаки
      • Побег из КИОСКа
  • 👾MITRE
    • 🗺️Тактики
      • 🏢Предприятия
        • Разведка
      • 📱Мобильные устройства
      • 🏭ICS
    • 💀CTI
      • ☠️Группы
        • admin@338
        • Ajax Security Team
        • ALLANITE
        • Andariel
  • 📟Справочник по безопасной разработке
    • 👨‍🔬CLIENT SIDE
      • Cross-Site Scripting [XSS]
      • Cross-Site Request Forgery [CSRF]
      • Clickjacking
      • Open Redirects
    • 🖥️SERVER SIDE
      • SQL Injections [SQLi]
      • XML External Entity Injection [XXE]
      • OS Command Injection [Command Execution]
      • File Upload
      • Server-Side Request Forgery [SSRF]
      • Host Header Injection
      • Аутентификация
      • Directory Traversal
      • Template Injection [SSTI]
    • API
  • 🐝OWASP
    • Cross Site Scripting (XSS)
Powered by GitBook
On this page
  • Что таоке FTP
  • Как работет FTP
  • Как проходит FTP-сессия
  • Режимы работы FTP
  • Чем плох FTP-протокол?
  1. Крупицы знаний
  2. Общие статьи

О протоколе FTP

В этой статье расскажем о FTP: как работает протокол, в чем его особенности и почему всё больше компаний отказываются от него.

Что таоке FTP

FTP (File Transfer Protocol — протокол передачи файлов) — это стандартный сетевой протокол, используемый для передачи файлов между клиентом и сервером по сети TCP/IP. Если говорить проще — это способ перемещения файлов между двумя компьютерами через интернет. Из-за отстутствия шифрования от этого протокола всё чаще откзываются компании, но кто-то до сих пор его использует.

Как работет FTP

Зайдем с метафоры. Представим, что FTP — почтовый ящик, куда мы можем положить письмо (файл), и другой человек может его оттуда взять.

Когда вы используете FTP, один компьютер действует как сервер — это как почтовое отделение, которое хранит письмо. Другой компьютер действует как клиент — это мы, когда забираем или отправляем письмо.

В момент, когда мы хотим передать файлы, нам нужно войти в систему, ввести имя пользователя и пароль. Это способ убедиться, что мы имеем право забирать или оставлять файлы в почтовом ящике. FTP-протокол использует два вида общения:

  1. Командный канал (Control Channel) → отправляет команды с клиента на сервер и получает ответы. Этот канал остаётся открытым на протяжении всей FTP-сессии.

  2. Канал данных (Data Channel) → фактическая передача файлов между клиентом и сервером. Канал открывается и закрывается для каждой отдельной передачи данных.

Как проходит FTP-сессия

FTP-сессия — это установленное соединение между клиентским компьютером и сервером. Оно начинается с момента подключения клиента к серверу и продолжается до тех пор, пока оно не будет прервано или закончено. FTP-сессия полезна для поддержания порядка при передаче файлов, так как она позволяет серверу контролировать, кто и когда подключается, и обеспечивает целостность передачи данных. Есть 5 основных этапов сессии:

Этап
Описание этапа

Установление соединения

Клиент использует специальную программу (FTP-клиента) для подключения к серверу FTP. Ему нужно знать адрес сервера (например, имя домена или IP-адрес сервера FTP), а также иметь имя пользователя и пароль (если требуется).

Аутентификация

Клиент предоставляет своё имя пользователя и пароль серверу. Если у сервера есть анонимный доступ, логин и пароль могут быть не нужны — клиент может войти анонимно.

Обмен командами

Эти команды могут включать запросы на получение списка файлов в папке, перемещение между папками, загрузку файлов на сервер или скачивание файлов с сервера.

Передача данных

Если клиент хочет загрузить или скачать файлы, открывается отдельное соединение для данных. Файлы передаются через это соединение.

Завершение сессии

После того как все необходимые файлы загружены или скачаны, клиент может закончить сессию, отключившись от сервера. Обычно это делается путём отправки команды на отключение, и сервер подтверждает окончание сессии.

Режимы работы FTP

Активный режим → когда хотим соединиться с сервером для отправки или получения файлов, мы сначала устанавливаем с ним связь. После этого сервер пытается соединиться с нашим компьютером, чтобы начать передавать файлы.

Пассивный режим → если компьютер защищен брандмауэром или находится в частной сети, делающих прямое соединение сложным. Здесь мы и сервер сначала устанавливаем связь, но вместо того, чтобы ждать от сервера соединения, мы просим сервер дать нам виртуальный адрес. Затем мы самостоятельно соединяетемся с виртуальным адресом, чтобы передать файлы.

Чем плох FTP-протокол?

  1. Нет проверки целостности. Из-за этого файлы могут быть повреждены или изменены в процессе передачи. И ты даже этого не обнаружишь.

  2. Проблемы с брандмауэрами и NAT. Для установления соединения FTP использует несколько портов, и в режиме активного FTP клиент должен открывать порты для соединения, что может вызывать проблемы при работе через брандмауэры и NAT.

  3. Нет управления версиями. FTP не имеет встроенных средств для управления версиями файлов или для отслеживания их изменений.

  4. Сложность. Настройка FTP-серверов может быть сложной, особенно с учётом необходимости настройки брандмауэров и NAT.

Last updated 1 year ago

Нет шифрования. И содержимое передаваемых файлов, и учетные данные пользователя передаются в незашифрованном виде. Это делает протокол уязвимым для сниффинга, брутфорса и атак типа .

✏️
🌚
MITM