Введение
В этой лабораторной работе вы узнаете, как изменить номер порта FTP на целевой системе, а затем использовать Hydra для проведения брутфорс-атаки на FTP-сервис через этот нестандартный порт. Это ценный навык для специалистов по тестированию на проникновение и экспертов по безопасности, которым необходимо оценивать защищенность систем, настроенных на работу с нестандартными FTP-портами.
Лабораторная работа включает настройку FTP-сервера на виртуальной машине LabEx для прослушивания нестандартного порта путем редактирования файла vsftpd.conf и перезапуска службы FTP. Затем вы используете команду netstat, чтобы убедиться, что FTP-сервер прослушивает новый порт. В завершение вы примените Hydra с опцией -s для указания пользовательского порта и выполнения атаки, подтвердив, что Hydra успешно подключается к FTP-сервису на заданном порту.
Настройка FTP на нестандартном порту
На этом этапе мы настроим FTP-сервер на виртуальной машине LabEx для работы на нестандартном порту. По умолчанию FTP использует порт 21. Изменение порта FTP помогает снизить риск автоматизированных атак, нацеленных на стандартный порт.
Сначала отредактируем файл конфигурации FTP. Мы воспользуемся редактором nano, который предустановлен на виртуальной машине LabEx.
sudo nano /etc/vsftpd.conf
Эта команда откроет файл vsftpd.conf в редакторе nano.
Добавьте в файл следующую строку:
listen_port=2121

Если строка listen_port отсутствует, добавьте её в файл. Рекомендуется разместить её ближе к началу файла.
После внесения изменений сохраните файл, нажав Ctrl+X, затем Y для подтверждения и Enter для сохранения под тем же именем.
Далее необходимо перезапустить службу FTP, чтобы изменения вступили в силу.
sudo service vsftpd restart
Эта команда перезапустит службу FTP. Вы должны увидеть вывод, подтверждающий, что служба была перезапущена.
Наконец, проверим, что FTP-сервер теперь прослушивает новый порт. Мы можем использовать команду netstat для проверки открытых портов.
sudo netstat -tulnp | grep vsftpd
Эта команда отображает всю информацию о TCP, UDP, прослушиваемых портах и процессах, а затем фильтрует вывод, оставляя только строки, содержащие "vsftpd". Вы должны увидеть строку, указывающую, что vsftpd прослушивает порт 2121 (или тот порт, который вы выбрали).
Пример вывода:
tcp6 0 0 :::2121 :::* LISTEN 1027/vsftpd

Если в выводе отображается новый номер порта, значит, FTP-сервер теперь работает на этом порту.
Указание порта с помощью опции -s
На этом этапе мы узнаем, как указывать нестандартный порт при использовании команды ftp. Это критически важно, так как на предыдущем шаге мы изменили порт прослушивания FTP-сервера со стандартного 21 на пользовательский (например, 2121). Теперь при подключении к серверу нам нужно сообщить FTP-клиенту, какой порт использовать.
Для команды ftp можно указать нестандартный порт, передав HOST PORT, например ftp localhost 2121. Однако Hydra использует опцию -s для указания порта. Важно понимать это различие при подготовке к атаке с помощью Hydra на следующем этапе.
Давайте попробуем подключиться к FTP-серверу, используя формат команды ftp с указанием хоста и порта, чтобы проверить соединение. Замените localhost на IP-адрес виртуальной машины LabEx. Если вы выполняете эту лабораторную работу на той же виртуальной машине, можно использовать localhost или 127.0.0.1.
ftp localhost 2121
Вас попросят ввести имя пользователя и пароль. Нажмите Ctrl+C для выхода.
Теперь давайте сымитируем, как Hydra будет указывать порт. Хотя мы пока не будем запускать Hydra, этот шаг важен для понимания синтаксиса. Hydra использует опцию -s для указания порта.
Синтаксис Hydra для указания порта отличается от стандартной команды ftp. Hydra использует -s, за которым следует номер порта. Например, если бы мы использовали Hydra для атаки на FTP-сервис на порту 2121, мы бы включили -s 2121 в команду Hydra.
Для демонстрации создадим пример команды Hydra. Мы не будем её выполнять, но она проиллюстрирует правильный синтаксис.
hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121

Главное, что нужно запомнить — это часть -s 2121. Она указывает Hydra подключаться к FTP-сервису на порту 2121.
Подводя итог: стандартная команда ftp использует HOST PORT для указания целевого порта, в то время как Hydra использует -s. Понимание этого различия критически важно для следующего этапа, где мы выполним атаку на FTP с помощью Hydra.
Выполнение атаки на FTP через нестандартный порт
На этом этапе мы используем Hydra для проведения брутфорс-атаки на FTP-сервис, работающий на нестандартном порту, который мы настроили на первом этапе. Мы будем использовать список паролей, созданный во время подготовки.
Теперь мы готовы запустить атаку Hydra. Замените localhost на IP-адрес виртуальной машины LabEx. Если вы выполняете эту лабораторную работу на той же виртуальной машине, можно использовать localhost или 127.0.0.1.
hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121 -vV
Разберем эту команду:
hydra: команда для запуска инструмента Hydra.-l ftpuser: указывает имя пользователя для атаки.-P ~/project/password.txt: указывает путь к файлу со списком паролей, созданному при подготовке.localhost: указывает целевой IP-адрес. Заменитеlocalhostна фактический IP-адрес.ftp: указывает сервис для атаки (в данном случае FTP).-s 2121: указывает номер порта. Это критически важно, так как на первом этапе мы изменили порт FTP на 2121.-vV: включает подробный режим (verbose), который показывает попытки входа в реальном времени.
Выполните команду. Hydra начнет перебирать пароли из файла ~/project/password.txt для FTP-сервиса на указанном порту.
Если Hydra найдет правильный пароль, она отобразит информацию об успешном входе. Например:
[ATTACKER] attacking ftp://localhost:2121/
[2121][ftp] host: localhost login: ftpuser password: password123
Если Hydra не найдет правильный пароль, она переберет все пароли из списка и завершит работу, не отобразив успешный вход.
Важное примечание по безопасности: Эта лабораторная работа предназначена только для образовательных целей. Не используйте Hydra для атаки на системы без явного разрешения. Несанкционированный доступ к компьютерным системам является незаконным и неэтичным.
Проверка соединения с нужным портом
На этом заключительном этапе мы проверим, что по-прежнему можем подключиться к FTP-серверу на нестандартном порту после попытки атаки Hydra. Это подтверждает, что FTP-сервис работает ожидаемым образом и что мы можем получить к нему доступ через указанный порт.
Используйте команду ftp с указанием хоста и порта для подключения к FTP-серверу на нестандартном порту. Замените localhost на IP-адрес виртуальной машины LabEx. Если вы выполняете эту лабораторную работу на той же виртуальной машине, можно использовать localhost или 127.0.0.1.
ftp localhost 2121
Вас попросят ввести имя пользователя и пароль. Используйте учетные данные, созданные нами при подготовке:
- Имя пользователя:
ftpuser - Пароль:
password123
Если соединение успешно, вы войдете на FTP-сервер.

Если подключиться не удается, проверьте следующее:
- Убедитесь, что служба FTP все еще запущена. Вы можете проверить это с помощью команды
netstat -tulnp | grep vsftpd, как мы делали на первом этапе. - Убедитесь, что порт FTP по-прежнему установлен на 2121 (или тот порт, который вы выбрали) в файле
/etc/vsftpd.conf. - Убедитесь, что нет правил брандмауэра, блокирующих соединения с нестандартным портом. (Примечание: в среде виртуальной машины LabEx брандмауэр обычно не включен по умолчанию, но об этом стоит помнить в реальных сценариях.)
- Убедитесь, что вы используете правильное имя пользователя и пароль.
Успешное соединение подтверждает, что FTP-сервер работает на нестандартном порту и что вы можете подключиться к нему с помощью ftp localhost 2121. Это также подтверждает, что атака Hydra, даже если она была неуспешной, не нарушила работу FTP-сервиса.
На этом лабораторная работа завершена. Вы успешно настроили FTP на нестандартном порту, узнали, как указывать порт с помощью опции -s в Hydra, выполнили базовую атаку Hydra и проверили соединение с нужным портом.
Резюме
В этой лабораторной работе мы настроили FTP-сервер на виртуальной машине LabEx для прослушивания нестандартного порта, а именно 2121, вместо стандартного порта 21. Для этого мы отредактировали файл /etc/vsftpd.conf с помощью nano, изменив или добавив директиву listen_port, а затем перезапустили службу FTP с помощью sudo service vsftpd restart.
В завершение мы убедились, что FTP-сервер действительно прослушивает новый порт, используя команду netstat -tulnp | grep vsftpd для проверки открытых портов и подтверждения того, что vsftpd связан с портом 2121.


