Kali linux install ftp

Установка и настройка FTP-сервера в Linux

File Transfer Protocol, т. е. FTP – протокол передачи файлов и, как понятно из полного названия, предназначен для передачи файлов между удалёнными компьютерами через сеть. Несмотря на то, что сам протокол FTP является на сегодняшний день не самым совершенным из-за того, что передаваемые данные не шифруются, однако это не делает его устаревшим. Кроме того всё-таки к FTP возможно применять криптографическую защиту на основе протокола SSL, что и делает FTP достойным инструментом для передачи файлов.

Поскольку FTP работает по схеме клиент-серверного взаимодействия, то умелая и надёжная реализация протокола (да и вообще системы) в состоянии обеспечить ему надёжную защиту, высокую скорость и, как следствие — популярность, что и можно наблюдать на сегодняшний день, ведь большинство крупных проектов, таких как ftp.gnu.org, ftp.suse.com, ftp.redhat.com, ftp.gnome.org и т. д., используют для распространения программного обеспечения со своих серверов именно FTP. Надо заметить, что такой популярностью FTP обязан, в большей степени, одной из своих многочисленных реализаций — vsFTPd. Это FTP- сервер, поддерживающий работу с самыми современными технологиями по защите данных — SSL и IPv6, его реализация совмещает в себе высокую надёжность, стабильность, скорость работы и передачи данных, а также гибкую настройку работы сервера и широкий функционал. Разработчиком vsFTPd является Крис Эванс — профессиональный исследователь в сферах защиты данных и информационной безопасности. vsFTPd является FTP-сервером по-умолчанию практически во всех Linux-системах, поскольку, как уже упоминалось, помимо надёжности и высокой скорости работы, обладает большими функциональными возможностями, самыми значимыми из которых являются:

  1. Работа с виртуальными пользователями.
  2. Работа с виртуальными IP-адресами.
  3. Конфигурирование пользователей.
  4. Поддержка
  5. SSL-шифровние для защиты передаваемых данных.
  6. Контроль полосы пропускания.

В данной статье рассматривается установка и настройка FTP-сервера на примере vsFTPd, который, кстати, является свободно распространяемым программным обеспечением (ПО) с открытым исходным кодом. Официальная страница проекта: https://security.appspot.com/vsftpd.html.

Установка vsFTPd

Установить Vsftd в Debian-ориентированных дистрибутивах Linux позволяет команда:

Также полезно будет установить и простой FTP-клиент для тестирования соединения и передачи файлов:

Для дистрибутивов на основе RPM-пакетов, CentOS, RedHat:

Примечание: yum – это пакетный менеджер, тот же самый apt, но адаптированный для управления пакетами формата *.rpm.

После установки для vsFTPd будет доступна техническая документация, которая обычно находится в каталоге /usr/share/doc/vsftpd/examples – здесь приведены варианты различных конфигураций, в зависимости от характера и масштабов использования vsFTPd. Ознакомиться с документацией можно также с помощью команды:

Обычно после установки демон vsFTPd автоматически запускается, убедиться в этом можно с помощью следующих команд:

Запуск, перезапуск и остановка сервера:

Для включения демона vsftpd в автозагрузку используется команда:

Читайте также:  Host name mapping windows

Аналогично и с командой service.

Если vsFTPd используется в серверных дистрибутивах, в которых часто работает фаервол, например ufw, то ещё может понадобиться разрешить использование портов 20 и 21:

Настройка vsFTPd

Конфигурационным файлом для настройки vsFTPd является файл vsftpd.conf, который обычно находится в каталоге etc/. Ознакомиться с его одержимым можно командой cat:

На всякий случай полезно перед редактированием оригинального файла настроек сделать его резервную копию:

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

FTP-сервер vsFTPd предусматривает два основных варианта работы: с анонимными и авторизованными пользователями. Первый вариант считается «более безопасным», но только потому, что для обеспечения надёжной защиты практически ничего настраивать и не нужно. Но при грамотной организации авторизованного доступа, предполагающего работу с FTP локальных пользователей системы, можно обеспечить безопасность ничуть не хуже, чем при использовании анонимного доступа.

Настройка в режиме анонимного доступа

Работа vsFTPd в данном режиме заключается в том, что действия с файлами на удалённом сервере производятся одним определённым по умолчанию пользователем, например, пользователем с именем «ftp» или «anonymous», при этом в качестве пароля используется e-mail.

Чтобы включить анонимный доступ по FTP нужно в фале vsftpd.conf определить значение «YES» для соответствующей директивы:

Теперь для управления файлами будет использоваться определённый каталог (обычно это /srv/ftp) и определённый пользователь — обычно ftp.

Можно определить и другое расположение файлов для анонимного доступа по FTP, т. е. изменить домашнюю директорию пользователя ftp:

Если нужно, чтобы анонимные пользователи могли ещё и загружать файлы на удалённый сервер, то это позволит сделать директива:

Теперь можно скопировать необходимые для анонимного доступа файлы в домашнюю папку пользователя ftp и перезапустить демон vsftpd:

$ systemctl restart vsftpd

Обычно этого набора настроек достаточно для организации анонимного FTP-доступа. Для проверки соединения можно выполнить команду ftp address_host:

что в случае успешного выполнения даст примерно такой вывод:

Настройка в режиме авторизованного доступа

Для авторизованного доступа проще всего включить использование локальных учётных записей на сервере. Для этого нужно указать следующую директиву в файле конфигурации vsftpd.conf:

Для задания разрешения локальным авторизованным пользователям загружать файлы на сервер указывается директива:

Примечание: для авторизации локальных пользователей используется пароль пользователя для локального входа в систему.

Теперь нужно перезапустить vsftpd для активации сделанных изменений:

Ограничение пользователей в своих домашних каталогах

Для определения пользователей, которым разрешён доступ только к своему домашнему каталогу существуют директивы:

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

которая «запирает» в chroot() локальных пользователей и выше своих домашних каталогов они подняться не смогут, то в этом случае пользователи в файле vsftpd.chroot_list ограничиваться своими домашними каталогами не будут, в отличии от тех, кто в этот список не внесён.

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

Читайте также:  Rainmeter windows 10 крякнутый

Лучшим способом исправить эту ошибку является указание некоего общего корневого каталога, куда при подключении будут попадать все пользователи, имея доступ лишь к своим домашним поддиректориям, например:

Можно также для устранения этой ошибки отключить проверку на запись в домашний каталог:

Но всё же это стоит делать лишь тогда, когда есть чёткое понимание, зачем это нужно для конкретной ситуации.

Защита данных с помощью SSL

Чтобы иметь возможность шифровать передаваемые данные, следует настроить vsFTPd в режиме FTPS. Это та же самая передача данных по FTP, но организованная поверх SSL – протокола. Шифрующего и проверяющего данные с помощью сертификатов и ключей.

Для включения режима FTPS нужно задействовать следующую директиву:

По умолчанию в конфигурационном файле vsftpd.conf также присутствуют опции, определяющие сертификаты и ключи, например:

Эти сертификат и ключ необходимо заменить. Для использования FTPS необходимо использовать сертификат и ключ. Cгенерированные (или полученные) для конкретного сервера или компьютера.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Этичный хакинг с Михаилом Тарасовым (Timcore)

Блог об Этичном Хакинге

#38 Kali Linux для начинающих. Взламываем FTP.

Продолжаем рассматривать тематику взлома, и в данном уроке мы попытаемся взломать FTP. Давайте воспользуемся первой уязвимостью, и взломаем нашу первую цель.

Начнем с первого открытого порта, и это 21 порт. Порт tcp, и его использует ftp-сервер, а именно vsFTPd:

Будучи пентестером, Вам необходимо исследовать все открытые порты и сервисы для успешного взлома.

Для начала нам необходимо подключиться к этому порту, и посмотреть, какую информацию я хочу получить.

Перейдем в инструмент Metasploit, и, дополнительно открою еще одну вкладку терминала. Так как это ftp — сервис, то я попробую подключиться к нему с помощью ftp-клиента.

Для этого в терминале я указываю «ftp »:

» srcset=»https://timcore.ru/wp-content/uploads/2021/04/screenshot_2-9.png 804w, https://timcore.ru/wp-content/uploads/2021/04/screenshot_2-9-300×238.png 300w, https://timcore.ru/wp-content/uploads/2021/04/screenshot_2-9-768×609.png 768w» sizes=»(max-width: 804px) 100vw, 804px»/>

У меня уже предустановлен ftp-сервис, но у Вас его может и не быть, если это более ранняя версия Kali Linux. Но все решается в одну команду. В терминале нужно набрать «apt-get install ftp».

У меня название и версия ftp – это «vsFTPd 2.3.4». После установки и ввода команды нам нужно авторизироваться, указав имя пользователя, и в некоторых случаях ftp-сервис принимает имя пользователя «anonymous», т.е ftp настроен таким образом, чтобы принимать имя пользователя «anonymous» с любым паролем. Давайте проверим, сработает ли такой вариант:

Отлично. Все сработало корректно, и теперь я авторизирован.

Теперь моя задача состоит в том, чтобы найти какую-либо полезную информацию, файлы или директории на этом ftp-сервере, которые я смогу использовать для получения преимущества

Если ранее Вы не использовали ftp, и какие команды можно использовать, то введите знак вопроса «?», чтобы просмотреть доступные команды:

Читайте также:  Windows системные атрибуты папки

Обратите внимание, что мы уже видели некоторые из этих команд. К примеру команда «ls» отображает содержимое директорий:

Похоже, что здесь ничего нет. Мне немного не повезло, и я ничего полезного для себя не нашел. Чтобы завершить соединение с ftp-сервером нужно выполнить команду «bye» или «exit»:

Теперь перейдем в Zenmap. Я получил большое количество информации относительно ftp-сервера, то я могу выявить его недостатки. Нам нужно скопировать версию сервиса, для того, чтобы узнать его уязвимости:

Переходим в браузер и пытаемся найти эксплойт для взлома ftp-сервера:

Похоже нам повезло, и мы сможем найти эксплойт для проникновения в систему. Более актуальная информация по текущему эксплойту будет находиться на официальном сайте разработчиков Metasploit. Это сайт Rapid7:

Нам очень повезло, и мы нашли уязвимость, которая позволяет попасть в систему, после исследования самого первого сервиса. Проскроллив страницу вниз, мы находим пример с данным эксплойтом:

Переходим в metasploit и ищем наш эксплойт:

Обратите внимание, что команда «info» отображает больше информации о модуле:

С помощью команды «info», мы точно определяем, нужный ли данный модуль мне или нет. После сверки информации, я вижу корректное отображение параметров.

Далее нужно ввести команду «show options», чтобы откорректировать параметры для запуска эксплойта:

Теперь мне нужно указать ip-адрес нашей цели. У меня это – «192.168.119.130». Команда будет выглядеть как «set rhosts 192.168.119.130»:

Также в metasploit можно проверить вероятность работы некоторых эксплойтов с помощью команды «check», и нам не обязательно запускать эксплойт, рискуя сломать сервис или рискуя тем, что эксплойт не сработает.

Давайте проверим, есть ли она здесь:

Видим, что данный модуль не поддерживается. Мне ничего не остается, кроме того, что запустить эксплойт. Запустить его можно двумя способами: либо написать «run», или «exploit»:

Эксплойт успешно работает, и мы установили одну сессию с машины жертвы. У нас есть сейчас шелл жертвы. Выполним команду «id», и мы авторизованы как рут-пользователь:

Можно еще раз проверить наши права, с помощью команды «whoami»:

Мы, опять же, находимся под рут-пользователем.

Можно также проверить, в какой директории мы находимся, с помощью команды «pwd»:

Для того, чтобы завершить работу, нужно выполнить команду «exit»:

Нам повезло, и мы взломали самый первый сервис.

Давайте рассмотрим ситуацию, приближенную к реальности, и у нас нет рут-прав. Крайне редко мы можем получить рут-права при первой же атаке на ip-адрес. Это реалии, и это практически невозможно. Чтобы добавить реализма, давайте представим, что у данного сервиса нет уязвимостей. Нам нужно исследовать другие сервисы, и постараться их взломать.

Источник

Оцените статью