информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[ntddk]почему так происходит? (ntcreatefile) 10.07.02 17:02  Число просмотров: 1139
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Т.е. при получении сетевого запроса от клиента
> транспорт
> > TDI напрямую вызывает функции FSD(и соответственно не
> > использует Zw/NtCreateFile).
>
> Это маловероятно, т.к. если бы это было так то filemon
> загруженный после старта tdi & FS drivers не перехватывал
> бы IRP на открытие файла. А filemon их прекрасно ловит
> (проверил пару часов назад)

Да, filemon перехватывает ИРПы, согласен.

> >Либо другая возможность - TDI
> > использует ИРПы, имхо это маловероятно.
>
> вот это как раз наиболее вероятно...
Я уже начинаю в это верить...

> > Единственная непонятность - нафига при этом система
> > использует вызовы Zw/NtCreateFile ?!!
>
> что значит использует? тебе приходит вызов Zw/NtCreateFile
> с тем именем файла который пытаешься закрыть?
Да, мне прриходят эти вызовы когда удаленный клиент открывает файл.
Я их глушу(не вызываю оригинальную функцию), но тем не менее файл клиентом серавно открывается. То же самое для функций чтения/записи.

> странно все это... однако факт остается фактом - при
> перехвате доступа к FS через
> IoAttachDeviceToDeviceStack/IoAttachDevice или путем
> подмены обработчиков в DRIVER_OBJECT ты можешь
> контролировать все запросы.... (у меня это работает)

так и будет работать ибо ниже ИРПов ничего нету ;) ... просто не хочется мне с ними трахаться... а видно все таки придется :(
<programming>
[ntddk]почему так происходит? (ntcreatefile) 10.07.02 09:33  
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Перехватываю вызовы NtCreateFile и при необходимости блокирую их. Если вызовы локальные(т.е. приложение и файл на той же машине) то все ок, но если скажем расшарена папка и удаленный клиент открывает файл то несмотря на болкировку вызова NtCreateFile - файл открывается. В этом случае NtCreateFile вызывается, я вижу что за файл и что его пытается открыть удаленный клиент, я просто возвращаю управление из функции !не! вызывая оригинальную NtCreateFile, НО! пользователь серавно может открыть этот файл! Че за нафиг? Локально все замечательно работает, а вот с удаленными клиентами что-то непонятное творится.
Неужели для открытия используются какие-то другие функции?!

[ntddk]почему так происходит? (ntcreatefile) 10.07.02 10:17  
Автор: cb <cb> Статус: Member
<"чистая" ссылка>
могу предположить что т.к. файл открывается редиректором то он использует не вызов Zw/NtCreateFile а посылку соответствующего IRP нужному устройству, или вызывает IoCreateFile.

cb.
[ntddk]почему так происходит? (ntcreatefile) 10.07.02 13:52  
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> могу предположить что т.к. файл открывается редиректором то
> он использует не вызов Zw/NtCreateFile а посылку
> соответствующего IRP нужному устройству, или вызывает
> IoCreateFile.
>
> cb.

Есть у меня предположение что система при получении сетевого запроса на открытие/чтение файла от редиректора клиента не использует "по назначению" Zw/NtCreateFile(тогда нафиг их вообще использовать), а использет связку TDI(сервера) -> FSD(сервера) судя по протоколу CIFS. Т.е. при получении сетевого запроса от клиента транспорт TDI напрямую вызывает функции FSD(и соответственно не использует Zw/NtCreateFile). Либо другая возможность - TDI использует ИРПы, имхо это маловероятно.
Единственная непонятность - нафига при этом система использует вызовы Zw/NtCreateFile ?!!
Наверное я что-то где-то упустил.... все это весьма странно :(

Забыл еще добавить, что та же самая петрушка происходить при вызове Zw/NtReadFile, Zw/NtWriteFile ....
[ntddk]почему так происходит? (ntcreatefile) 10.07.02 16:42  
Автор: cb <cb> Статус: Member
<"чистая" ссылка>
> Есть у меня предположение что система при получении
> сетевого запроса на открытие/чтение файла от редиректора
> клиента .... использет связку
> TDI(сервера) -> FSD(сервера) судя по протоколу CIFS.
> Т.е. при получении сетевого запроса от клиента транспорт
> TDI напрямую вызывает функции FSD(и соответственно не
> использует Zw/NtCreateFile).

Это маловероятно, т.к. если бы это было так то filemon загруженный после старта tdi & FS drivers не перехватывал бы IRP на открытие файла. А filemon их прекрасно ловит (проверил пару часов назад)

>Либо другая возможность - TDI
> использует ИРПы, имхо это маловероятно.

вот это как раз наиболее вероятно...

> Единственная непонятность - нафига при этом система
> использует вызовы Zw/NtCreateFile ?!!

что значит использует? тебе приходит вызов Zw/NtCreateFile с тем именем файла который пытаешься закрыть?

> Забыл еще добавить, что та же самая петрушка происходить
> при вызове Zw/NtReadFile, Zw/NtWriteFile ....

странно все это... однако факт остается фактом - при перехвате доступа к FS через IoAttachDeviceToDeviceStack/IoAttachDevice или путем подмены обработчиков в DRIVER_OBJECT ты можешь контролировать все запросы.... (у меня это работает)

cb.
[ntddk]почему так происходит? (ntcreatefile) 10.07.02 17:02  
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Т.е. при получении сетевого запроса от клиента
> транспорт
> > TDI напрямую вызывает функции FSD(и соответственно не
> > использует Zw/NtCreateFile).
>
> Это маловероятно, т.к. если бы это было так то filemon
> загруженный после старта tdi & FS drivers не перехватывал
> бы IRP на открытие файла. А filemon их прекрасно ловит
> (проверил пару часов назад)

Да, filemon перехватывает ИРПы, согласен.

> >Либо другая возможность - TDI
> > использует ИРПы, имхо это маловероятно.
>
> вот это как раз наиболее вероятно...
Я уже начинаю в это верить...

> > Единственная непонятность - нафига при этом система
> > использует вызовы Zw/NtCreateFile ?!!
>
> что значит использует? тебе приходит вызов Zw/NtCreateFile
> с тем именем файла который пытаешься закрыть?
Да, мне прриходят эти вызовы когда удаленный клиент открывает файл.
Я их глушу(не вызываю оригинальную функцию), но тем не менее файл клиентом серавно открывается. То же самое для функций чтения/записи.

> странно все это... однако факт остается фактом - при
> перехвате доступа к FS через
> IoAttachDeviceToDeviceStack/IoAttachDevice или путем
> подмены обработчиков в DRIVER_OBJECT ты можешь
> контролировать все запросы.... (у меня это работает)

так и будет работать ибо ниже ИРПов ничего нету ;) ... просто не хочется мне с ними трахаться... а видно все таки придется :(
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach