=[ x25-box.com ]=

hijacking

,g@S$$$$$S@g, srb ;22222iiiiii;;;;
J$$┘^````^┘$$$i $S@ i$$$$$$$$$$$$$$$ x25 zine. issue II. april 16/04/2002
:$$[ i$$2 $$$ 2$$$$$$$$$$$$$$$ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
`^^" ,$$$' $$$ $$$$$$$$$$$$$$$$
,g$$$┘`, $$$ SSSSSSSSSSSS$╡$$
,g$$$┘`,g$$ $$$qqqqqqqqqqqq╖, ╘$ X.25 protocol hijacking
,g$$$┘`,g$$$$$ $$$$$$$$$$$$$$$$$$,` --------------------------------
J$$┘`,g$$$$$$$$ `$$$ free_hunt
i$2; $$$$$$$$$$$ %%%%%%%%%%%%%%%$$$7
```` """"""""""" $$$$$$$$$$$$$$$7╛'
2@%/
$$$2 Часть I
$$$2 Получение доступа к сетевому уровню х.25
$$$2
$$$2 В этой статье,речь пойдет не об ошибках в софте, обслуживающем х.25 про-
$$$i токол, как некоторые могли бы подумать прочитав название статьи, а о са-
$$$i мом х.25 протоколе,и некоторых идеях,относительно осуществления атак се-
$$$; тевого уровня на Х.25 сети.
$$$; Х.25 сети считаются безопасными,не только благодаря своей структуре,но и
$$$. потому что с PAD-ов (через которые осуществляются входы в х.25 сети) не-
$$$. возможно получить доступ к сетевому уровню, что не дает возможности соз-
$$$ дания х.25 пакетов вручную,т.к.за нас это делает PAD(сборщик и разборщик
$$$ пакетов"Packet Assembler/Disassembler").
$$$ Именно по этому,львиную долю атак,которые существуют,в IP сетях,и связа-
$$$ ны с самостоятельной генерацией IP заголовков, просто не возможно реали-
$$$ зовать в х.25 сетях,т.к.через PAD предоставляется доступ только на уров-
$$$ не приложений.
```
,,,
$$$ Однако,PAD это всего лишь программа,служащая,в конечном итоге,для соеди-
$$$ нения по х.25 протоколу,а раз это программа, то она на чем-то должна вы-
$$$ полняться, и, чаще всего, на роутерах.Cпецифичных,типа "motorolla VanGu-
$$$ ard",или широко распространенных,например CISCO.Также,PAD-ы встречаются,
$$$ но значительно меньше,на *nix системах,и NT/2k машинах.То есть,достаточ-
$$$ но получить полные права на каком-либо хосте(но не на роутере) с работа-
$$$ ющим PAD-ом.Этим мы сможем обойти PAD и получить доступ к сетевому уров-
$$$ ню х.25 протокола.Однако на роутере,получение максимальных прав, не поз-
$$$ волит нам самим создавать х.25 пакеты,т.к.для этого нужно устанавливать\
$$$ модифицировать программы,что на роутерах - "железках", не возможно.
```
,,,
$$$ На практике же, *nix или тем более NT/2k с PAD-ом,встречаются очень ред-
$$$ ко,а учитывая тот факт, что все они,как правило хорошо защищены,и к тому
$$$ же являются коммерческими, что еще более усложняет их использование (так
$$$ как требуется работать с х.25 сокетом , который на коммерческих системах
$$$ плохо документирован, а исходные коды не доступны, что очень сильно зат-
$$$ рудняется написание программ, для доступа к сетевому уровню).
```
,,,
$$$ С роутерами,казалось бы,дело еще хуже,так как там,вообще нет возможности
$$$ что-нибудь написать самому для использования сетевого уровня х.25 прото-
$$$ кола. Но, как обычно бывает,любые ограничения можно обойти. Изучая Cisco
$$$ роутеры,вы наверняка можете натолкнуться на открытый 1998 порт. Заглянув
$$$ в RFC, мы узнаем, что это, не что иное как IANA зарегистрированный ком-
$$$ панией Cisco, XOT порт. Для чего нужен ХOТ? Как следует из названия ком-
$$$ Х.25 по TCP,т.е. инкапсуляция х.25 в TCP.Этот порт,используется для сое-
$$$ с целью передачи х.25 пакетов по TCP/IP сетям . Чтоб узнать подробнее, я
$$$ рекомендую прочитать rfc1613, или мой его перевод,который вы можете най-
$$$ ти в бонусе x25zine#1.
```
,,,
$$$ Итак , для еще не уловивших идею , поясню. Cisco роутер слушает свой XOT
$$$ порт; после соединения , должен поступить TCP пакет, в котором будет XOT
$$$ заголовок и далее непосредственно X.25 пакет.Придти эти данные должны от
$$$ другого роутера.Пара этих роутеров и образует виртуальную цепь, по кото-
$$$ рой ходят X.25 пакеты инкапсулированные в TCP.Сделать X.25 пакет самому,
$$$ нет возможности ни на первом, ни на втором роутере. НО ! А что, если по-
$$$ пытаться нам самим стать вторым роутером? Эврика !!! Полностью эмулируя
$$$ второй Cisco роутер, мы сможем САМИ составлять х.25 пакеты,и как требует
$$$ rfc1613 сформировать для них XOT заголовок ... и посылать по установлен-
$$$ ному TCP соединению на Cisco роутер, который проверив их на правильность
$$$ (существование основных полей и.т.п.) отправит дальше,в х.25 сеть, к ко-
$$$ торой подключен роутер!
```
,,,
$$$ Нормальная работа через XOT порт.
$$$
$$$ (х.25 сетевой уровень не доступен, т.к.на cisco мы можем выполнять толь-
$$$ ко команды pad, x28, которые все делают за нас)
$$$
```
________ ________
<________ / \<___________________>/ \____________>x.25 сеть
x.25 сеть | cisco | < --- x.25 ---> | cisco |
| <___________________> | Network layer
___________ \__ __/ TCP \__ __/ ____________
/ \ / \
| PAD, | | PAD, | Application
| x28 | | x28 | layer
___________ \_____/ \_____/ ____________

,,,
$$$
$$$ Доступ к х.25 сетевому уровню.
$$$ (взломщик формирует сам х.25 пакет, который посылает по TCP соединению)
$$$
``` ________ ________
<________ / \<___________________> | |
x.25 сеть | cisco | < --- x.25 ---> | |intruder|
| <___________________> | box | Network layer
___________ \__ __/ TCP | | ____________
/ \ | |
| PAD, | | | Application
| x28 | | | layer
___________ \_____/ \______/ ____________

,,,
$$$ Все. Элегантно и просто.Не нужно никакой возни с выискиванием Unix box-a
$$$ с Х.25 интерфейсом, с получением на нем высших привилегий, с мучительным
$$$ перечитыванием той скудной документации по х.25 сокету, и стряпанием,че-
$$$ рез черт знает что делающие вызовы , х.25 пакета. Достаточно найти Cisco
$$$ роутер,с открытым XOT портом,и подключенным к какой-нибудь х25 сети,коих
$$$ много встречается и в Интернете , и просто в интранетах доступных через
$$$ х.25 сети.Но и тут как и везде есть подводные камни. Как выяснилось,хотя
$$$ ХОТ порт и открыт по умолчанию, и админы забывают, и не пишут соответст-
$$$ вующее правило в ACL, но для того чтобы была возможность отправлять х.25
$$$ пакеты через ХОТ в х.25 сеть,нужно явно прописывать интерфейс на роутере
$$$ ,на который будут передаваться пакеты с ХОТ порта. Вот как это делается:
```
x25 route ^ interface Serial0
,,,
$$$ где Serial0 , интерфейс подключенный к х.25 сети. То есть, для этого ну-
$$$ жен level 15 access (enable) на Cisco, чтоб войти в EXEC режим , и доба-
$$$ вить эту строчку к конфигурации роутера.
```
,,,
$$$ В общем инженеры Cisco,как всегда оказались на высоте. Но все равно,най-
$$$ ти где-нибудь Cisco,которая смотрит одним интерфейсом в х.25 сеть,а дру-
$$$ гим в IP,задача вполне реальная и выполнимая,даже учитывая то, что кроме
$$$ этого,нужен еще и полный доступ к этому роутеру.Во общем дерзайте,читай-
$$$ те х.25 recomendation(http://www.x25us.net/x25/x25/x25.ps.gz) и rfc1613,
$$$ находите нужную cisco и вперед ! Как было написано в каком-то FAQ-е по
$$$ SPRINTNETу:"сети х.25 считаются самыми безопасными еще и потому,что дос-
$$$ туп осуществляется через PADы,которые не дают доступа к сетевому уровню.
$$$ Из-за чего огромное кол-во атак связанных с ручным формированием IP за-
$$$ головков не реализуемы".
$$$ Посмотрим, насколько х.25 сети останутся безопасными, если мы будем сами
```
,,,
$$$ Часть II
$$$
$$$ Вымышленные и практические уязвимости х.25 протокола
$$$
$$$ Рассмотрим,вкратце,как происходит работа в х.25 сети.Сеть х.25 в отличии
$$$ от интернета централизованна, ее работа происходит прозрачно для пользо-
$$$ вателя. Сама сеть состоит из коммутационных пунктов (DCE), которые и от-
$$$ вечают за доставку х.25 пакетов адресату,при этом,так как сеть централи-
$$$ зованная, каждый из них "знает" куда послать пакет чтобы он достиг ад-
$$$ ресата.К DCE может быть подключено DTE устройство,на котором и находить-
$$$ ся PAD , взаимодействие с PADом происходит в соответствии с протоколом
$$$ х.28.А PAD взаимодействует с DTE посредством протокола х.29.DTE и DCE ,а
$$$ также DCE< ->DCE,как раз и общаются по протоколу х.25.Функции и настройки
$$$ PAD-a прописаны в протоколе х.3.
$$$ Пакеты в х.25 сети разделются по типам: "Call setup / clearing", "Data &
$$$ Interrupt" , "Flow control and Reset" , "Restart" , "Diagnostic","Regis-
$$$ tration". Но не зависимо от типа , в каждом х.25 пакете должны присутст-
$$$ вовать поля GFI (General Format Identificator) , LCN (Logical Channel
$$$ Number) и PTI(Packet Type Identificator).Также, в х.25 сети большое зна-
$$$ чение имеет состояние логического канала.
```
,,,
$$$ Проследим, как происходит соединение в х.25 сети.Для инициации соедине-
$$$ ния необходимо послать х.25 пакет запрос вызова , Call request packet, в
$$$ вызывающего, записанных в едином для всех х.25 сетей формате, определяе-
$$$ мом х.121 рекомендацией. Также в нем указывается LCN из числа свободных,
$$$ то есть находящихся в состоянии p1 (packet layer ready). После посылки
$$$ пакета "запрос вызова" (Call request), LCN переходит в состояние p2 (DTE
$$$ waiting).В котором ожидается ответ от вызываемого адреса.В случае успеш-
$$$ ного соединения, то есть по приходу пакета "вызов установлен" (call con-
$$$ nected), LCN переходит в состояние d1(flow control ready) , которое ука-
$$$ зывает на то , что соединение установлено и можно передавать данные . В
$$$ случае невозможности установить соединение , приходит пакет "завершение
$$$ вызова", с кодом ошибки.С первым DATA пакетом, этот LCN переходит в сос-
$$$ тояние p4 "data transfer" , при котором и происходит дальнейшая передача
$$$ данных пока одна из сторон не завершит соединение или не наступит тайма-
$$$ ут.
```
,,,
$$$ Вот так , вкратце, работает х.25 протокол, рассмотрим некоторые атаки на
$$$ него. Многим , действительно интересующимися х.25 сетями, известен файл
$$$ "X25_Protocol_Vulnerabilities.txt" от некого kp, как там написано. В ко-
$$$ тором описаны некоторые атаки на х.25 сетевой уровень. Рассмотрим их.
```
,,,
$$$ "1. (Not)SYN Flooding"
$$$
$$$ При передаче данных , сторона которая не в состоянии обработать приходя-
$$$ щие данные, посылает пакет RNR (Receive - Not Ready),для приостоновления
$$$ потока данных,причем все пакет которые придут после этого,просто уничто-
$$$ жаются,до получения RR пакета.После того как все данные обработались,по-
$$$ сылается пакет RR (Receive - Ready) , и передача данных продолжается в
$$$ обычном режиме.
$$$ Рассмотрим следующий сценарий , нода А свободно общается с нодой Б , по
$$$ принципу описанному выше, нода Х решает помешать им, посылая RNR пакет к
$$$ ноде А, с исходным адресом Б.А немедленно перестает посылать данные, а Б
$$$ продолжает нормально работать,и не получая в ответ пакетов подтверждения
$$$ доставки,ждет и ждет и ждет.Вскоре,должен наступить таймаут и соединение
$$$ должно быть разорвано, чтоб освободить LCN. Однако нет таймаутов на сос-
$$$ тояние получения данных,поэтому А будет бесконечно долго ждать пакет RR
$$$ от Б. Повторив это много раз, не останется не одного свободного LCN пока
$$$ нода не будет выключена\перезагружена.
```
,,,
$$$ Если внимательно вдуматься в описание этой уязвимости, то легко понять,
$$$ что она не может быть осуществлена. Во-первых , спуфинг в х.25 сетях не
$$$ возможен по определению. Объясню, адреса систем используются, только при
$$$ установлении соединения, в пакете "запрос вызова", далее устанавливается
$$$ некий туннель из DCE и определенных LCN на каждом из них по пути следо-
$$$ вания пакета. В итоге, вместо адреса, во всех остальных пакетах , мы ис-
$$$ пользуем LCN который как бы "привязан" к ноде назначения , и без вмеша-
$$$ тельства во внутренную,скрытую, структуру сети изменить эту привязку не-
$$$ льзя. Кроме этого, послать данные с ноды Х, вряд ли удастся , потому что
$$$ посылая RNR пакет , на LCN в состоянии при котором он ждет пакет "запрос
$$$ вызова", мы получим ошибку состояний и нечего более.А если устанавливать
$$$ предварительно соединение, то послав RNR пакет мы остановим прием данных
$$$ только к себе и ни к кому другому. И еще, утверждение что, нет таймаутов
$$$ на состояние получения данных,весьма спорно и вряд ли истинно,по причине
$$$ которая будет изложена чуть ниже.
```
,,,
$$$ "2. Stream Termination"
$$$
$$$ Очень простое - посылаем измененный пакет к получающей ноде с M (More)
$$$ bit равным 0. Это означает,что данный пакет не последний и за ним должен
$$$ следовать еще пакет с данными, для последующей сборки их воедино . Как
$$$ результат, по таймауту, логический канал освободиться, а посылающая нода
$$$ так и будет посылать данные в никуда.
$$$ Эта уязвимость протокола, так же не существует в действительности, по же
$$$ причине. Послать пакет от имени другой ноды не удастся. Кроме того, той
$$$ если не делать спуфинг, а просто послать DATA пакет с М битом равным 0,и
$$$ не посылать больше данных,то вскоре наступит таймаут,и логические каналы
$$$ будут возвращены в нормальное состояние.
```
,,,
$$$ "3. X.25 Packet Injection"
$$$
$$$ Эта атака также базируется на спуфинге адресов и RNR пакете, что, как мы
$$$ рассматривали выше, невозможно.
$$$
```
,,,
$$$ Как видно,все эти уязвимости вымышленные, связавшись с автором , который
$$$ указан в документе, я выяснил, что , во-первых , не он на самом деле его
$$$ автор, а кто-то указал его имя и ник, а во-вторых,что весь этот документ
$$$ в целом,фейковый, написанный по видимому не вникавшим в подробности фун-
$$$ кционирования х.25 сетей, человеком, который к тому же подписался чужим
$$$ именем.
$$$ Но не все так плохо , и некоторые уязвимости в протоколе х.25 мне все же
$$$ удалось найти.
$$$ Одна из них, впервые испробованная в х.25 сети компании Sita int. Cyber-
$$$ Lirik-ом, была связанна с тем, что при посылке постоянных запросов на
$$$ адреса ПАД-ов,с которых пользователи выходили в Sita, иногда можно было
$$$ перехватить данные пользователя этого PAD-а. Этот момент был описан им,и
$$$ он хорошо знаком всем исследователям х.25 сетей.То,что это действительно
$$$ уязвимость протокола, а не недосмотр администраторов Sita Network, или
$$$ какая-нибудь особенность именно этой сети,было подтверждено исследовани-
$$$ ями Graf`а, который обнаружил,что такая же ситуация наблюдается и в сети
$$$ Роснет.
```
,,,
$$$ Итак, эта уязвимость связанна с состоянием call collision.Оно наступает,
$$$ когда на DCE на один LCN, приходят одновременно два пакета, call request
$$$ на некоторый адрес с подключенного к данному DCE DTE , и любой incoming
$$$ call на этот DTE из сети. Разрешается эта коллизия путем отсылки к DTE
$$$ call connected, и call accepted возвращается той ноде , с которой пришел
$$$ incoming call. При этом,не проверяется, соответствие адресов друг другу.
$$$ Вследствии чего, при вводе пользователем PAD-а адреса для соединения , в
$$$ случае прихода постоянных пакетов с "запросом вызова", на адрес PAD-а
$$$ этого пользователя, возникает ситуация, когда пользователя соединяют, со
$$$ "взломщиком" инициировавшим эти постоянные запросы , вместо ресурса вы-
$$$ зываемого пользователем PAD-а, и взломщик имитируя приглашения ресурса ,
$$$ может завладеть конфиденциальной информацией этого пользователя. Что и
$$$ наблюдали в своих исследованиях CyberLirik в Sita и Graf` в Роснете.
$$$ Как показала жизнь,эта уязвимость может быть устранена путем блокирова-
$$$ ния вызовов на PAD-ы пользователей. Это достигается настройкой всех ло-
$$$ гических каналов, как используемых только для исходящих вызовов. Тем са-
$$$ мым мы устраняем состояние call collision, т.к. incoming call никогда не
$$$ сможет прийти на канал помеченный, как только исходящий.
```
,,,
$$$ Еще одна менее серьезная уязвимость связанна с тем, что для соединения
$$$ в х.25 сети *не обязателен* обратный адрес в пакете "запрос вызова". Это
$$$ может использовать взломщик для совершения действий , от адреса другого
$$$ пользователя , либо просто скрыть реальный адрес вообще не помещая его в
$$$ пакет "запрос вызова". Это возможно, так как пакет, в ответ на "запрос
$$$ вызова", посылается обратно по уже установленной, пришедшим пакетом, це-
$$$ почке из LCNов на различных DCE. Выследить такого посетителя возможно ,
$$$ только имея подробную статистику по использованным LCN на каждом DCE за
$$$ этот период. Так как после завершения соединения , LCN освобождаются и
$$$ могут использоваться другими пользователями. Даже если получение такой
$$$ статистике возможно, ее анализ представляется не легким делом.
```
,,,
$$$ Еще , следует обратить внимание на то , что и в х.25 сети можно устроить
$$$ DoS атаку на ноду , если учесть возможность относительно легкого способа
$$$ доступа к сети х.25 из Интернета.Ведь доступ через интернет к многим DTE
$$$ на роутерах, позволит организовать одновременный вызов с них одной ноды,
$$$ и если суммарное количество логических каналов доступных взломщику будет
$$$ больше чем количество логических каналов на жертве,то простыми вызовами,
$$$ на время таймаута можно будет заблокировать жертву, заняв все ее линии,
$$$ тем самым доступ пользователей к ней будет на некоторое время отрезан ,
$$$ это время может быть долгим, если взломщик производит вызовы постоянно ,
$$$ тем самым не давая освободиться логическим каналам.
```
,,,
$$$ Это пока все,известные мне на сегодняшний день уязвимости х.25 протокола
$$$ Однако,возможность доступа к сетевому уровню х.25,я не сомневаюсь , сти-
$$$ мулирует исследование этого протокола. Ведь еще не были затронуты таких
$$$ интересные и огромные области как x.25 packet facilities,а также некото-
$$$ рые типы пакетов, например Diagnostic или Registration.Во общем, изучай-
$$$ те, исследуйте, да прибудет с вами Сила... знания !
$$$!ig╖,_
`|¤??$╡$$$A.
.╖. `¤$$$L
,$$$$$$$, `$$$i
$$$$$$$$$ i$$$
?$$$$$$$7 $$$$qqqqqqqqqqqqq q q
`¤+?+¤` .╡$$$$$$$$$$22222222222 2 2 2 ; ; ; ;
````````````````` ` `

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

Archives

All entries, chronologically...