Взлом сетей x25
Параллельный мир. Взлом сетей x25
kas1e
Сегодня практически никто не знает, что такое x25-сети и насколько они глобальны, поэтому я вкратце расскажу историю их появления. Все началось, наверное, более 3 тысяч лет назад с голубиной почты
, но непосредственным прародителем можно считать Леонарда Клейнро, который в 1961 году первым высказал мысль о маршрутизации пакетов цифровых данных в крупных компьютерных сетях. Год спустя Дж. Ликлайдер, первый руководитель отдела компьютерных исследований в Управлении ARPA при Министерстве обороны США, предложил создать огромную Galactic Network - < галактическую сеть>, в которой пользователь мог получить доступ к данным из любого узла. Старина Ларри Робертс, исследователь из лаборатории Линкольна в Массачусетском технологическом институте, впервые организовал обмен пакетами данных между двумя компьютерами в 1965 году. Через 4 года появилась arpanet (прародитель internet).
По мере развития arpanet/internet, разные производители компьютерного железа выпускали свои собственные сетевые системы. В 1972 году Роберт Меткалф, исследователь из компании Xerox, разработал стандарт организации локальных сетей под названием Ethernet. В 1973 году появилась компания Telenet - первый владелец сети общего пользования с коммутацией пакетов. Telenet и является "настоящим" отцом x.25-сетей. Что касается бывшего СССР, то там какой-либо заметной активности не наблюдалось до 1986 года, именно тогда началась эксплуатация ведомственных сетей этого класса (АИСТ, АСПД, ИАСНЕТ). Затем началось бурное развитие старых и появление новых x25-сетей, которое, в общем, не прекращается и сейчас, но в более специализированном направлении, чем интернет. В качестве примера мы рассмотрим sprintnet, которая и является той самой telenet, но более развитой и получившейся при слиянии служб телефонной связи и передачи данных компании GTE (GTE Sprint и GTE Telenet) с US Telecom - аналогичными службами большой компании "United Telecommunications Inc" (UTI). Входы в эту сеть (sprintnet) предоставлены в каждом захудалом городке, и телефоны модемных пулов можно найти в любой поисковой машине или на официальных сайтах представительства необходимой сети.
Организация
Итак, нас волнует то, каким образом обозначаются/предоставляются адреса (хосты), как происходит аутентификация и некоторые другие нюансы. Адреса в x25-сетях называются NUA (Network Users Address). Формируются они из нескольких составляющих:
1. Признак определения адреса (полный вид, если существует, внутренний, если не задано).
2. DNIC (Data Network Identification Code) - четырехзначный код сети.
1: Код "материка":
1 - Океания
2 - Европа
3 - Америка
4 - Азия
5 - Австралия
6 - Африка
7 - Южная Америка
2-3: Код страны (2 цифры). Например, 50 - Россия.
4: Код национальной сети, как пример для 250x:
0 - ROSPAC
1 - SPRINT
2 - IASNET
3 - MMTLnet
4 - INFOTEL
6 - ROSNET
7 - ISTOK-K
8 - TRANSINFORM
3. Непосредственно внутрисетевой адрес (до 10 цифр).
И вот теперь самое время поговорить об аутентификации. Вход в sprintnet как таковой, в принципе, отсутствует. Т.е. ты можешь просто позвонить на пул и уже сможешь производить масштабные сканы. Однако большинство хостов не горят желанием платить за твое соединение с ними, о чем тебе с радостью и сообщат
. Чтобы иметь полноценный доступ ко всем ресурсам, нужен некий NUI (Network User Identificator), проще говоря - код доступа и пароль. NUI стоит порядка $30 + $16 за час пользования сетью. Т.е. у тебя 2 варианта - либо пользуешься бесплатно и ищешь хорошие хосты, либо пользуешься NUI (вводя ID при подключении). Формат NUI простой - это алфавитные и буквенные значения длиной от 4 символов. Для ввода NUI есть 2 пути. Первый - вводить его при подключении к паду (о паде чуть ниже):
@ ID=xxxxx
PASS=xxxxx
Второй - непосредственно при подключении к NUA:
@ На этих двух способах хакеры основывают свои переборы. Но прежде чем перейти к более углубленному изучению их злодеяний, необходимо рассмотреть еще одну не менее важную деталь - ПАД. ПАД - это некая программа-сервер (если так можно сказать), которая установлена на модемном пуле x25-сети (в частности, у нас это модемный пул спринта). Именно с этой программой мы ведем беседу при подключении. Она позволяет изменять настройки наших профилей в сети, и как раз у нее есть некоторые глюки. Ими взломщики и пользуются в своих нехороших целях. Более или менее важные команды пада представлены ниже: prof - выбор профиля. Данная команда дает возможность выбирать профили (установки). Есть и стандартные, и свои. Вот пример установки 10-го профиля: @prof 10 set - изменение параметров установленного профиля (всего 22 параметра). Например, ставим 10-ый профиль и меняем 10-ый параметр. @prof 10 @set 10:80 Если вводят сразу несколько параметров с какими-нибудь значениями, то их необходимо разделять запятыми. par ? - просмотр нужных параметров профиля. Как пример, посмотрим настройки у 12-го профиля, 10-го параметра. @prof 12 @par ? 10 PAR 10:80 Если хочешь посмотреть все параметры сразу, то просто введи par ? без значений. stat - позволяет узнать состояние ПАД программы (свободен, занят и т.д.). Еще существует set? (почти то же самое, что и set) и select (довольно интересная команда, но мы ее здесь рассматривать не будем). Итак, подведем итог: есть x25-сети. Все они соединены различными способами и имеют в разных точках мира разные входы (мы рассматриваем sprintnet как самую доступную в бывшем СССР). На этих входах установлено специфичное для x25 железо/модемы и программы, называющиеся ПАД. Они и позволяют работать с этим железом (следовательно, с x25-сетью). Можно подбирать nui для более широкого пользования x25-сетью, а можно пользоваться просто так. Можно баловаться с настройками пада и добиться чего-нибудь интересного. А можно просто сканировать хосты в поисках различных систем. Более детальную информацию читай в различных документациях, журналах и т.д. Мы же рассмотрим устройство x25-протокола на нижнем уровне. x25-протокол Во-первых, сразу хочу отметить, что мир не ограничен лишь rfc документами. Существует много других интересных серий, например, CCITT серия. Итак, какие документы нам необходимы: x.3/x.28/x.29 - документы, описывающие структуру и работу PAD. x.25 - описание x.25-протокола. x.121 - описание сетевой адресации. x.xxx серий довольно много, и если хочешь все это понять, тщательно их проштудируй. x25-сети базируются на трех первых уровнях модели OSI: 1 уровень - физический (железо, сигналы, электроника, кабели, разъемы). 2 уровень - канальный (уровень передачи данных). Здесь вводится понятие кадра (frame), т.е. это куски информации (бит, они же электрические сигналы). В кадре содержится пакет из сетевого уровня (см. ниже). 3 уровень - сетевой. На этом уровне вводится понятие x25-пакета (который является частью x25-кадра). Этот уровень также отвечает за маршрутизацию пакетов. Итак, как выглядит пакет: смещение (в битах) описание 4 Основной идентификатор формата пакета (call set-up packets, clearing packets, flow control, data packets и т.д.). 4 Логический номер группы канала. 8 Логический номер канала. 8 Идентификатор типа пакета. Довольно масштабный идентификатор, включающий, например, для "от DCE до DTE" такие типы: Incoming call, Call connected, Clear indication и т.д. Эти 3 байта должны присутствовать в любом случае. Далее все зависит от конкретного типа пакета. Например, для call request и incoming call далее идут: a. Блок Адреса. b. Длина Facility. c. Сами Facilities. d. 'call' данные. Чтобы найти описание каждого типа пакета, каждого поля, и вообще полную структуру, стоит окунуться в довольно объемную x.25 CCITT рекомендацию (ссылка внизу). Способы взлома Что у нас имеется на эту тему? 2 способа и их комбинирование. Я их могу разделить на "старый" и "новый", но можно назвать это как угодно 1. Сканируем в поисках доступных без-nui'евых хостов. 2. Сканируем каждый найденный хост на распространенные логины/пароли (что до сих пор, как это ни странно, работает). Все тот же небольшой списочек комбинаций: guest/ guest< цифры>/ anonymous/ anonymouse/ visitor/ new/ admin/ system/ temp/ test/ и тому подобное. Хосты бывают самыми разнообразными. От unix-боксов/ppp-сессий, до rex/dionis-систем. У каждой из них есть свои глюки, которые хакеры используют в своих целях. В рамках одной стати все эти ошибки мы, естественно, рассмотреть не сможем. Второй способ (так сказать, "новый") - поиск уязвимостей протокола, возможности снифинга, спуфинга и различные новомодные приемы. Один из них заключается в том, что в пакете на запрос соединения можно вообще не писать обратный адрес (соединение устанавливается не по адресам в пакете, а по логическим номерам каналов). Что это дает, я думаю понятно сразу. Во-первых, это возможность подставлять любые адреса (т.е. при желании могут прийти совсем в другое место). Во-вторых, если мы не подставим адреса вообще, то никто ничего и никогда не узнает. Плюсы очевидны. Вторая возможность - старый добрый срач. Т.е. DoS. С терминальной линии (модема) DoS, конечно, не грозит, но с любого бокса, имеющего выход в x25-сеть, мы можем это устроить, посылая постоянные запросы на жертву. Очевидно, чем больше боксов, тем лучше. Еще один вариант - это давно известный по Лириковской сите "снифинг-подстава". Что мы делаем в этом случае. Мы находим адрес нужного нам пада и постоянно шлем пакеты с запросом коннекта на адрес этого пада, которым мы якобы будем. В результате возникновения некоторых коллизий и непроверки соответствия адресов, хост-жертву соединяют с посыльщиком таких пакетов (догадайтесь, кто это SITA NETWORK: call cleared - destination not responding // кажется, PAD свободен SITA NETWORK: call connected to XXXX XXX (001) (n, nui 19730001 charging, packet size: 128) ... NUI 12345678 ASDF1H SITA NETWORK: call cleared - remote directive // может быть, коллизия? в одно и то же время // жертва и хакер коннектятся на PAD SITA NETWORK: call cleared - destination busy // опс ... жертва уже работает В роснете это действует аналогичным способом, что можно увидеть на следующем примере (лог graf'a): *60001010009 ACP:clr not obtainable - remote directive 241 device not ready *60001010009 ACP:clr not obtainable - remote directive 241 device not ready *60001010009 ACP:clr not obtainable - remote directive 241 device not ready *60001010009 ACP:fac: r,p(128,128),w(2,2),d(9600,9600) com Enter ADDRESS[*userdata], n-ADDRESS for NUI access or HELP WELCOME TO ROSNET! // вот мы подключились к модемному пулу, здесь не хватает только "*" // * <-- посылаем 6140604 <-- а это пришло с другого конца Username: <-- посылаем guest2000 <-- Заключение Итак, теперь ты можешь пользоваться этими приемами для достижения каких-то своих целей. Но я надеюсь, что статья направит тебя в нужное русло, и конечно, очень нежелательно, чтобы почерпнутые знания использовались противозаконно. Хочется верить, что эта статья покажет многим, что кроме TCP/IP стека есть множество не менее интересных протоколов (x25, конечно же, не единственный представитель). Так что удачного тебе освоения x25-сетей!
. Что мы отнесем к старому способу? Это сканирование, подбор аккаунтов, ошибки "на дурака", ошибки конфигурации (человеческий фактор) и социальная инженерия. Как пример рассмотрим такую структуру:
), который уже может прикинуться падом, выдать падовое сообщение и заиметь все данные пользователя, включая nui, логины, пароли и тому подобное. Вот как это выглядело в sita network (лог кибер-лирика):
)

