C++ MAJESTY technologies (sample Anti-reverse KM lib)

✊Rot Front✊
Пользователь
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
132
Реакции[?]
257
Поинты[?]
85K
Поскольку мне стало скучно в UM,то я решил написать какой-нибудь драйвер.
Это небольшой драйвер для обнаружение UM\KM дебаггеров и гипервизоров.
Драйвер ещё в разработке,поэтому можете предлагать свои идеи!

Пожалуйста, авторизуйтесь для просмотра ссылки.


Особенности:

1)Обнаружение UM дебаггеров:
PEPROCESS-> NoDebugInherit
PEPROCESS-> DebugPort
PETHREAD -> HideFromDebugger(вручную устанавливаем флаг)
PEPROCESS -> InheritedFromUniqueProcessId

2)Обнаружение KM дебаггеров:
Проверка глобальных значений.
Вызов некоторых функций,которые должны вернуть STATUS_DEBUGGER_INACTIVE.

3)Сделать процесс защищённым(aka мелкий пиздюк ObRegisterCallbacks)
Я просто обновил
Пожалуйста, авторизуйтесь для просмотра ссылки.


4)Проверка на гипервизор.

5)проверка на instrumentation callbacks
PEPROCESS-> Pcb -> InstrumentationCallback

6)нет секции импорта
Я пока отказался от выделения пулов,но я планирую их добавить для дополнительных обнаружений
(например:вручную установит HideFromDebugger в PETHREAD(Hi EAC ))
Защищенный процесс:
Protect Process.png

Софт под HyperHide:
Under HyperHide.png
Обнаружение instrumentation callback :
Detect instrumentation callbacks.png
To-do list:
1)коммуникация
2)вычислять NtApi по хэш-значению,а не xorstr
3)проверки на хуки(например:SSDT)
Все права принадлежат:Тифу (Молодой человек#3981) и MAJESTY#3365!(без рофла)
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
23
Реакции[?]
3
Поинты[?]
0
когда подгружаю драйвер ловлю bsod с ошибкой system_service_exception как пофиксить?
 
✊Rot Front✊
Пользователь
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
132
Реакции[?]
257
Поинты[?]
85K
когда подгружаю драйвер ловлю bsod с ошибкой system_service_exception как пофиксить?
Перед тем как я дам ответ,я объясню:
Я решил скрыть весь импорт,поэтому я передаю базовый адрес ntoskrnl.exe через параметр,а после идёт ходьба по экспорту(Вы можете передать любое количество параметров)
(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
Если вы хотите просто загрузить драйвер(а не сопоставить),то вам нужно добавить выгрузку драйвера.
Если вы хотите просто протестить- gl_baseNtoskrnl = GetKernelBasebyDisk(L"ntoskrnl.exe");
Также настройте конфигурацию проекта(она настроена для сопоставленного драйвера)
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
23
Реакции[?]
3
Поинты[?]
0
Перед тем как я дам ответ,я объясню:
Я решил скрыть весь импорт,поэтому я передаю базовый адрес ntoskrnl.exe через параметр,а после идёт ходьба по экспорту(Вы можете передать любое количество параметров)
(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
Если вы хотите просто загрузить драйвер(а не сопоставить),то вам нужно добавить выгрузку драйвера.
Если вы хотите просто протестить- gl_baseNtoskrnl = GetKernelBasebyDisk(L"ntoskrnl.exe");
Также настройте конфигурацию проекта(она настроена для сопоставленного драйвера)
сколько раз пытался, всё равно ловлю bsod. маппаю драйвер через kdmapper пытался и через kdu тот же результат
 
✊Rot Front✊
Пользователь
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
132
Реакции[?]
257
Поинты[?]
85K
сколько раз пытался, всё равно ловлю bsod. маппаю драйвер через kdmapper пытался и через kdu тот же результат
У вас точно конфигурация :x64 Release?
Вы точно не забыли настроить проект под manual map driver?
Свойства конфигурации -> c++ -> создания кода -> отключить проверку безопасности.
Свойства конфигурации -> компоновщик -> точка входа(DriverEntry)
Я передаю 1 параметром базовый адрес ntoskrnl.exe(я писал об этом)
Screenshot_15.png
Я сказал код с github и он у меня отлично работает(если я выполняю условия выше)
P.S какая у вас версия и сборка windows?
Screenshot_16.png
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
31 Июл 2017
Сообщения
23
Реакции[?]
3
Поинты[?]
0
У вас точно конфигурация :x64 Release?
Вы точно не забыли настроить проект под manual map driver?
Свойства конфигурации -> c++ -> создания кода -> отключить проверку безопасности.
Свойства конфигурации -> компоновщик -> точка входа(DriverEntry)
Я передаю 1 параметром базовый адрес ntoskrnl.exe(я писал об этом)
Посмотреть вложение 184843
Я сказал код с github и он у меня отлично работает(если я выполняю условия выше)
P.S какая у вас версия и сборка windows?
Посмотреть вложение 184844
Да я всё настроил как нужно, но теперь получаю bsod с другой ошибкой kmode_exception_not_handled. У меня 2004 Сборка 19041.264
 
✊Rot Front✊
Пользователь
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
132
Реакции[?]
257
Поинты[?]
85K
Да я всё настроил как нужно, но теперь получаю bsod с другой ошибкой kmode_exception_not_handled. У меня 2004 Сборка 19041.264
Довольно странно:Попробуйте отключить некоторые функции и посмотрите результаты.
Возможно, документация
Пожалуйста, авторизуйтесь для просмотра ссылки.
слегка неправильная(маловероятно).
Лучше напишите мне в дискорде.
P.S тесты проходили только на windows 10 21H1 сборка 19043.1348 и 10 20H2 сборка 19042
 
✊Rot Front✊
Пользователь
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
132
Реакции[?]
257
Поинты[?]
85K
V 1.2
Предновогоднее обновление!
-Проверка dr регистров(dr6 & dr7)
-Теперь дебаггеры ломаются из-за перезаписи ValidAccessMask (если только не переписать на 0x1ff000f обратно) и DbgkpProcessDebugPortMutex(из-за чего дебаггер ведёт себя неадекватно) на 0.
-добавил 2 детекта KM дебаггера( KdpContext & KdpBootedNoDebug )
P.S сигнатуры 100 % должны работать на windows7 sp1 and windows 10(на 11 не тестил).
Есть идеи - предлагайте!
 
всем прив верите ли вы в призраков ???
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2018
Сообщения
861
Реакции[?]
338
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Чел, люблю тебя :hearteyes::hearteyecat:
 
✊Rot Front✊
Пользователь
Статус
Оффлайн
Регистрация
2 Июл 2020
Сообщения
132
Реакции[?]
257
Поинты[?]
85K
Поскольку никто ничего не предлагал(вообще),то у меня нет желания писать новые детекты и плюшки т.е проект закрыт.
Надеюсь,это нормальный пример драйвера для обнаружения UM/KM дебаггеров и гипервизоров.
P.S можете изменить сигнатуры и код,чтобы он работал на windows 7-8.1,хотя поддерживать данные версии windows нет смысла в 2022.
 
Сверху Снизу