Параллельный мир. Взлом сетей x25

kas1e

Xakep, номер #053, стр. 053-070-3


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-сеть, мы можем это устроить, посылая постоянные запросы на жертву. Очевидно, чем больше боксов, тем лучше. Еще один вариант - это давно известный по Лириковской сите "снифинг-подстава". Что мы делаем в этом случае. Мы находим адрес нужного нам пада и постоянно шлем пакеты с запросом коннекта на адрес этого пада, которым мы якобы будем. В результате возникновения некоторых коллизий и непроверки соответствия адресов, хост-жертву соединяют с посыльщиком таких пакетов (догадайтесь, кто это :)), который уже может прикинуться падом, выдать падовое сообщение и заиметь все данные пользователя, включая nui, логины, пароли и тому подобное. Вот как это выглядело в sita network (лог кибер-лирика):

Назад на стр. 053-070-2  Содержание  Вперед на стр. 053-070-4