Угон ftp паролей или проверка быстроты тех. поддержки хостеров
Итак, доброго вторника, товарищи!
В выходные у меня не получилось отдохнуть, но время я провел более чем интересно:
В воскресенье я случайно узнал, что один из сайтов нашего клиента не работает и выдает ошибку “Parse error: syntax error, unexpected ‘ ” красуются дурно пахнущие испражнения какого-то бота:
И пока на форумах ребята гадали, как же угнали ftp пароли (filezilla? Totalcommander? Прочее?), стало ясно, что заражаются страницы вида index.*, footer.*, header.*, *.htm, *html, а если будет замечен какой-нибудь популярный движок (Joomla, WordPress, phpBB и т.д.), то заражение будет происходить согласно архитектуре самого движка.
Но бот не идеальный и на сайтах с самописным движком и modx портачил index, собственно из-за чего появилась ошибка и он себя раскрыл.
Вернуть основные файлы к жизни очень просто, но что делать, когда зараженных файлов сотни, а сайтов десятки? Выход очевиден:
Заражение началось ночью в воскресение, значит в субботу еще все было в порядке и нужно просто восстановить все из бэкапов и сменить ftp пароли.
Первым делом была проведена разъяснительная работа с компьютерами и сотрудниками о вреде хранения паролей в filezilla, потом были изменены все пароли, и началось самое интересно: восстановление.
Так как собственных бэкапов у меня дома не было, а разобраться со всем хотелось прямо сейчас, я решил потрясти на эту тема хостеров, и получил следующие результаты:
| McHost.ru* | HC.ru | Jino.ru | AGAVA.net | |
| Время отклика на заявку: | 1 мин. 15 сек. (Техподдержка онлайн) | 3 ч. 1 мин. (Заявка с сайта) | 1 ч. 23 мин. (Заявка с сайта) | 1 ч. 26 мин. (Заявка с сайта) |
| Время выполнения заявки (от отклика): | 1 ч. 9 мин. | 1 ч. 47 мин. | >> 10 ч.** | ? |
| Автоматическое восстановление: | Да | Нет*** | Нет*** | Нет**** |
| Свежайший бэкап за: | Субботу | Субботу | Четверг | Субботу |
| Информирование об окончании восстановления: | Да | Да | Нет | Да |
| Примечание: | Предложили восстановить определенный сайт или переписать весь аккаунт | Рекомендовали ознакомиться с общими требованиями по обеспечению безопасности сайта от взлома и вирусного заражения |
* Да-да, это он самый.
** Не автоматически по заявке: попросили самому нажать кнопку в панели управления, но я устал ждать, когда же пропадёт проклятое «Идет восстановление» и я смогу заняться делом.
*** Появляется папочка backup в которой будет восстановленная копия.
**** Скидывают в архивах в корневую.
Получился такой вот не запланированный эксперимент.
Этичный хакинг с Михаилом Тарасовым (Timcore)
Блог об Этичном Хакинге
#38 Kali Linux для начинающих. Взламываем FTP.
Продолжаем рассматривать тематику взлома, и в данном уроке мы попытаемся взломать FTP. Давайте воспользуемся первой уязвимостью, и взломаем нашу первую цель.
Начнем с первого открытого порта, и это 21 порт. Порт tcp, и его использует ftp-сервер, а именно vsFTPd:
Будучи пентестером, Вам необходимо исследовать все открытые порты и сервисы для успешного взлома.
Для начала нам необходимо подключиться к этому порту, и посмотреть, какую информацию я хочу получить.
Перейдем в инструмент Metasploit, и, дополнительно открою еще одну вкладку терминала. Так как это ftp — сервис, то я попробую подключиться к нему с помощью ftp-клиента.
Для этого в терминале я указываю «ftp »:

У меня уже предустановлен ftp-сервис, но у Вас его может и не быть, если это более ранняя версия Kali Linux. Но все решается в одну команду. В терминале нужно набрать «apt-get install ftp».
У меня название и версия ftp – это «vsFTPd 2.3.4». После установки и ввода команды нам нужно авторизироваться, указав имя пользователя, и в некоторых случаях ftp-сервис принимает имя пользователя «anonymous», т.е ftp настроен таким образом, чтобы принимать имя пользователя «anonymous» с любым паролем. Давайте проверим, сработает ли такой вариант:
Отлично. Все сработало корректно, и теперь я авторизирован.
Теперь моя задача состоит в том, чтобы найти какую-либо полезную информацию, файлы или директории на этом ftp-сервере, которые я смогу использовать для получения преимущества
Если ранее Вы не использовали ftp, и какие команды можно использовать, то введите знак вопроса «?», чтобы просмотреть доступные команды:
Обратите внимание, что мы уже видели некоторые из этих команд. К примеру команда «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-адрес. Это реалии, и это практически невозможно. Чтобы добавить реализма, давайте представим, что у данного сервиса нет уязвимостей. Нам нужно исследовать другие сервисы, и постараться их взломать.
Генерация словаря
Crunch
Словарь с пользователями мы взяли небольшой и записали в него 4 пользователя.
Для составления словаря используется Crunch, как встроенное средство. Инструмент гибкий и может составить словарь по определенной маске. Если есть вероятность того, что пользователь может использовать словарный пароль, то лучше воспользоваться уже готовыми решениями, тем более, что, как показывает практика, самый популярный пароль – 123456.
Генерировать словарь будем на 5 символов по маске. Данный метод подходит для случаев, когда мы имеем представление о структуре пароля пользователя.
5 – минимальное и максимальное количество символов;
qwe, ASD, 1234567890 – используемые символы;
-t – ключ, после которого указывается маска для составления пароля;
@ – нижний регистр;
, – верхний регистр;
% – цифры.
Сразу отметим, что на первых этапах мы будем для каждого инструмента описывать используемые ключи, но далее те же самые ключи уже не будут рассматриваться подробно, поскольку они крайне похожи друг на друга, а значит, имеют аналогичный синтаксис.
Patator
ssh_login – модуль;
host – наша цель;
user – логин пользователя, к которому подбирается пароль или файл с логинами для множественного подбора;
password – словарь с паролями;
-x ignore:mesg=’Authentication failed’ – не выводить на экран строку, имеющую данное сообщение. Параметр фильтрации подбирается индивидуально.
Все инструменты мы тестируем с количеством потоков по умолчанию, никаким образом их количество не изменяем.
Patator справился ровно за 7 минут 37 секунд, перебрав 2235 вариантов.
Hydra
-f – остановка перебора после успешного подбора пары логин/пароль;
-L/-P – путь до словаря с пользователями/паролями;
ssh://IP-адрес – указание сервиса и IP-адреса жертвы.
Hydra затратила на перебор 9 минут 11 секунд.
Medusa
-h – IP-адрес целевой машины;
-U/-P – путь к словарям логинов/паролей;
-М – выбор нужного модуля.
Medusa за 25 минут обработала только 715 комбинаций логин/пароль, поэтому данный инструмент не лучший выбор в случае с брутфорсом SSH.
Metasploit
Произведем поиск инструмента для проведения brute-force атаки по SSH:
search ssh_login
Задействуем модуль:
use auxiliary/scanner/ssh/ssh_login
Для просмотра необходимых параметров воспользуемся командой «show options». Для нас это:
rhosts – IP-адрес жертвы;
rport – порт;
user_file – путь до словаря с логинами;
pass_file – путь до словаря c паролями;
stop_on_success – остановка, как только найдется пара логин/пароль.
По умолчанию Metasploit использует 1 поток, поэтому и скорость перебора с использованием этого модуля очень низкая. За 25 минут так и не удалось подобрать пароль.
Patator
imap_login – используемый модуль;
-x – параметр, который помогает фильтровать ответы от Patator. В данном случае игнорируем ответы с кодом 1.
Параметр х является уникальным для каждого конкретного случая, поэтому рекомендуется сначала запустить инструмент без него и посмотреть какие ответы в основном приходят, чтобы затем их игнорировать.
В итоге Patator смог подобрать пароль за 9 минут 28 секунд, что является практически тем же самым показателем, что и в случае с SSH.
Hydra
Hydra справилась за 10 минут 47 секунд, что довольно неплохо.
Medusa
В связи с тем, что на сервере использовался самоподписанный сертификат, Medusa выдавала ошибку, исправить которую настройками инструмента не удалось.
Metasploit
В Metasploit не удалось подобрать подходящий модуль для брутфорса IMAP.
Patator
При использовании Patator появилось большое количество ложных срабатываний.
Hydra
Благодаря своим алгоритмам Hydra справилась с задачей всего за 5 секунд.
Medusa
Запуская перебор, я ожидал результатов, схожих с предыдущими, но на этот раз Medusa меня приятно удивила, отработав за считанные секунды.
Metasploit
С помощью поиска search smb_login находим нужный модуль scanner/smb/smb_login и применяем его.
Необходимо указать параметры:
RHOSTS – IP-адрес жертвы;
USER_FILE – словарь с пользователями;
PASS_FILE – словарь с паролями;
STOP_ON_SUCCESS – остановка после подобранной пары логин/пароль.
Metasploit справился с задачей за 1 минуту.
Patator
К сожалению, на данный момент из тестируемых инструментов только Patator может подбирать логин/пароль для RDP-протокола. При этом, даже если Patator и справился с поставленной задачей, в выводе дополнительно появилось ложное срабатывание.
Для начала нам необходимо понять, как происходит процесс аутентификации.
Для этого нужно отправить тестовые запросы аутентификации и уже из поведения веб-приложения можно будет увидеть, что неверный пароль возвращает код ответа 200, а успешная аутентификация — 302. На эту информацию и будем опираться.
Patator
Учитывая ответы веб-приложения на тестовые запросы, составим команду для запуска Patator:
http_fuzz – модуль для brute-force атаки HTTP;
url – адрес страницы с аутентификацией;
FILE0 – путь до словаря с паролями;
body – информация, которая передается в POST запросе при аутентификацией;
-x – в данном случае мы указали команду не выводить на экран сообщения, содержащие параметр с кодом 200;
accept_cookie – сохранение параметра cookie и передачи его в следующий запрос;
Итог — нам удалось подобрать пароль чуть менее, чем за 30 секунд, что очень быстро.
Hydra
Как мы уже знаем, при неверной аутентификации возвращается код 200, а при успешной — 302. Воспользуемся этой информацией и выполним команду:
Здесь мы указываем обязательные параметры:
-f – завершить перебор после получения валидной пары логин/пароль;
-L – словарь с пользователями;
-P – словарь с паролями;
http-post-form – тип формы (в нашем случае POST);
/wp-login.php – URL страницы с аутентификацией;
^USER^ – показывает куда подставлять имя пользователя;
^PASS^ – показывает куда подставлять пароль из словаря;
S=302 – указание на какой ответ опираться Hydra (в нашем случае — ответ 302 при успешной аутентификации).
Успех ожидал нас уже через 3 минуты 15 секунд.
Medusa
К сожалению, при попытках перебора пароля Medusa выдает ошибку «Segmentation fault».
Metasploit
С помощью поиска search wordpress_login находим нужный модуль auxiliary/scanner/http/wordpress_login_enum и применяем его. Необходимо указать параметры:
PASS_FILE – словарь с паролями;
RHOSTS – адрес жертвы;
STOP_ON_SUCCESS – остановка после подобранной пары логин/пароль;
USER_FILE – словарь с пользователями;
VALIDATE_USERS – отключить проверку существования учетной записи пользователя;
VERBOSE – отключить лишний вывод;
VHOST – доменное имя атакуемого сайта.
Затраченное время — 32 секунды.
Patator
В данном модуле Patator работает уже медленнее, чем с Web-формами, а пароль был подобран за 11 минут 20 секунд.
Hydra
Работая по умолчанию в 16 потоков, Hydra смогла перебрать пароли за 7 минут 55 секунд.
Metasploit, Medusa
В Metasploit используем модуль auxiliary/scanner/ftp/ftp_login
Все параметры стандартные, указываем путь до словарей и обязательно ставим завершение перебора после найденной пары логин/пароль.
С этим протоколом, как и c SSH, Metasploit и Medusa плохо справляются при стандартном количестве потоков. Поэтому если есть желание использовать именно эти инструменты, то необходимо вручную увеличивать количество потоков. Но и тут не все так просто. В однопоточном режиме FTP-сервер при использовании этих инструментов, сбросил соединение, чего не наблюдалось при использовании Patator или Hydra. Поэтому есть вероятность, что увеличение количества потоков не изменит ситуацию.
Протестировав разные, но в то же время похожие инструменты на различных сервисах, можно сказать, что у каждого из них есть как достоинства, так и недостатки, а с каким инструментом работать — решать только вам.
Ниже представлена сводная таблица с полученными результатами:
P.S. Потренироваться можно в наших лабораториях lab.pentestit.ru.
Оставить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
5 утилит для брутфорса учетных записей FTP сервера
В этой статье мы рассмотрели методы брутфорса учетных записей FTP серверов при помощи утилит Ncrack, Medusa, Hydra, Patator и Metasploit

Зачастую хакеры находят полезную информацию в самых обычных местах, как, например, на FTP серверах. Иногда получается еще более удачный расклад, когда доступен анонимный вход (то есть залогиниться может любой желающий), но в большинстве случаев требуется рабочая учетная запись. Существует несколько методов прямого перебора этих аккаунтов с целью последующего получения доступа к FTP серверу.
Введение
Протокол FTP (File Transfer Protocol) представляет собой сетевой протокол, используемый для передачи файлов по модели клиент-сервер, когда пользователь подключается к серверу при помощи клиента. Аутентификация осуществляется при помощи имени пользователя и пароля, обычно передаваемых в виде обычного текста. Однако могут быть доступны логины и для анонимного входа.
Обычно FTP сервер использует порт 21, но может быть сконфигурирован на нестандартный порт. Подобные сервера часто используется веб-разработчиками и могут быть обнаружены в крупных организациях, где передача файлов является неотъемлемой частью.
Прекрасно. Служба FTP работает и доступна для подключения
Далее создаем два текстовых файлов. В первом будет список имен пользователей, во втором – пароли. В реальной ситуации этот перечень был бы намного больше, но в демонстрационном примере с целью ускорить процесс будет использоваться небольшой список.
Создайте текстовый файл в вашем любимом редакторе и добавьте несколько наиболее распространенных имен пользователей.
Метод 1: Ncrack
Как видно из листинга выше, доступно множество опций, но мы затронем лишь самые основы.
Мы будем использовать флаг –U с целью указания файла с именами пользователей и флаг —P для файла с паролями. Затем укажите целевой IP адрес с префиксом ftp://.
В результате удалось обнаружить рабочие учетные записи user и ftp. Повторяющееся имя user говорит о доступности анонимного входа для этого пользователя, когда подойдет любой пароль.
Мы также можем указать номер порта в явном виде, что полезно, если служба работает на нестандартном порту. Флаг –v позволяет вывести более подробную информацию во время сканирования.
Метод 2: Medusa
Для просмотра доступных опций введите в терминале команду medusa:
Перед запуском перебора нужно выяснить, какие модули доступны, при помощи флага –d.
Для запуска брутфорса используются следующие опции:
Флаг –h позволяет указать хост.
Флаг –U позволяет указать перечень имен пользователей.
Флаг –P позволяет указать перечень паролей.
Флаг –M позволяет указать используемый модуль.
После запуска команды с вышеуказанными опциями получаем следующие результаты:
В результате обнаружено две рабочие учетные записи.
Метод 3: Hydra
Как и в двух предыдущих слуаях, вначале запускаем команду hydra для ознакомления с синтаксисом и доступными опциями:
При помощи флага –h можно получить чуть больше опций и примеры использования:
Флаг –L позволяет указать перечень имен пользователей, флаг –P – перечень паролей. Как и в случае с Ncrack указываем префикс службы (ftp://) и целевой IP адрес.
Если служба работает на нестандартном порту, используем флаг –s для указания порта:
После завершения перебора выводятся рабочие логины и пароли.
Метод 4: Patator
Следующая используемая нами утилита – Patator. В терминале вводим команду patator для просмотра доступных модулей:
По результатам выведенного перечня понятно, что утилита умеет многое, но поскольку нас интересует только FTP, используем следующую команду для просмотра справочной информации о модуле ftp_login:
В результате выводятся настройки модуля, глобальные опции и примеры использования. Patator чуть более сложен по сравнению с предыдущими утилитами, но в то же время намного более гибкий.
В результате обнаружено несколько рабочих учетных записей.
Кроме того, мы можем указать флаг –x, чтобы не выводить сообщения о некорректных учетных записях:
В итоге выходные данные выводятся в более читабельном виде.
Метод 5: Metasploit
Metasploit – последняя утилита в нашем списке. Вначале в терминале вводим команду msfconsole, а затем ищем нужным нам модуль:
Поскольку нам нужен модуль ftp_login, вводим следующую команду:
Далее вводим команду options для просмотра текущих настроек:
Сначала указываем целевой IP-адрес:
Затем файл с перечнем имен пользователей:
Теперь, когда всё готово для перебора, вводим команду run:
В результате выводятся все пары имен пользователей и паролей, участвующие в переборе, и в итоге мы получаем две рабочие учетные записи.
Как защититься от брутфорса FTP сервера
Если у вас используется FTP, весьма вероятно, что ежедневно вы будете сталкиваться со множеством попыток перебора в том числе при помощи вышеуказанных утилит. Тем не менее, вы можете предпринять несколько шагов для снижения риска от угроз подобного рода.
Самый простой способ – вообще не использовать FTP, если нет необходимости. Второй шаг (если использовать FTP всё же нужно) – указать нестандартный порт, что позволит защититься от подавляющего большинства атак, связанных с автоматизированным брутфорсом.
Третий шаг – использование сервисов навроде Fail2ban вместе корректно настроенными правилами фаервола. И последнее – использовать сильные пароли, устойчивые ко взлому.
Заключение
В этой статье мы рассмотрели методы брутфорса учетных записей FTP серверов при помощи утилит Ncrack, Medusa, Hydra, Patator и Metasploit, а также методы предотвращения угроз подобного рода. FTP может выглядеть «скучной» целью, но в связи с распространенностью следует знать, какими методами могут воспользоваться злоумышленники.



































