ZoneAlarm Pro 7
От: Аноним  
Дата: 02.05.07 09:46
Оценка:
Ну вот, эт снова я

Взялся я, как и обещал, за защиту ZoneAlarm Pro (ZA) версии 7.0. Пока особо не копался, но есть первые впечатления. Выяснил пока только то, что методы, применнённые мной при снятии защиты Outpost и KAH — не подействовали. Странно. Ниже идёт в удобочитаемом виде, то что я хочу рассказать сейчас.

Симптомы


1. ZA патчит IATtcpip.sys и wanarp.sys. По крайне мере так сообщает последняя версия Rootkit Unhooker (RkUnhooker). При чём если в случае с Outpost и KAH мне удавалось ставить хуки на IAT'ы этих драйверов, а также EAT ndis.sys'а так, чтобы вызовы всегда шли сначала ко мне, то теперь RkUnhooker показывает, что там не мой обработчик, а обработчик ZA (драйвер vsdatant.sys).
2. Каждые 5 секунд мой тестовый драйвер (aka руткит) соединяется с неким сервером по TCP. Отсылает/принимает некоторое кол-во (не более 2 КБ) данных и закрывает соединение. В DbgView смотрю свои отладочные логи и вижу, что иногда ZA пресекает-таки мои попытки (сбой происходит иногда при коннекте, иногда при отправке, иногда при получении...). Но не всегда, вот чего понять-то не могу! Значит моё предположение 1 (см. ниже) верно?

Предположения


1. ZA периодически восстанавливает свой перехват (обработчики протоколов NDIS, таблицы IAT/EAT драйверов...).
2. ZA удаёться-таки поставить хук на IAT/EAT tcpip.sys, wanarp.sys и/или ndis.sys (внимание!) — позже меня, но раньше чем те зарегают первый протокол. Imho, это предположение не верно, ибо см. п.2 в разделе Симптомы.

Вопросы


Пока вопросы такие:

1. Как понимать п.1 Симптомов?
2. Какое из Предположений верно?

Кто-то в топике про KAH говорил, что ZA регает свой NDIS-протокол и может хукать обработчики других протоколов в любой момент времени. Автора этого утверждения убедительно прошу отписаться по теме!

P.S. кто-нибудь может объяснить мне дураку, зачем нужен wanarp.sys?
P.P.S. конечно, чуть позже я буду смотреть всё это отладчиком, но может кто-то может сказать по существу уже сейчас?
Re: [оффтоп] о RE
От: gear nuke  
Дата: 04.05.07 06:56
Оценка:
Reverce engineering традиционно делается снизу вверх — изучаются примитивные функции, и из них, как из киртпичиков, строится цельная картина происходящего. То, что ты пытаешься сейчас — воссоздать логику работы софта по наблюдаемому поведению (точнее, лишь его малой части) — это высший пилотаж, здесь нужно хорошо разбираться в предметной области. Фактически, нужно спроектировать все возможные варианты реализаций и угадать из них тот, что выбрали разработчики.

Если ZA что-то там патчит, можно поставить бряк на запись и найти функцию, которая это делает. Потом посмотреть, когда она вызывается. Тебе очень повезло, что можно запускать изучаемый софт
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: [оффтоп] о RE
От: Аноним  
Дата: 04.05.07 07:07
Оценка:
GN>Reverce engineering традиционно делается снизу вверх — изучаются примитивные функции, и из них, как из киртпичиков, строится цельная картина происходящего. То, что ты пытаешься сейчас — воссоздать логику работы софта по наблюдаемому поведению (точнее, лишь его малой части) — это высший пилотаж, здесь нужно хорошо разбираться в предметной области. Фактически, нужно спроектировать все возможные варианты реализаций и угадать из них тот, что выбрали разработчики.

Всё это мне известно. Хотя гением я себя не считаю, хотя в предметной области уже разбираюсь досточно.

GN>Если ZA что-то там патчит, можно поставить бряк на запись и найти функцию, которая это делает. Потом посмотреть, когда она вызывается. Тебе очень повезло, что можно запускать изучаемый софт


Кстати, обход ZA из ядра является тривиальной задачей, как выяснилось. Достаточно перехватить NdisRegisterProtocol() через EAT ndis.sys и запретить регистрацию протокола ZAVSDATANT. Метод не универсальный, но всё же. Однако, этого мне достаточно, чтобы бросить ZA ф топку.

Какие ещё сильные на ваш взгляд фаеры можете предложить посмотреть?
Re[3]: [оффтоп] о RE
От: SerpentFly  
Дата: 04.05.07 07:46
Оценка: +1
А>Какие ещё сильные на ваш взгляд фаеры можете предложить посмотреть?

Ох уж мне эти горе хакеры

То что любой существующий фаервол кроме аппаратно вшитого в сетевую карту и изолированного от любого управления со стороны локальной OS можно обойти из ядра по-моему и так не требует доказательств. Самый универсальный метод — перехватить регистрацию NDIS минипортов (на этом уровне насколько мне известно ни один существующий фаервол не работает) и включить в драайвер трояна собственную реализацию TCP/IP (облегченных open source вариантов можно наловить в инете).

А>Достаточно перехватить NdisRegisterProtocol() через EAT ndis.sys и запретить регистрацию протокола ZAVSDATANT.


Я бы предположил что ZA в этом случае запищит что-нить о неправильной инициализации. Если уж делать что-то такое то нужно не фейлить вызов NdisRegisterProtocol а сэмулировать успешный вызов и подсунуть пустой список протоколов (как будто ни одного протокола и не установлено).Хотя можно даже обойтись без таких сложностей как перехват NdisRegisterProtocol, а просто снести все упооминания о ZA из реестра (и драйвер и управляющее приложение) и принудительно перегрузить систему.Пользователь может заметит, а может и не заметит.
Re[4]: [оффтоп] о RE
От: Аноним  
Дата: 04.05.07 08:00
Оценка:
SF>Ох уж мне эти горе хакеры

Точно! Задолбали уже, не будь хакирей — не пришлось бы придумывать всевозможные защиты..... А так вот сидишь и думаешь, сидишь и думаешь каждый день...

SF>То что любой существующий фаервол кроме аппаратно вшитого в сетевую карту и изолированного от любого управления со стороны локальной OS можно обойти из ядра по-моему и так не требует доказательств.


Да? А по-моему требует. Вот когда я докажу самому себе, что это невозможно, тогда наверно придёться придумывать нечто принципиально новое. Или уйти на пенсию

SF>Самый универсальный метод — перехватить регистрацию NDIS минипортов (на этом уровне насколько мне известно ни один существующий фаервол не работает) и включить в драайвер трояна собственную реализацию TCP/IP (облегченных open source вариантов можно наловить в инете).


Да, пожалуй, для троянописателей это было бы наилучшим решением. Почему до сих пор никто не предусмотрел защиту от этого, — не понимаю.
Можете посоветовать какие-нибудь ссылки, доки по защите (перехвату) на уровне минипортов? Я с ними не работал, хочу понять как там это делается.

А>>Достаточно перехватить NdisRegisterProtocol() через EAT ndis.sys и запретить регистрацию протокола ZAVSDATANT.

SF>Я бы предположил что ZA в этом случае запищит что-нить о неправильной инициализации.

Вы удивитесь, но ничего подобного. Я сам ожидал увидеть какой-нибудь MessageBox(), но ZA промолчал.

SF>Если уж делать что-то такое то нужно не фейлить вызов NdisRegisterProtocol а сэмулировать успешный вызов и подсунуть пустой список протоколов (как будто ни одного протокола и не установлено).


Над этим вариантом я думал, однако геморно — ведь придёться аллоцировать такую же структуру только с пустым полем NextProtocol. Гемор в том, что придёться запоминать соответствие адресов оригинального блока и нового соданного и потом подставлять в других Ndis* функциях оригинальную.

SF>Хотя можно даже обойтись без таких сложностей как перехват NdisRegisterProtocol, а просто снести все упооминания о ZA из реестра (и драйвер и управляющее приложение) и принудительно перегрузить систему.Пользователь может заметит, а может и не заметит.


Ни один троянописатель в здравом уме не станет так делать.
Re[5]: [оффтоп] о RE
От: SerpentFly  
Дата: 04.05.07 08:22
Оценка: +1
А>Да? А по-моему требует. Вот когда я докажу самому себе, что это невозможно, тогда наверно придёться придумывать нечто принципиально новое. Или уйти на пенсию

Это легко доказать логически. Если удалось загрузить свой драйвер в систему — значит мы имеем в ней максимально возможные привилегии. Главное наше примущество в том, что мы занем как построен противник (фаервол), а он не знает как построены мы. Ну и кто кого победит? Вариантов обхода множество, от перехватат системных функций, до модификации драйвера самого фаервола. Например, можно реверснуть протокол управления драйвером, пропатчить его таблицу диспетчиризации и загрузить свои настройки. При этом управляющее приложение будет думать что загружены его настройки.

Так что на пенсию, на пенсию

Совсем другая задача — не дать загрузится неправильному (троянскому) драйверу...

А>Да, пожалуй, для троянописателей это было бы наилучшим решением. Почему до сих пор никто не предусмотрел защиту от этого, — не понимаю.

А>Можете посоветовать какие-нибудь ссылки, доки по защите (перехвату) на уровне минипортов? Я с ними не работал, хочу понять как там это делается.

Какие-то китайцы пытались когда-то на этой методике фаервол построить, ссылок у меня не сохранилось, но сорсы могут где-то валятся.Больше насколько мне известно подобным никто не занимался.

А>Ни один троянописатель в здравом уме не станет так делать.


Что за смысл писать трояны если навыки можно применить в легальной работе... Так что про здравость ума троянописателей я промолчу... Исключение наверное составляют спецслужбы где это может применятся как элемент разведки...
Re[6]: [оффтоп] о RE
От: Аноним  
Дата: 04.05.07 08:33
Оценка:
SF>Это легко доказать логически. Если удалось загрузить свой драйвер в систему — значит мы имеем в ней максимально возможные привилегии. Главное наше примущество в том, что мы занем как построен противник (фаервол), а он не знает как построены мы. Ну и кто кого победит? Вариантов обхода множество, от перехватат системных функций, до модификации драйвера самого фаервола. Например, можно реверснуть протокол управления драйвером, пропатчить его таблицу диспетчиризации и загрузить свои настройки. При этом управляющее приложение будет думать что загружены его настройки.

SF>Совсем другая задача — не дать загрузится неправильному (троянскому) драйверу...


Возможно вы и правы, не буду спорить.

SF>Какие-то китайцы пытались когда-то на этой методике фаервол построить, ссылок у меня не сохранилось, но сорсы могут где-то валятся.Больше насколько мне известно подобным никто не занимался.


Если не сложно, поищите эти сорцы у себя, а я пока в сети порою, ок?
Re[7]: [оффтоп] о RE
От: SerpentFly  
Дата: 04.05.07 08:47
Оценка:
А>Если не сложно, поищите эти сорцы у себя, а я пока в сети порою, ок?

Их есть у меня, привычка собирать все подряд, мало ли когда пригодится

На форуме возможности аттача я вроде и не вижу...
Re[8]: [оффтоп] о RE
От: Злость Россия  
Дата: 04.05.07 09:00
Оценка:
Здравствуйте, SerpentFly, Вы писали:

А>>Если не сложно, поищите эти сорцы у себя, а я пока в сети порою, ок?


SF>Их есть у меня, привычка собирать все подряд, мало ли когда пригодится


SF>На форуме возможности аттача я вроде и не вижу...


В профиле есть возможнотсь залить файл, затем можете указать ссылку на него в сообщении. Только желательно не удалять его потом, так как тогда ссылка окажется битая.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.
Re[9]: [оффтоп] о RE
От: SerpentFly  
Дата: 04.05.07 10:36
Оценка: 4 (1)
З>В профиле есть возможнотсь залить файл, затем можете указать ссылку на него в сообщении. Только желательно не удалять его потом, так как тогда ссылка окажется битая.

http://files.rsdn.ru/59009/apf%20hook.zip

Как я уже гооврил писалось это когда-то какими-то китайскими товарищами, насколько стабильно все это хозяйство сказать не могу, не проверял.
Re[10]: [оффтоп] о RE
От: Аноним  
Дата: 04.05.07 12:23
Оценка:
SF>http://files.rsdn.ru/59009/apf%20hook.zip

thx
Re: ZoneAlarm Pro 7
От: Denwer Россия  
Дата: 07.05.07 08:50
Оценка:
Здравствуйте, Аноним, Вы писали:

Ну что ж, вот вам следующий фаервол, Safe&Sec, скажу сразу, защита там плевая, но самое главное грузануть драйвер.
Re[2]: ZoneAlarm Pro 7
От: Аноним  
Дата: 07.05.07 10:23
Оценка:
D>Ну что ж, вот вам следующий фаервол, Safe&Sec, скажу сразу, защита там плевая, но самое главное грузануть драйвер.

Плёвая, это как? Ring-3 что ли ? Или TDI?

Спасибо за наводку, и до него руки дойдут. Однако это уже не в тему, ибо это HIPS-защита. А сейчас я занимаюсь разработкой именно фаера, а не HIPS'а. Поэтому на данный момент интересуют конкретно фаеры с сильной и/или нестандартной защитой. Знаете такие?
Re[3]: ZoneAlarm Pro 7
От: Denwer Россия  
Дата: 07.05.07 10:35
Оценка:
Здравствуйте, Аноним, Вы писали:

D>>Ну что ж, вот вам следующий фаервол, Safe&Sec, скажу сразу, защита там плевая, но самое главное грузануть драйвер.


А>Плёвая, это как? Ring-3 что ли ? Или TDI?


Это значит отключается ИЗ ДРАЙВЕРА за 10 минут.

А>Спасибо за наводку, и до него руки дойдут. Однако это уже не в тему, ибо это HIPS-защита. А сейчас я занимаюсь разработкой именно фаера, а не HIPS'а. Поэтому на данный момент интересуют конкретно фаеры с сильной и/или нестандартной защитой. Знаете такие?


В нем есть один момент, который мне очень понравился, и которого я не видел у других. Там стоит драйвер NTFS который не дает менять файлы в директории винды. Но это относится не к фаерволу, а к HIPS, поэтому это может будет не интересно вам.
Re[4]: ZoneAlarm Pro 7
От: Аноним  
Дата: 07.05.07 10:43
Оценка:
D>Там стоит драйвер NTFS который не дает менять файлы в директории винды.

Имеется в виду, драйвер-фильтр NTFS? Если да, то к какому девайсу он аттачится?

D>Но это относится не к фаерволу, а к HIPS, поэтому это может будет не интересно вам.


Вот именно, сейчас я занимаюсь фаером. До HIPS'а пока всерьёз руки не дошли, но обязательно дойдут, и вот тогда я и обращу свои взоры на этот фаер.
Re[5]: ZoneAlarm Pro 7
От: Denwer Россия  
Дата: 07.05.07 11:40
Оценка:
Здравствуйте, Аноним, Вы писали:

D>>Там стоит драйвер NTFS который не дает менять файлы в директории винды.


А>Имеется в виду, драйвер-фильтр NTFS? Если да, то к какому девайсу он аттачится?


FileSystem\Ntfs
Re[6]: ZoneAlarm Pro 7
От: Denwer Россия  
Дата: 07.05.07 11:41
Оценка:
Здравствуйте, Denwer, Вы писали:

D>Здравствуйте, Аноним, Вы писали:


D>>>Там стоит драйвер NTFS который не дает менять файлы в директории винды.


А>>Имеется в виду, драйвер-фильтр NTFS? Если да, то к какому девайсу он аттачится?


D>FileSystem\Ntfs


Извиняюсь, точнее он ставит хуки на мажорные функции.
Re[7]: ZoneAlarm Pro 7
От: Аноним  
Дата: 07.05.07 11:53
Оценка:
А>>>Имеется в виду, драйвер-фильтр NTFS? Если да, то к какому девайсу он аттачится?
D>>FileSystem\Ntfs
D>Извиняюсь, точнее он ставит хуки на мажорные функции.

Каким образом он ставит хуки? Просто заменяет адреса обработчиков или сплайсингом?
Re[8]: ZoneAlarm Pro 7
От: Denwer Россия  
Дата: 07.05.07 12:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>>Имеется в виду, драйвер-фильтр NTFS? Если да, то к какому девайсу он аттачится?

D>>>FileSystem\Ntfs
D>>Извиняюсь, точнее он ставит хуки на мажорные функции.

А>Каким образом он ставит хуки? Просто заменяет адреса обработчиков или сплайсингом?


Да, просто заменят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.