Сейчас на форуме: -Sanchez- (+8 невидимых)

 eXeL@B —› Основной форум —› Дамп драйвера
Посл.ответ Сообщение


Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 11 марта 2017 15:43 · Поправил: Boostyq
· Личное сообщение · #1

Всем привет,
Изучаю защиту, которая использует драйвер для скрытия процессов/доступа к ним
Драйвер называется zwave1.sys и запускается по требованию шилда этой защиты
Мне нужно получить этот драйвер как бинарник, чтобы изучить
По информации из ProcessHacker2 драйвер лежит "\??\C:\Windows\zwave1.sys", но в папке, конечно, ничего нет - причем даже во время работы драйвера
Известно, что он хукает SSDT, и ,по-видимому, как-то скрывает себя
Под рукой 7x64 и XPx32 на виртуалке, работает везде, скрывается тоже и там и там
Собственно, возможно ли как-то сдампить его, и может кто-нибудь объяснить механизм, и это вообще законно ли это???
Спасибо

-----
В облачке многоточия




Ранг: 431.7 (мудрец), 389thx
Активность: 0.730.32
Статус: Участник

Создано: 11 марта 2017 16:24 · Поправил: dosprog
· Личное сообщение · #2

Boostyq пишет:
но в папке, конечно, ничего нет - причем даже во время работы драйвера

Значит, он удаляется сразу после запуска.

Boostyq пишет:
и это вообще законно ли это???

Нет. Это незаконно, конечно же. Попытка вмешательства в алгоритм работы защищённого ПО.



| Сообщение посчитали полезным: Boostyq


Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 11 марта 2017 16:24
· Личное сообщение · #3

Ставишь на виртуалку. Запускаешь, что нужно для работы драйвера. С хоста заходишь на файловую систему виртуалки и забираешь драйвер.

-----
EnJoy!




Ранг: 431.7 (мудрец), 389thx
Активность: 0.730.32
Статус: Участник

Создано: 11 марта 2017 16:30 · Поправил: dosprog
· Личное сообщение · #4

)
.. Кстати, имеются такие утилитки, которые умеют восстанавливать удалённые файлы.
Типо "энуреза" из нортон-утилит для доса.

Хотя, то ещё вопрос, в какой способ файл удалён. Иногда и "энурез" не поможет.






Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 11 марта 2017 16:34
· Личное сообщение · #5

Jupiter пишет:
Ставишь на виртуалку. Запускаешь, что нужно для работы драйвера. С хоста заходишь на файловую систему виртуалки и забираешь драйвер.

А по-подробнее, как это сделать?
Я запустила сейчас, попробовала GMER, действительно, он показывает, что есть такой драйвер в модулях, но сдампить не открывается контекстное меню.
Так же он показал, что:

Использую WinXP на VMware...

-----
В облачке многоточия





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 11 марта 2017 16:45
· Личное сообщение · #6

Boostyq
Либо через Shared Folders, если Online.
Либо через VMware-mount из Virtual Disk Development Kit (VDDK) и чтение файла VMDK (Virtual Machine Disk), если Offline.

-----
EnJoy!





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 11 марта 2017 17:18
· Личное сообщение · #7

Boostyq пишет:
XPx32 на виртуалке



0ea2_11.03.2017_EXELAB.rU.tgz - RkUnhooker 3.8.389.593 SR2.7z

| Сообщение посчитали полезным: Boostyq


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 11 марта 2017 17:57
· Личное сообщение · #8

Boostyq

> может кто-нибудь объяснить механизм

Какой механизм ?

-----
vx





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 11 марта 2017 18:04
· Личное сообщение · #9

difexacaw
Механизм дампа/антидампа/как сдампить этот дров. Кэп.

-----
EnJoy!





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 11 марта 2017 18:19
· Личное сообщение · #10

Jupiter

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

Ничего нельзя извлечь из скрина выше. Пропатчены начала сервисов. Обычно это делается через сервисные таблицы. Чем больше изменений, тем больше мусора в ядре и соотвественно анстаб. Нужен хотя бы дизасм одного хэндлера для начала.

-----
vx





Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 11 марта 2017 18:25 · Поправил: Boostyq
· Личное сообщение · #11

Так сдампить удалось, даже тремя методами:
1) Сделала снэпшот в vmware и в файле vmem по сигнатуре нашла загруженный драйвер в оперативной памяти, только их там около сотни было, но нужный выцепила
2) Через Kernel Detective, правда защита детектит это, но сдампить я успела
3) Самый простой вариант был через RkUnhooker, спасибо Gideon Vi, защита не реагирует на него
Стало ясно, что дамп, это таки дамп, и таблицы импорта мне там не увидеть, но его, наверное, нечем восстановить?
Буду пробовать перехватить оригинальный драйвер, до удаления
Точно не уверена, есть ли какой-либо протектор, по дампу плохо ясно, если нет, то простой вариант - это оригинальный файл, а если есть то придется искать как восстановить импорт... хотя может дампа ntoskrnl хватит для изучения, если функции вызываются только его?

Jupiter пишет:
difexacaw
Механизм дампа/антидампа/как сдампить этот дров. Кэп.

Механизм антидампа, т.е. почему драйвер скрыт.
Патчи функций ядра есть только пока драйвер запущен.

-----
В облачке многоточия





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 11 марта 2017 19:50
· Личное сообщение · #12

Boostyq

Может лучше опишите суть задачи, зачем вам этот дров нужен и что он вообще делает.

-----
vx





Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 11 марта 2017 21:38 · Поправил: Boostyq
· Личное сообщение · #13

difexacaw пишет:
Может лучше опишите суть задачи, зачем вам этот дров нужен и что он вообще делает.

Конечно q.q
Это драйвер от защиты, она с ним связывается и передает ему команды по своему протоколу, он умеет скрывать процессы, защищать их от записи и чтения, даже от заморозки и все это время процесс находится под эгидой этого драйвера, так что мне нужно получить этот драйвер для изучения протокола
Дамп сработал, но во-первых там нет таблицы импорта и я не знаю можно ли ее восстановить готовыми тулзами
Кроме того, изучив его немного, я поняла, что скорее всего это лишь компонент, т.е. есть драйвер более высокого уровня, который как-бы распределяет какому драйверу запускаться на какой системе
Так же я попробовала просканировать оперативную память снэпшота от vmware небольшим граббером, который только что написала, получилась фигня, мб в памяти все храниться по кусочкам, но ни одного валидного файла

-----
В облачке многоточия





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 11 марта 2017 22:17
· Личное сообщение · #14

Boostyq
А ты не пробовала найти драйвер до установки?
Ведь можно его исследовать не только в виде дампа, но и в виде исходного драйвера. Пусть даже запакованного/под ВМ.

difexacaw
Насколько я понимаю задачи тс, она хочет изучить процесс взаимодействия защиты и защищаемой программы.

-----
EnJoy!





Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 11 марта 2017 22:30
· Личное сообщение · #15

Jupiter пишет:
Boostyq
А ты не пробовала найти драйвер до установки?
Ведь можно его исследовать не только в виде дампа, но и в виде исходного драйвера. Пусть даже запакованного/под ВМ.

Пробовала конечно. Файла просто нет. Я думаю внутри исполняемого файла (он накрыт вм) есть установка этого драйвера, его запуск и удаление, как он только загрузился. Или же сам драйвер умеет себя скрывать каким-либо образом...

-----
В облачке многоточия





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 11 марта 2017 22:46
· Личное сообщение · #16

Боже, что я здесь читаю, о господи! Какой кошмар. ВМВаре, ага, нам нужно больше виртуалок.

Давайте по порядку.
1. Как сделать дамп?
Чтобы сделать дамп, нужно знать базу образа и размер. В нашем случае нужна база загрузки драйвера и его ImageSize. Как я понимаю, RkU это любезно показывает. Теперь нужно просто загрузить свой драйвер. Потом из него просто считать кусок памяти по указанному адресу (ImageBase) указанного размера (ImageSize). Результат сохранить в файл. Самый простой способ - передать через IOCTL запросы параметры, и принять в буфер результат.

Детальнее --> Здесь <--

2. Как работают антируткиты, когда определяют скрытые модули/хуки и прочую лабуду?
Алгоритмы разные, но в целом есть один простейший подход - вызов оригинальной Nt* функции в обход хуков. Это тема отдельного разговора, но в целом об этом уже писалось ранее. Стоит погуглить старые статьи Ms-Rem.

3. А не взять ли этот драйвер до момента его загрузки?
Бинго, вариант попроще будет. В самом хардкорном случае берём ядерный дебаггер, ставим брейкпоинт на NtCreateFile, ждём.

-----
Stuck to the plan, always think that we would stand up, never ran.


| Сообщение посчитали полезным: Boostyq, gloom


Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 11 марта 2017 22:51
· Личное сообщение · #17

Boostyq
Имеет смысл отлавливать как раз установку драйвера, пока он ещё не получил управление, но уже распакован.
Для этого нужно хукать SetupAPI, OpenSCManager.

-----
EnJoy!





Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 11 марта 2017 23:13 · Поправил: Boostyq
· Личное сообщение · #18

Такс, разобралась
Защита имеет собственный формат модулей (шифрованные dll без заголовков, сжатый lzo и шифрованный nspack алгоритмом)
Вот почему я не могла найти контроллер драйвера, он не был под вм, его просто не было в списке модулей, т.к. был загружен кастомным лоадером. Я не стала мудрить и просто сняла дамп модуля во время его работы, до наложения обфускации.
Итак, я получила чистую дллку, оказалось что она и хранила в ресурсах 3 драйвера (для старых ос, для новых 32-битных, и новый для 64-битных)
Все три драйвера беззащитны, так что изучение протокола будет проще
Всем спасибо, задача решена, пойду изучать

-----
В облачке многоточия


| Сообщение посчитали полезным: VodoleY, gloom
 eXeL@B —› Основной форум —› Дамп драйвера
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати