- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Linux глазами хакера - Михаил Флёнов
Шрифт:
Интервал:
Закладка:
10.1.1. Команды FTP-протокола
Давайте рассмотрим листинг 10.1. В нем приведен пример, в котором клиентская программа обменивается командами с FTP-сервером. Если в начале строки стоит знак ">", то текст из нее был отправлен серверу, иначе — это ответ FTP-сервера на нашу команду.
Листинг 10.1. Пример работы протокола FTP< 220 Flenov Mikhail FTP Server
> USER Anonymous
< 331 Anonymous access allowed, send identity (e-mail name) as password.
> PASS [email protected]
< 230 Anonymous user logged in.
> PWD
< 257 "/" is current directory.
> TYPE A
< 200 Type set to A.
> PASV
< 227 Entering Passive Mode (127,0,0,1,13,20).
> LIST
< 125 Data connection already open; Transfer starting.
< 226 Transfer complete.
Самой первой строкой идет приглашение сервера FTP. Его мы получаем сразу же, в ответ на соединение с 21 портом. В этой строке чаще всего находится текстовое описание сервера, с которым произошло соединение, и его версия. В данном случае здесь вместо конкретного названия мое имя, но в реальном сервере при настройках по умолчанию будет видна примерно следующая строка:
220 flenovm.ru FTP server (Version wu-2.6.2-5) ready.
Для чего я изменил строку приветствия? Все очень просто, в ней по умолчанию показывается имя домена, имя и версия FTP-сервера и сообщение о приветствии. Ничего страшного не видите? А я вижу — хакеру достаточно подключиться на 21 порт, чтобы знать, с каким FTP-сервером он имеет дело.
Дальнейшие действия взломщика легко предсказываются. Я бы запустил поиск по всем базам уязвимостей на предмет наличия в них информации о дырах в данной версии сервиса wu-ftpd. Пусть администратор помолится, чтобы я не нашел нужных сплоитов для использования бреши, или дыра была незначительной и не позволила мне ничего сделать с его системой.
После чтения строки сообщения можно посылать команды FTP-серверу. Но ничего особого выполнить не удастся, пока вы не представитесь серверу. Для этого нужно выполнить FTP-команды: user с параметром имя пользователя, а затем PASS, указав пароль.
Серверы FTP позволяют работать с тремя типами авторизации: действительная, гостевая и анонимная. В первом случае вы должны передать серверу реальное имя и пароль пользователя, которому разрешен доступ к серверу. Тогда после выполнения команды USER вы увидите сообщение о необходимости ввести правильный пароль для указанного пользователя:
331 Password required for flenov
В случае с анонимным доступом в качестве имени нужно указать Anonymous (команда USER Anonymous). В ответ на это сервер вернет нам сообщение:
331 Anonymous access allowed, send identity (e-mail name) as password.
Здесь говорится, что анонимный доступ разрешен, и вы должны передать в качестве пароля E-mail-адрес. Честно говоря, можно ввести и чужой E-mail, например, соседа или кого-нибудь другого. Это сервер проконтролировать не сможет. Некоторые серверы вообще не проверяют корректность адреса даже по простым шаблонам, и можно передавать что угодно.
На практике анонимный доступ обладает минимальными возможностями чтения файлов и директорий и используется только в открытых файловых архивах. Имя Anonymous, чаще всего, используют для публикации открытых документов для всеобщего доступа через FTP. Например, разработчики программ создают анонимные FTP-серверы для того, чтобы пользователи могли скачать с сервера последние версии программ или обновления уже существующих.
Реальный пользователь может путешествовать по всей файловой системе, и возможности ограничены только правами доступа используемой учетной записи.
Гостевой доступ по своим правам является чем-то промежуточным между анонимным и действительным. По сравнению с анонимным пользователем гость обладает большими правами, и ему может выдаваться разрешение на загрузку файлов, но, в отличие от действительного, он работает только в своей директории. Например, если гостю назначен каталог /home/robert, то он сможет безнаказанно здесь работать с файлами и подкаталогами, но выше этой директории подняться невозможно. Вы можете определить любое имя в качестве гостевого.
Обратите внимание, что пароль в команде pass передается абсолютно в открытом виде. Это серьезная проблема. В каждой главе, где мы рассматриваем какой-либо сервис, доводится сталкиваться с открытой передачей данных. Ну что поделаешь, если на заре рождения Интернета никто не думал о хакерах. Теперь приходится изобретать разные методы, чтобы спрятать пароль.
Если ваш сервер обслуживает только анонимные соединения, то пароли могут передаваться как угодно. При такой аутентификации любой пользователь итак может подключиться к серверу, указав произвольный E-mail-адрес в качестве пароля. Но подобные серверы используются только с общедоступными ресурсами/файлами. При наличии важной информации доступ происходит по паролю, и необходимо сделать так, чтобы он шифровался. Для этого можно использовать stunnel или уже готовый протокол SFTP, который мы рассматривали в разд. 5.3.8.
Отличное решение я видел на одном из публичных Web-серверов около 10 лет назад. Для того чтобы закачать данные на сервер, необходимо было зарегистрироваться, заполнив Web-форму с личными данными. Затем вам выдается пароль на доступ, который действует только в течение одной сессии. После этого пароль уничтожается, и повторное подключение становится невозможным. Файлы закачиваются в специальную директорию, в которую разрешена лишь запись. Самим файлам устанавливаются права только для чтения и записи, а выполнение остается недоступным. Таким образом, пароли можно передавать в открытом виде. Даже если хакер увидит его, подключиться не сможет.
Реализовать одноразовые пароли достаточно просто, если ваш сервер использует подключаемые модули аутентификации РАМ (см. разд. 3.3.3).
После того как вы авторизовались на сервере, можно выполнять любые другие команды FTP-сервера. Но тут есть одна проблема — список директив зависит от сервера. Конечно же, есть определенные требования, которых придерживаются все производители, это основные команды, которые описаны в RFC (Requests for Comments, рабочие предложения). Так как возможности, предоставляемые стандартом, уже устарели, то разработчики Web-серверов начали добавлять свои функции, которые могут отличаться в разных версиях программ. Так что, если клиентская программа в каких-то ситуациях ведет себя не совсем корректно, то это еще не значит, что она плохая, просто она может быть несовместима с данным сервером.
Основные команды FTP-протокола вы можете увидеть в табл. 10.1. При работе через Telnet и для тестирования сервера они вам могут пригодиться.
Таблица 10.1. Команды FTP-протокола
Команда Описание USER имя Используется при авторизации для указания имени пользователя PASS пароль Предназначена для указания пароля при авторизации SYST Вернуть тип системы HELP Предоставить список доступных для выполнения команд LIST Вывести список файлов и каталогов текущей директории PWD Возвратить текущую директорию CWD директория Сменить текущую директорию TYPE тип Указать тип передачи данных: A для ASCII, I — для бинарных файлов RETR параметр Скачать с сервера файл, указанный в качестве параметра STOR параметр Загрузить на сервер файл, указанный в качестве параметра ABOR Прервать последнюю FTP-команду или передачу данных QUIT Выйти из системы10.1.2. Сообщения сервера
В ответ на полученные команды сервер возвращает нам сообщения, по которым можно оценить результат работы. Уведомления состоят из числового трехзначного кода и необязательной текстовой части. Если для ответа требуется несколько строк, то в первой (после кода) стоит дефис, а в последней (после кода) — идет пробел.
Вы должны знать смысл числовых кодов, чтобы определить тип ошибки. Когда к вам за помощью обращается пользователь, зная значения кодов, можно определить причину сбоя и быстро решить проблему.

