Эта глава исследует нападения разработанные за годы использования службы Telnet. Это изучение начинается с небольшой истории. Протокол Telnet был сначала всесторонне определен Postel'ем в 1980. В RFC 764, Postel писал:
Ссылка: RFC 764 может быть найден в Web на
http://sunsite.auc.dk/RFC/rfc/rfc764.html.
Как я упоменал в Главе 6, "Краткое Введение в TCP/IP", Telnet уникальна в её проекте с известным исключением rlogin. Telnet разработана, чтобы позволить пользователю войти на внешнюю машину и выполнять на ней команды. Telnet (подобно rlogin) работает, как если бы Вы работали с консоли удалённой машины, как будто Вы физически приблизились к удалённой машине, включил её и начали работать.
ПРИМЕЧАНИЕ: Пользователи ПК могут получить впечатление об этом с точки зрения PCAnywhere или CloseUp. Эти программы позволяют Вам дистанционно войти в другой ПК и выполнять команды в C: приглашении удалённой машины (или даже выполнять команды в Windows, если Вы имеете очень высокоскоростное подключение, чтобы передать графику по проводу).
Волшебство в Telnet состоит в имитации подключения ASCII терминалов между двумя машинами, расположенными на больших расстояниях друг от друга. Это выполняется с помощью виртуального терминала, как описано Postel'ем в этой выборке из RFC 854:
Ссылка: Читайте RFC 854 полностью на
http://sunsite.auc.dk/RFC/rfc/rfc854.html.
Виртуальный терминал эквивалентен (по крайней мере по виду) аппаратного последовательного подключения между двумя машины. Например, Вы можете моделировать кое-что очень похожее на сессию Telnet, не комментируя respawn команды в файле inittab на машине Linux (и большинстве других машин UNIX) или, разъединяя монитор и клавиатура на SPARC и подключая VT200 терминал в последовательный порт А или B. В первом случае, появляется приглашение входа в систему login:. В втором, все сообщения процесса загрузки отображаются на экране на связанном терминале и в конечном счёте появляется приглашение login: (или возможно, если диск SCSI определен как устройство загрузки в ППЗУ, машина загрузит и выдаст приглашение ко входу в систему login:.
Поэтому, Telnet-основанные подключения состоят в том, что называется пустые подключения. Вы обратите внимание, что, если Вы используете VT220 терминал как головку для вашей SPARC, что, когда загрузка происходит, крутая эмблема Солнца не напечатана в цвете, и крутая графика, связанная с этим, не появится. Telnet и терминальные сессии полностью основаны на тексте. Кроме того, подключения Telnet не имеют средств, чтобы интерпретировать ориентированные на визуальный вывод данных языки типа HTML без помощи основанного на тексте броузера типа Lynx. Поэтому, получая Web страницу через Telnet не покажет никакие изображения или приятно форматировал текст; это покажет только источник документа (если, конечно, Вы не вошли через Telnet и теперь не используете Lynx).
ПРИМЕЧАНИЕ: Lynx это полностью основанный на терминале HTML броузер для использования с учётной записью оболочки или даже DOS версией TCP/IP подключения. Это упрощенный способ обращения к Всемирной Сети.
Telnet неожиданно возникала в консультациях по безопасности много раз. Проблемы безопасности Telnet изменяются значительно, с большим количеством уязвимостей, всплывающих из-за ошибок программирования. Однако, ошибки программирования не единственная причина почему Telnet появилась в консультациях. В августе 1989, например, проблема была в троянской программе, как объясняет консультация CERT "Telnet Break-in Warning" ("Предупреждение о Останове Telnet"):
Ссылка: Чтобы просмотреть эту консультацию CERT полностью, посетите
ftp://ftp.uwsg.indiana.edu/pub/security/cert/cert_advisories/CA-89:03.telnet.breakin.warning.
Такое нападение происходило только до учреждения Координационного Центра Безопасности DDN (сентябрь 1989), так имеется небольшая документация о том, воздействовало ли оно на правительственные компьютеры. Также, хотя усилия CERT оценены для Безопасности Internet, консультации DDN иногда содержат более технический анализ проблемы.
В марте 1991 было обнаружено, что telnetd демон в некоторых дистрибутивах Sun испорчен. Как отмечает консультация CERT "SunOS in.telnetd Vulnerability" ("SunOS in.telnetd Уязвимость"):
Ссылка: Чтобы увидеть эту консультацию CERT полностью, посетите
ftp://info.cert.org/pub/cert_advisories/CA-91%3A02a.SunOS.telnetd.vulnerability.
СОВЕТ: Если Вы купили старую Sun 3/60 по Сети, Вы захотите получить заплаты, которые включены в предыдущую консультацию.
Месяцами позже было определено, что специализированное приложение LAT/Telnet, разработанное Digital Corporation испорчено. Как объясняет консультация CERT "ULTRIX LAT/Telnet Gateway Vulnerability" ("ULTRIX LAT/Telnet Шлюзовая Уязвимость"):
Ссылка: Чтобы просмотреть эту консультацию CERT полностью, посетите
ftp://info.cert.org/pub/cert_advisories/CA-91%3A11.Ultrix.LAT-Telnet.gateway.vulnerability.
Первая проблема Telnet, которая встала перед средним человеком, была связана с дистрибутивом клиента Telnet NCSA для машин Macintosh и ПК. Здесь нет никакого недоразумения, клиентское приложение Telnet включало в себя FTP сервер. Дыра создавалась прежде всего от слабого понимания пользователями работы приложения. Как ясно сформулировано людьми из DDN:
Проблема была связана с опцией файла конфигурации, в которой можно было включить или отключить FTP сервер. Большинство пользователей предполагало, что, если инструкция, включающая сервер, не присутствует, то сервер не работает. Это было ошибкой. Опуская строку (или добавляя опцию ftp=yes), пользователь позволял доступ на чтение и запись неавторизованным личностям к файлам на вашем жёстком диске.
Я надеюсь, что это решит аргумент относительно того, мог ли пользователь ПК быть атакован из вне. Так много станет обсуждений в Usenet по этой проблеме. Неудача Telnet NCSA была только одна из многих ситуаций, в которых пользователь ПК или Mac мог быть атакован из пустоты. Так в зависимости от обстоятельств, средний пользователь дома на своём ПК может быть жертвой нападения из вне. Люди могут читать ваши файлы, удалять их, и т.д.
Более интересно, что даже сегодня, использование приложения Telnet NCSA несёт некоторый риск, даже если только позволить доступ к FTP серверу так называемым уполномоченным личностям. Если взломщик может получить от адресата допустимое имя пользователя и пароль (и взломщик, следовательно, уполномоченный пользователь), он может затем получить файл FTPPASS. Это аутентифицирующий файл, где сохранены имена и пароли пользователей. Зашифрованные пароли в этом файле легко взломать.
Имя пользователя в этом файле не сохраняется в зашифрованной форме (в действительности, некоторые программы шифруют имена пользователей). Пароль зашифрован, но схема шифрования очень плохо реализована. Например, если пароль меньше шести символов, для взлома потребуется всего несколько секунд. Фактически, взлом этих паролей настолько тривиален, что можно это сделать 14-ти строчной программой на Бейсике.
Ссылка: Программа на Бейсике, которая взламывает пароли, может быть найдена на
http://www.musa.it/gorgo/txt/NCSATelnetHack.txt.
Если Вы пользователь Mac или ПК, в настоящее время использующий Telnet NCSA (с FTP сервером), отвергните весь FTP доступ любому, кому Вы не доверяете. Если Вы не учтёте это предупреждение, то можете быть взломанным. Вообразите сценарий, когда единственный индивидуум в сети использует Telnet NCSA. Даже если остальная часть сети достаточно безопасна, в целом сеть не безопасна. Кроме того, приложение не выполняет регистрацию (в обычном смысле) и поэтому не остаётся никакого следа. Любая сеть, выполняющая это приложение, может быть атакована, заблокирована, или разрушена, и никто не сможет идентифицировать злоумышленника.
Наиболее интересная дыра Telnet, из когда-либо обнаруженных, тем не менее, связана с опцией передачи переменной окружения. Бюллетень DDN по этой дыре был зарегистрирован 20 ноября, 1995:
Много сайтов страдают от этой уязвимости. Чтобы понять проблему, Вы должны понять термин среда. В народной UNIX это, обычно, относится к среде оболочки (то есть какую оболочку Вы используете по умолчанию, какую эмуляцию терминала Вы используете, и т.д.).
ПРИМЕЧАНИЕ: Пользователи DOS/Windows могут наиболее легко понямать это, думая о некоторых из выражений в их файлах AUTOEXEC.BAT и CONFIG.SYS. Например, переменные установленные командой SET, как SET PATH=C:\;C:\WINDOWS; (переменная окружения PATH одна из нескольких, которая может быть определена в среде DOS). Эти инструкции определяют то, какой будет ваша среда программирования, когда Вы входите в командный режим. Некоторые общие переменные окружения, которые могут быть установлены таким способом, это оболочка, которую Вы используете, путь, часовой пояс, и т.д.
В UNIX Вы можете просматривать или изменять среду, используя команды setenv и printenv. Вот пример того, что можно увидеть при такой команде:
> setenv ignoreeof=10 HOSTNAME=samshacker.samshack.net LOGNAME=tr MINICOM=-c on MAIL=/spool/mail/samshack TERM=ansi HOSTTYPE=i386-linux PATH=/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:. HOME=/usr/local/etc/web-clients/samshacker/./ SHELL=/bin/bash LS_OPTIONS=--8bit --color=tty -F -T 0 PS1=\h:\w\$ PS2=> TAPE=/dev/nftape MANPATH=/usr/local/man:/usr/man/preformat:/usr/man:/usr/X11/man:/usr/openwin/man LESS=-MM OSTYPE=Linux OPENWINHOME=/usr/openwin SHLVL=2 BASH=/bin/bash LS_COLORS= _=/bin/csh PWD=/usr/local/etc/web-clients/samshacker/./ USER=tr HOST=samshack
Эта распечатка очень обширный вывод команды на машине, на которой был установлен виртуальный домен. Более управляемая (и более легко объясняемая) версия может быть получена на пустой оболочке машины. Вот вывод:
samshacker% /usr/ucb/printenv HOME=/home/hacker HZ=100 LOGNAME=hacker MAIL=/var/mail/hacker PATH=/usr/bin: SHELL=/sbin/sh TERM=ansi TZ=US/Pacific PWD=/home/hacker USER=hacker
Этот вывод со SPARCstation 10 на котором я установил ложную учётную запись оболочки (первый вывод был с машины Linux). Это очень упрощенная среда. Выражение PATH (строка 6) указывает только на /usr/bin. Практически, это непрактично, потому что в UNIX системе есть намного больше двоичных образов чем те, которые расположены в /usr/bin. Например, имеются двоичные образы, расположенные в /usr/sbin, /usr/bin/X11 и т.д. Вы можете видеть, например, даже данная команда (setenv) была выдана с абсолютным путём (/usr/ucb/setenv). Практически, я (за день или около того) устанавливаю намного более длинный путь, указывая на man страницы, двоичные образы, и возможно даже включаемые каталоги.
ПРИМЕЧАНИЕ: Выражение PATH работает почти так же, как и в DOS. Каталоги, которые Вы намереваетесь поместить в пути, должны быть ясно сформулированы в строке выражения PATH и отделены двоеточиями (вместо точек с запятой). Ясно сформулировав это в строке PATH, Вы даёте пользователю обращаться к командам в этих каталогах (независимо от того, в каком каталоге пользователь расположен в настоящее время).
Другие переменные в предшествующих выражениях включают HOME, MAIL, SHELL и TERM. TERM, одна из наиболее важных переменных, которая выражает тип эмуляции терминала, который Вы будете использовать. Поскольку не все читатели знают, что такое эмуляция терминала, я хочу быстро объяснить это.
Годы назад, большинство серверов были мэинфреймами. В те дни пользователи не имели мощные ПК соединённые с мэинфреймом; они имели терминалы, которые были (обычно) машинами без жёстких дисков. Это были экраны, объединённые с клавиатурами. Позади терминалов был ряд разъёмов, которые предлагали различные методы подключения. Один популярный метод был поверхностное последовательное подключение (более просто: прямой интерфейсу последовательный к последовательному). Другие терминалы могли быть жёстко подключены к Ethernet.
В любом случае, эти терминалы имели очень небольшие функциональные возможности (по крайней мере по сравнению со средним ПК). На основной плате такого терминала была маленькая часть памяти и программируемого оборудования (программное обеспечение, аппаратно включённое непосредственно в плату). Это программируемое оборудование предоставляла пользователю несколько опций. Например, можно было устанавливать скорость и тип подключения, потребность в локальном эхе, и т.д. Иногда, были опции, чтобы установить тип принтера, который мог бы использоваться, или даже с какого порта должны послаться данные.
СОВЕТ: Такие терминалы всё ещё продаются некоторым группам новостей Usenet. Если Вы студент с ограниченными фондами, и Вам предоставили некоторую форму Ethernet или даже последовательное подключение с сервером вашего колледжа, и если эта учётная запись сервера - учётная запись оболочки, получите терминал. За $25-40 Вы можете получить высокоскоростной доступ к Internet. Правда, Вы не можете обычно сохранять материалы на диск, но можете печатать тот, который в настоящее время на экране. Вы не поверите, как быстро экран модифицируется. Это абсолютно идеальная ситуация для Релейного Разговора по Internet (IRC). Эти машины маленькие, дешёвые и быстрые.
Два лучше всего известных терминала были Tektronix 4010 и VT100 (также IBM 3270, который немного отличен от них). Каждый имел набор символов и строк на экране, которые могли отображаться. Фактически, большинство терминалов обычно имели две установки. Поскольку терминалы стали довольно модными, можно было даже устанавливать количество столбцов и, в конечном счёте, графику (Tektronix был ориентирован на графику).
Поскольку эти терминалы стали стандартным методом связи с мэинфреймами, они также просочились в мир UNIX. Также, все операционные системы UNIX имеют отображения клавиатуры и экрана для терминалов. Отображения это описания установок экрана и клавиатуры (например, сколько строк и столбцов на экране или, что более важно, какие последовательности Ctrl клавиш представляют специальные символы). Они требуются, потому что некоторые терминалы используют больше клавиш, чем предлагает стандартная клавиатура ПК или Mac. В дополнение к постоянной клавиатуре пишущей машинки и функциональным клавишам F, могут иметься клавиши P, которые выполняют специальные действия, включая активацию меню и передвижения экранного курсора в базах данных. Чтобы восполнить это на ПК, Mac, или даже на некоторых клавиатурах UNIX, определены Esc или Ctrl последовательности. Это комбинации нажатий клавиш, которые равнозначны клавише P. Эти назначения клавиш называются привязки клавиш, которые являются инструкциями, сделанными в программе, кодирующими что случается, если выполнена та или иная ключевая комбинация. Привязки клавиш это основная часть программирования, особенно в C, когда Вы предлагаете полу графический интерфейс (например, когда Вы используете известные TurboVision библиотеки Borland, чтобы создать раскрывающиеся меню в DOS приложении).
В программе можно обычно определять привязки клавиш (по крайней мере, в хорошо написанной). Это даёт пользователю контроль прикладного уровня над тем, какие клавиши что делают. Например, возможно пользователь может установить привязку клавиши Ctrl плюс символ F, чтобы выполнять разнообразные функции. Некоторые специализированные приложения фактически просят, чтобы пользователь сделал так перед первым запуском программы. Есть одна такая программа, freeware редактор для UNIX, написанный в Германии, который позволяет Вам полностью переназначить клавиатуру.
В UNIX, терминальные отображения обычно сохраняются в файле termcap. Termcap библиотека, по сообщениям поставляемая с Berkeley UNIX, является очень важным добавлением к системе. Без неё многие машины не смогли бы хорошо связываться друг с другом. Например, если Вы выполните новую установку операционной системы Linux и не измените переменную TERM, она будет установлено в Linux. Если Вы затем посылаете telnet запрос к SPARCstation (или другой машине, которая так же имеет значение по умолчанию конфигурации TERM), то не сможете очистить экран известной командой clear. Это так, потому что две установки эмуляции терминала несовместимы. Кроме того, если Вы попробуете выполнить программу типа PINE, которая полагается на совместимые типы терминалов, программа выйдет с ошибкой, сообщая, что терминал не поддерживается. (SysV системы традиционно используют terminfo в противоположность termcap.)
ПРЕДОСТЕРЕЖЕНИЕ: Многие дистрибутивы UNIX имеют законченные termcap списки, которые иногда содержат сотни эмуляций терминала. Если Вы плохо знакомы с UNIX и имеете идею изменить termcap, будьте чрезвычайно осторожны. Вы можете получить причудливые результаты. В некоторых случаях текст, который когда-то был приятно отформатирован, может казаться странным, бессвязным, разрозненным блоком слов, которые значительной степени неразборчивы. Изучите man страницу перед игрой с файлом termcap.
Может быть установлено много различных переменных окружения. Эти переменные могут строго влиять на то, как удалённая машина получает, обрабатывает и поддерживает ваше удалённое Telnet подключение. Таким образом, протокол Telnet был разработан, чтобы позволить принятие некоторых переменных окружения во время связи. Как объяснено в RFC 1408:
Ссылка: Чтобы просмотреть RFC 1408 полностью, посетите
http://sunsite.auc.dk/RFC/rfc/rfc1408.html.
Недавняя дыра в безопасности Telnet была основана на возможности сервера Telnet получать, отвечать и разрешать принятие этих переменных окружения. Поскольку эта опция была настолько очевидна в UNIX системе, невероятное число платформ были уязвимы этому нападению.
Эта уязвимость более общая, чем можно было бы ожидать. В довольно увлекательном отчёте одна фирма, Novatech, послала результаты фактической ревизии безопасности сети с 13 узлами. В нём фигурирует уязвимость Telnet, также как и 138 других дыр. Наиболее удивительно то, что сайт уже был оценен как имеющий чистое здоровье, завершённое брандмауэром. Как отмечает выборка отчёта о ревизии Novatech:
Ссылка: Для тех, кто имеют "давайте ждать и смотреть" отношение к безопасности, я предлагаю посетить немедленно этот сайт и просмотреть результаты. Они удивительны. Смотрите результаты ревизии на
http://www.novatech.net.au/sample.htm.
Строка, которая показывает уязвимость опции среды Telnet, выглядит следующим образом:
Dynamic Linker Telnet Vulnerability [High Risk]2
Эта строка сообщает, что уязвимость Telnet имеет высокую категорию риска (в ревизии, цитируемой предварительно, эта уязвимость была найдена на двух узлах в одной подсети). [High Risk]2 относится к уровню риска, который дыра представляет. Эта уязвимость чрезвычайно высокого риска. Помните, она была найдена на узле с современным брандмауэром!
Чтобы понять метод, Вы должны понять точно, какие опции могут быть переданы от клиента серверу. Одна из них включает принятие заказной libc.
ПРИМЕЧАНИЕ: libc это стандартная библиотека для C. Полный дистрибутив libc обычно содержит включаемые и заголовочные файлы для использования в программировании на C. Все разновидности UNIX имеют (или должны иметь) установленной эту библиотеку. Она необходима для компилирования программ, написанных на языке программирования C.
Как отмечает Sam Hartman из MIT в своей статье "Telnet Vulnerability: Shared Libraries" ("Уязвимость Telnet: Общедоступные Библиотеки"):
Ссылка: Найдите статью Hartman'а в Web на
http://geek-girl.com/bugtraq/1995_4/0032.html.
Передавая опция среды LD_LIBRARY_PATH на сервер, взломщик может добавлять к его пути поиска файлов заказной каталог (и следовательно заказную библиотеку). Это может изменить процесс динамической связи, существенно увеличивая возможности компромитизации корня.
ПРИМЕЧАНИЕ: Hartman отметил, что, если адресат использовал Kerberos-знающий telnetd, только пользователи с допустимой учётной записью на удалённой машине могут фактически осуществлять нападение. Я предполагаю, однако, что большинство машин не используют такие средства безопасности Telnet.
Одно интересное примечание об этой дыре: Было определено, что можно идентифицировать сессии Telnet, в которых переменные окружения были переданы выполнением команды ps. Однако, один индивидуум (Larry Doolittle) определил, что на некоторых разновидностях UNIX (особенно Linux) one has to be root to ID those processes. В ответ на отчет Hartman'а Doolittle рекомендует:
Ссылка: Найдите статью Larry Doolittle'а в Web на
http://geek-girl.com/bugtraq/1995_4/0042.html.
Вот заплаты для различных дистрибутивов telnetd:
ПРИМЕЧАНИЕ: Хотя для этой проблемы были выпущены заплаты, некоторые другие связанные с Telnet модули и программы могут всё ещё вызывать проблемы. Уже в феврале 1997, in.telnetsnoopd сообщала об уязвимости в передаче LD_PRELOAD на некоторых платформах, включая Linux. Для этой проблемы по сообщениям есть заплата, и она была передана на ftp://sunsite.unc.edu.
Разнообразные Telnet имеют не особенно безопасный протокол. Можно легко подслушивать сессии Telnet. Фактически, имеется утилита, названная tty шпион, предназначенный для этой цели. Как описывает её автор, Carl Declerck:
Ссылка: README Declerck'а для ttysnoop 0.12 (альфа) может быть найден в Web на
http://ion.apana.org.au/pub/linux/sources/admin/ttysnoop-0.12.README
ПРИМЕЧАНИЕ: ttysnoop не просто специфичный для Telnet шпион; он подглядывает за телетайпом, не за протокол Telnet. Сетевой перехватчик подобный sniffit может также использоваться (и вероятно более подходящ) для перехвата протокола Telnet.
Сессии Telnet также особенно чувствительны. Одна причина состоит в том, что эти сессии часто проводятся по образцу прыжков по островам. То есть пользователь может посылать Telnet запрос к одной сети, чтобы привести в порядок свою Web страницу. Оттуда пользователь может посылать Telnet запрос другой машине, дальше следующей машине и так далее. Если взломщик может подглядывать за такой сессией, он может получить идентификаторы и пароли входа в другие системы.
Нет; это прежде всего благодаря недостатку образования. Нападение на опции среды, описанное предварительно, весьма эффективно на многих системах в пустоте. Это так даже притом, что консультации о нападении с готовностью доступны в Internet.
Telnet интересный протокол. Как объяснено ранее, можно изучить много всего, используя Telnet. Например, Вы можете получить версию работающей операционной системы. Большинство дистрибутивов UNIX сообщает эту информацию при подключении. Сообщено, по крайней мере, одним авторитетным источником, что различные сканеры используют информацию при соединении, чтобы идентифицировать тип системы (SATAN один из таких сканеров). Операционная система может обычно быть определена нападением на любой из этих портов:
ПРИМЕЧАНИЕ: Хотя я перечислил только пять портов, можно соединяться с большинством TCP/IP портов, инициализируя сессию Telnet. Некоторые из этих портов останутся в полностью пассивном состоянии, в то время как подключение активно, и пользователь ничего не будет видеть. Например, это так с портом 80 (HTTP). Однако Вы можете выдавать совершенно допустимые запросы к порту 80, используя Telnet, и если эти запросы допустимы, порт 80 ответит. (Запрос не обязательно должен быть допустимым. Выдача ошибочной интрукции GET выявит живой ответ от Web сервера, если запрос достаточно уродлив.)
В известном теперь документе "Improving the Security of Your Site by Breaking Into It" ("Улучшении Безопасность Вашего Сайта Вторжением В Него"), Dan Farmer и Wietse Venema указывают порты, которые могут быть атакованы. Специально, они адресуют проблему порта 6000:
Ссылка: "Improving the Security of Your Site by Breaking Into It" может быть найден в Web на
http://stos-www.cit.cornell.edu/Mark_html/Satan_html/docs/admin_guide_to_cracking.html
В документе Farmer и Venema много нападений осуществлялись только с Telnet или вместе с другими программами. Одно такое нападение включает X терминал:
Методика X терминала Farmer-Venema использует комбинацию rsh и Telnet, чтобы произвести скоординированное нападение. Методика включает накопление нескольких команд. Взломщик использует rsh, чтобы соединиться с X терминалом и вызвать клиентскую программу Telnet X терминала. Наконец, вывод переадресовывается на локальный терминал взломщика по средствам определения опции или переменной DISPLAY.
Другая интересная вещь, для которой может использоваться Telnet, это возможность немедленного определения, является ли адресат реальным или виртуальным доменом (это может быть сделано по средствам других методов, но ни один не выполняет эту функцию так быстро). Это может помочь взломщику в точном определении, какую машину он должен взломать, чтобы достигнуть ваших ресурсов или, более точно, какую машину он использует во взломе.
При нормальных обстоятельствах, реальный домен это домен, который был зарегистрирован в InterNIC, а также имеет свой собственный выделенный сервер. Где-нибудь в пустоте есть машина с постоянным IP адресом, и она постоянно соединена с Internet через 28.8Kbps модем, ISDN, 56Kbps модем, передачу кадра, T1, T3, ATM, или возможно, если владелец не экономит расходы, SONET. Также, когда Вы посылаете Telnet запрос к такому реальному сайту, то достигаете этой машины и никакой другой.
Виртуальные домены, однако, являются просто каталогами на реальном сервере, связанном псевдонимом с конкретным доменным именем. То есть Вы платите некоторому ISP, чтобы зарегистрировать ваше доменное имя и создать каталог на его диске, где будет ваш виртуальный домен. Эта методика позволяет ваша_компания.com подменять реальный сервер. Таким образом, когда пользователи указывают своим броузерам на www.ваша_компания.com, они достигают сервера ISP. Сервер ISP переадресовывает запрос на подключение к вашему каталогу на сервере. Эта схема виртуального домена популярна по нескольким причинам, включая стоимость. Она охраняет вашу компанию от неприятности установки реального сервера и поэтому устраняет некоторые из этих расходов:
В основном, Вы платите один раз (и затем ежемесячно) и ISP обрабатывают всё. Взломщикам это может быть важно. Например, если взломщики собираются взломать ваш домен, не определяя, является ли ваша машина истинно сервером, они могут получить неприятности. Они думают, что взламывают некоторую небольшую машину в вашем офисе, когда фактически, они собираются напасть на большого, известного сетевого провайдера.
Telnet немедленно показывает состояние вашего сервера. Когда взломщик инициализирует Telnet подключение к ваша_компания.com (и при соединении видит имя машины, как узла в некоторой другой, большой сети), он немедленно знает, что ваш адрес виртуальный домен.
Кроме того, Telnet может использоваться для других низких целей. Одна из популярных атак это атака решение "в лоб". Я не уверен, почему нападения в лоб настолько популярны среди молодых взломщиков; почти все серверы в наши дни осуществляют некоторую форму регистрации. Однако методика выжила в 1990-ых. Эти нападения чаще всего инициализируются, используя клиенты Telnet, которые имеют собственный встроенный язык создания сценариев. Tera Term одно такое приложение.
Tera Term имеет язык, который позволяет Вам автоматизировать Telnet сессии. Этот язык может использоваться, чтобы создать сценарии, которые могут определять допустимые имена пользователей в системе, которая отказывается выдавать информацию через запросы sendmail-expn или finger. Версии Telnet показывают эту информацию разнообразными путями. Например, если выдать поддельное имя пользователя, подключение будет оборвано. Однако, если дать допустимое имя пользователя, будет выдана новая приглашение login:.
Ссылка: Tera Term может быть найдно в Web на
http://tucows.phx.cox.com/files/ttermv13.zip.
Кроме того, Telnet это прекрасный инструмент для быстрого определения, является ли конкретный порт открытым или выполняет ли сервер конкретную службу. Telnet может также использоваться как оружие в нападениях отказ в обслуживании. Например, посылая мусор к некоторым портам на NT Web сервере под IIS может привести к 100 процентой загрузке процессора. Инициализизация сессии Telnet к другим портам на NT Web сервере может привести машину к зависанию или останову. Это особенно так при выдаче запроса на Telnet подключение к порту 135.
Ссылка: Исправление этой проблемы, выпущенное Microsoft, может быть найдено на
ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt40/hotfixes-postS
Можно также привести к отказу Информационный Сервер Internet Microsoft посылая Telnet запрос к порту 80 и выдавая запрос GET.../.... По сообщениям, однако, эта проблема была исправлена в Сервисном Пакете Microsoft Windows NT 2 для Windows NT 4.0. Если Вы не имеете этого заплаты/сервисного пакета, получаете его. Хорошее исправление этой и других проблем может быть найдено в сообщении Denial of Service Info, посланного Chris Klaus из Систем Безопасности Internet. В нём Klaus пишет:
Ссылка: Посетите собщение Denial of Service Info на
http://geek-girl.com/bugtraq/1996_2/0052.html.
ПРИМЕЧАНИЕ: Эта уязвимость была только в Информационном Сервере Internet 2.0 сервера Всемирной Сети (HTTP). Более поздние версии IIS по сообщениям чисты.
Наконец, Telnet часто используется, чтобы генерировать fakemail и fakenews. Спаммеры часто используют эту опцию вместо использования регулярных средств посылки сообщений в Usenet. Имеются некоторые опции, которые могут быть установлены, и разрешающие спаммерам избегать, по крайней мере, некоторых экранов, созданных уничтожающих спам роботами в сети Usenet.
Telnet очень универсальный протокол и, с некоторым усилием, он может быть сделан безопасным. (Я лично одобряю SSH как замену ему, поскольку он предотвращает от подглядывающих сессий Telnet.) Однако, Telnet не всегда безопасен вне машины. Если Вы используете старое программное обеспечение (перед 1997), проверьте были ли установлены соответствующие заплаты.
Telnet может также использоваться в разнообразных нападениях или другом сборе информацию от удалённого узла (некоторые из них обсуждаются в этой главе). Ко времени, когда эта книга будет выпущена, всплывут намного больше методов Telnet нападения. Если Вы выполняете сеть и намереваетесь предоставить вашим пользователям доступ к Telnet, остерегайтесь. Это особенно так на новых Telnet серверах. Эти новые серверы могут иметь ошибки, которые ещё не были обнаружены. И, так как Telnet настолько интерактивен и предлагает пользователю так много мощи в выполнении команд на удалённых машинах, что любая дыра в дистрибутиве Telnet критическая. Он в этом отношении стоит в той же самой категории, что и FTP или HTTP (или возможно даже выше).
Sendmail Bug Exploits List (Список Используемых Ошибок Sendmail). Объяснение методов нападения на sendmail. Некоторые из этих методов используют Telnet, как основное приложение.
Improving the Security of Your Site by Breaking Into It (Улучшение Безопасности Вашего Сайта Вторжением в Него). Dan Farmer и Wietse Venema.
The Telnet Protocol Specification (RFC 854) (Спецификация Протокола Telnet (RFC 854)). J. Postel и J. Reynolds. Май 1983.
The Telnet Environment Option (RFC 1408) (Опция Среды Telnet (RFC 1408)). D. Borman, Редактор. Cray Research, Inc. Январь 1993.
Telnet Environment Option (RFC 1572). (Опция Среды Telnet (RFC 1572)). S. Alexander.
Telnet Authentication: SPX (RFC 1412) (Аутентификация Telnet: SPX (RFC 1412)). K. Alagappan.
Telnet Remote Flow Control Option. (RFC 1372) (Удалённая Опция Управления Потоком Telnet. (RFC 1372)). C. Hedrick и D. Borman.
Telnet Linemode Option (RFC 1184) (Опция Линейного Режима Telnet (RFC 1184).). D.A. Borman.
The Q Method of Implementing Telnet Option Negotiation (RFC 1143) (Q Метод Реализации Переговорной Опции Telnet (RFC 1143)). D.J. Bernstein.
Telnet X Display Location Option (RFC 1096) (Опция Местоположения X Дисплея Telnet (RFC 1096)). G.A. Marcy.
Telnet Binary Transmission (RFC 856) (Двоичная Передача Telnet (RFC 856)). J. Postel и J.K. Reynolds.
Remote User Telnet Service (RFC 818) (Служба Удалённого Пользователя Telnet (RFC 818).). J. Postel.
Discussion of Telnet Protocol (RFC 139) (Обсуждение Протокола Telnet (RFC 139)). T.C. O'Sullivan. К сожалению, этот RFC больше не доступен в онлайне.
First Cut at a Proposed Telnet Protocol (RFC 97) (Первый Разоез Предложенного Протокола Telnet (RFC 97)). J.T. Melvin и R.W. Watson. К сожалению, этот RFC больше не доступен в онлайне.
The Telnet Authentication Option (Опция Аутентификации Telnet). Internet Проект Инженерной Оперативной Группы Internet. Группа Telnet Работ. D. Borman, Редактор. Cray Research, Inc. Февраль 1991.
Telnet Authentication: Kerberos Version 4 (RFC 1411) (Аутентификация Telnet: Kerberos Версия 4 (RFC 1411)). D. Borman, Редактор. Cray Research, Inc. Январь 1993.
STEL: Secure Telnet (STEL: Безопасный Telnet). Доступный для шифрования Telnet. David Vincenzetti, Stefano Taino и Fabio Bolognesi.
Session-Layer Encryption (Шифрование Сеансового Уровня). Matt Blaze и Steve Bellovin. Слушания Симпозиума Безопасности Usenix, июнь 1995.
Attaching Non-TCP-IP Devices with Telnet (Присоединение не TCP-IP Устройств с Telnet). Stefan C. Johnson. Системная Администрация: Журнал для Администраторов UNIX Систем. Июнь 1996.
Secure RPC Authentication (SRA) for Telnet and FTP (Безопасная Аутентификация RPC (SRA) для Telnet и FTP). David K. Hess, David R. Safford и Douglas Lee Schales. Слушания Четвёртого Симпозиума Безопасности Usenix, Суперкомпьютерный Центр, Техасский Университет A&M, 1993.
Internetworking with TCP/IP Vol. 1: Principles, Protocols and Architecture (Межсетевая Организация с TCP/IP Том 1: Принципы, Протоколы и Архитектура). Douglas Comer. Prentice Hall. 1991.
Terminal Hopping (Прыгающий Терминал). Karen Bannan. Пользователь Internet Журнала ПК CRT, Версия 1.1.4 (01/30/97).
Telnet & Terminal Emulation (Telnet и Эмуляция Терминала). Пользователь Internet Журнала ПК. Январь 30, 1997.
EFF's (Extended) Guide to the Internet--Telnet ((Расширенное) Руководство EFF по Internet Telnet). Adam Gaffin. Mining the Net, Часть I.
Macmillan Computer Publishing.
Все мессаги сюда:yanich@inbox.ru |