Сейчас на форуме: Alf, Dart Raiden, bedop66938 (+8 невидимых) |
eXeL@B —› Электроника —› project:rosenbridge - VIA C3 CPU backdoor |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 28 августа 2018 11:58 · Личное сообщение · #1 project:rosenbridge Описание Аппаратный Позволяет получить полный контроль над системой в Ring 0. Overview project:rosenbridge reveals a hardware backdoor in some desktop, laptop, and embedded x86 processors. The backdoor allows ring 3 (userland) code to circumvent processor protections to freely read and write ring 0 (kernel) data. While the backdoor is typically disabled (requiring ring 0 execution to enable it), we have found that it is enabled by default on some systems. This repository contains utilities to check if your processor is affected, close the backdoor if it is present, and the research and tools used to discover and analyze the backdoor. Сорсы: ----- EnJoy! | Сообщение посчитали полезным: SDK, ELF_7719116, 4kusNick, ntldr, stnt, HandMill, sefkrd, mak |
|
Создано: 28 августа 2018 22:23 · Личное сообщение · #2 |
|
Создано: 28 августа 2018 22:34 · Личное сообщение · #3 |
|
Создано: 28 августа 2018 23:17 · Личное сообщение · #4 |
|
Создано: 29 августа 2018 20:17 · Поправил: difexacaw · Личное сообщение · #5 Jupiter Не в описании дело. Объясню причём тут никсы. Не так давно была уязвимость - mlt & spectre. Так вот это было нацелено именно на никсы, а ядро нт так устроено, что снять статистику по кэшу невозможно. И в данном случае опять же примеры на никсах и логичное следствие - только там это и сработает, хоть я и не читал матчасть. ----- vx |
|
Создано: 29 августа 2018 21:22 · Личное сообщение · #6 |
|
Создано: 29 августа 2018 21:51 · Поправил: f13nd · Личное сообщение · #7 Code:
Ну типа инструкция 0F 3F(vpcext? 2 байта?) и если по _bridge код исполняется, значит уязвимость есть. И то же самое, когда по этой метке ассемблируют очень странным ассемблером (который есть ни что иное как fed commands, wrapped in a specially formatted x86 instruction) свой код bypassing all memory protections and privilege checks. Вопросов на самом деле больше чем ответов. ЗЫ: и все это после шаманства над "/dev/cpu/0/msr". WRMSR—Write to Model Specific Register This instruction must be executed at privilege level 0 or in real-address mode; otherwise, a general protection exception #GP(0) will be generated. Наверное потому и никсы. Ну знаете, демонстрация уязвимости с попаданием в нулевое кольцо, для которой надо кое-что сделать в нулевом кольце, не так эффектна. ----- 2 оттенка серого | Сообщение посчитали полезным: difexacaw |
|
Создано: 30 августа 2018 02:37 · Личное сообщение · #8 Jupiter Посмотрел подробно. Тут поднимаются права до кмоде Штатным путём alloc_chrdev_region() и прочий линукс-апи для запуска кода в ядре. Затем переключается дескрипторная таблица прерываний - устанавливается видимо ловушка. Тут Вот тут сама эскалация"(это после обычной отработки в ядре лол ) Code:
Невалид IA опкод: 2-byte escape & 3F который приведёт к срабатыванию ловушки. Сурки там раскиданы и где искать обработчики я хз. Это чистые линукс фичи и никакого бэкдора там походу нет. ----- vx |
|
Создано: 30 августа 2018 02:51 · Личное сообщение · #9 difexacaw пишет: Сурки там раскиданы и где искать обработчики я хз. Почитай что там про папку kern сказано. Code:
А типа использование бекдора вот оно, всё целиком, кроме флагов в MSR. Если не заработало, ну значит не повезло. ----- 2 оттенка серого |
|
Создано: 30 августа 2018 02:55 · Поправил: difexacaw · Личное сообщение · #10 |
|
Создано: 30 августа 2018 08:46 · Поправил: cppasm · Личное сообщение · #11 difexacaw пишет: Сурки там раскиданы и где искать обработчики я хз. Это чистые линукс фичи и никакого бэкдора там походу нет. Походу ты как обычно нифига не понял, но на всякий случай отписал в теме что все нубы и пошёл пилить очередной нафиг никому не нужный мотор. Какие обработчики, какие Линукс фичи? 1. Для активации бэкдора нужна запись в MSR - нужен Ring0. И про это сказано даже в первом посте. И работает это только на VIA C3 (если работает, без проца это не проверить никак). 2. Если бэкдор активирован и поддерживается - 0Fh,3Fh не вызывает #UD, а передаёт управление на адрес из EAX. Причём система команд после перехода не х86 и для этого кода не работают все проверки защиты. Поэтому можно делать что хочешь - по факту Ring0 привилегии в Ring3. В этом вся суть - 0Fh,3Fh не вызывает #UD как должен, а вызывает переход в какой-то особый режим. Всё остальное Линукс специфичное - это просто регистрация устройства в системе которое предоставляет IOCTL для чтения/записи ядерной памяти. К бэкдору по сути отношения не имеет вообще. Т.е. реализовано то оно там с помощью бэкдора (переход+хитрые эти опкоды), но из драйвера можно было и тупо ядро читать/писать. | Сообщение посчитали полезным: 4kusNick, punxer |
|
Создано: 30 августа 2018 15:15 · Личное сообщение · #12 cppasm пишет: Причём система команд после перехода не х86 В какая? Никто не пытался определить хотя-бы перебором известных архитектур? ----- PGP key |
|
Создано: 30 августа 2018 17:00 · Поправил: f13nd · Личное сообщение · #13 ntldr пишет: какая? Никто не пытался определить хотя-бы перебором известных архитектур? Никакая. Если все так, как написано, то инструкции кодируются в полях инструкции bound. Разработчик утверждает, что частично набор инструкций угадал, подбирая биты и глядя на результат. Мне больше интересно как не видя пример использования все это можно было угадать. Проц пилить? ----- 2 оттенка серого |
|
Создано: 31 августа 2018 20:35 · Поправил: difexacaw · Личное сообщение · #14 cppasm > Какие обработчики, какие Линукс фичи? Перезагрузки дескрипторных таблиц например, откройте ссылку выше. Не важно зачем это используется, важен сам факт использования. Такое на нт например реализовать сложно и не ясно зачем. Эти вещи уровня архитектуры, такой трюк - не просто так сделан. Это руткит-техника. Тем более такой изврат в опенсорс ос просто не допустим. 1. Попадаем в рекурсию. Для поднятия прав до км нужны км права. 2. Вызывает, для этого видимо и нужны ловушки, либо для расширения набора инструкций. Нужно подробно изучать сурки, коментов там нет. 3. 0F3F - врядле вызывает переход в какой то мод. Даже если допустить что такое возможно, то откуда взялась не ясная система команд, такой примитивный бэкдор не мог реализовать вендор и есчо при этом выложить инфу. Побитные тесты и формирование на этом системы команд - фантастика. Есть даже мнение что из за не знания поведения ос автор сей техники понимает это как железячный косяк. Похожая ситуация есть с обработкой ловушек на нт, там происходит ядерная раскодировка инструкций, которая не корректна. Жаль что это невозможно никак проверить из за отсутствия железа. ----- vx |
|
Создано: 31 августа 2018 21:52 · Личное сообщение · #15 difexacaw пишет: 1. Попадаем в рекурсию. Для поднятия прав до км нужны км права. Ну почитай же хоть текстовое описание перед тем как писать. Написано же что было обнаружено что бэкдор активирован из коробки на многих системах. difexacaw пишет: 2. Вызывает, для этого видимо и нужны ловушки, либо для расширения набора инструкций. Не вызывает он #UD если бэкдор поддерживается. Ловушка нужна чтоб всё не упало если таки бэкдор не поддерживается и будет #UD. difexacaw пишет: 3. 0F3F - врядле вызывает переход в какой то мод. Даже если допустить что такое возможно, то откуда взялась не ясная система команд, такой примитивный бэкдор не мог реализовать вендор и есчо при этом выложить инфу. Ясно - этого не может быть потому что не может быть. Очевидно что инфу выложил не вендор. А так без проца такого разговор ни о чём - проверить мы не сможем. |
|
Создано: 31 августа 2018 21:58 · Личное сообщение · #16 cppasm пишет: Ну почитай же хоть текстовое описание перед тем как писать. Да он влез в папку с утилитами для отладки в км и упорно считает, что это часть примера использования бекдора. cppasm пишет: А так без проца такого разговор ни о чём - проверить мы не сможем. У меня курикс где-то валялся в качестве сувенира, надо у родителей в своем хламе будет порыться, может не выкинули. Но матери к нему точно нету в закромах родины. ----- 2 оттенка серого |
|
Создано: 31 августа 2018 22:17 · Личное сообщение · #17 f13nd пишет: У меня курикс где-то валялся в качестве сувенира Аналогично. Только вот бессмысленно это всё на данный момент. Ладно бы что-то современное было, а так только в качестве некоего недоразумения. Ну допускаю, что эти процы где-то сейчас работают. Но если и работают, то всякий бред там не запускается. |
|
Создано: 31 августа 2018 22:38 · Личное сообщение · #18 cppasm 1. Так как вы настаиваете, то прочитал есчо раз первый пост, никакой новый инфы от прочтения не получил. Так что это был пустой и бесполезный совет. На заборе много чего написано, это не повод доверять написанному. 2. Это очевидно. Вы это сказали по той самой причине, опираться вам нету на что - инфа врядле какая то техническая имеется, а это значит что это не более чем ваше мнение goto п.1 3. Да, это выложил никто, неизвестный человек как кучу не понятных сурков на линуксе. С дичайшими извратами к ядре. f13nd > Да он влез в папку с утилитами для отладки в км и упорно считает, что это часть примера использования бекдора. Тоесть у вас ссылки выше ведут в каталог отладки, тогда у вас какой то косяк, раз пути изменяются. ----- vx |
|
Создано: 31 августа 2018 22:42 · Поправил: f13nd · Личное сообщение · #19 difexacaw пишет: Тоесть у вас ссылки выше ведут в каталог отладки, тогда у вас какой то косяк, раз пути изменяются. Эти две точно в папку kern ведут: difexacaw пишет: Посмотрел подробно. Тут поднимаются права до кмоде --> Link <-- https://github.com/xoreaxeaxeax/rosenbridge/blob/master/kern/privregs/privregs.c difexacaw пишет: Тут --> Link <-- также реализуется ядерный IOCTL штатным путём для доступа к км памяти. https://github.com/xoreaxeaxeax/rosenbridge/blob/master/kern/deis_kernel.c которая содержит A collection of helper utilities used to monitor kernel memory and registers for changes caused by fuzzed DEIS instructions. ----- 2 оттенка серого |
|
Создано: 31 августа 2018 22:46 · Личное сообщение · #20 |
|
Создано: 31 августа 2018 22:53 · Личное сообщение · #21 hypn0 И по какой то причине он реализовал ядерный эмулятор, регая драйвера, устанавливая свою IDT etc. Пример должен быть юзермод, без всякого ядерного говна в никсах. Нечего в этом больше обсуждать, так как для вас походу сам код незаметен, главное что он есть. Тут сразу таких две темы появились, в них - пример ради примера", запуск км кода через какие то извраты из того же мода. Грибной сезон открыт ----- vx |
|
Создано: 31 августа 2018 23:02 · Личное сообщение · #22 difexacaw пишет: И по какой то причине он реализовал ядерный эмулятор, регая драйвера, устанавливая свою IDT etc. У меня складывается ощущение, что Вы просто непонятные слова в кучу сваливаете, как-то комбинируете и потом их используете. Какой эмулятор? Какие драйверы? Наркотики - зло! Где тут хоть слово про эмулятор? Он не реализовал эмулятор, он разобрал команды проца и использует их. |
|
Создано: 31 августа 2018 23:12 · Поправил: difexacaw · Личное сообщение · #23 hypn0 Обьясню если вам не понятно. Как расширить набор команд в юм - конечно же установить ловушку и использовать пустые поля IA кодировки, которые приводят к #UD. В ловушке мы проводим эмуляцию и таким образом у нас есть новая рабочая инструкция. Иначе незачем трогать дескрипторные таблицы. Кстате если в линуксах нельзя через апи работать с ловушками, то это более чем убогая мягко сказано архитектура". Добавлено спустя 15 минут hypn0 > Вы просто непонятные слова в кучу сваливаете Я не буду как то конкретно на это отвечать, тоесть это мне всё равно что вы думаете, тут есть лишь мнение. Я не использовал вроде бы как какие то термины в данном обсуждении. В данном случае если вам что то не ясно - идите курите базовые доки по архитектуре. Что такое дескрипторные таблицы и прерываний в частности, кроме этого вроде бы ничего я не говорил. ----- vx |
|
Создано: 31 августа 2018 23:32 · Поправил: hypn0 · Личное сообщение · #24 difexacaw Я конечно тупой и ничего не понял. Но мне интересно, Вы вот всё так обсираете не разбираясь? Некоторое время назад в hack-сообществе был такой Крис Касперски, который много говорил про микрокод процессоров Intel. Над ним смеялись почти все, а потом оказалось, что он прав. Более того, появились описания разных уязвимостей, которые до сих пор не могут нормально исправить. У меня есть архивы общения в FIDO. Там много всего интересного присутствует, хоть и давно это было. Многим сейчас это может не понравиться. Так что не пишите бред. Лучше разберитесь. Или совсем лучше, оставьте всё как есть. Без вас разберутся. |
|
Создано: 01 сентября 2018 00:02 · Личное сообщение · #25 |
|
Создано: 01 сентября 2018 08:36 · Личное сообщение · #26 hypn0 пишет: был такой Крис Касперский Всё-таки Крис называл себя «Крис Касперски», а не «Крис Касперский». difexacaw пишет: Как расширить набор команд в юм - конечно же установить ловушку и использовать пустые поля IA кодировки Инд, ты пойми, что речь не о создании новых опкодов в доступных незанятых полях IA и не в обработке эмулятором этих фейковых инструкций, а в том, что в конкретной железке VIA C3 есть скрытое ядро, которое несовместимо с набором IA. Именно под него и написан эксплоит, который использует уязвимость (по факту бэкдор) этого самого ядра. ----- EnJoy! | Сообщение посчитали полезным: hypn0 |
|
Создано: 01 сентября 2018 09:05 · Личное сообщение · #27 |
|
Создано: 01 сентября 2018 09:33 · Личное сообщение · #28 |
|
Создано: 01 сентября 2018 14:55 · Поправил: difexacaw · Личное сообщение · #29 Jupiter Это понятно, вопросов бы небыло, если бы не эти манипуляции с IDT etc. Недоверие из за прошлой MLT уязвимости(meltdown). Тоже была куча примеров и все не рабочие. Это стабильно работало лишь в никсах, был облом на тестах кэша. Поэтому доверять каким то сомнительным источникам не следует, тем более один человек мог не верно интерпретировать результаты при тестах. Да и смысл в этом всём отсутствует, это не обычное поднятие прав типо кернел-эксплойт, а драйверный запуск POC. Добавлено спустя 5 минут > по факту бэкдор Бэкдор позволяет поднять права, в данном же случае нужна куча манипуляций в км что бы это запустить, поэтому нельзя назвать бэкдором. Даже если это и работает, то лишь как расширение и не в обход защиты(тк для запуска нужны км права: обычная CPL проверка). ----- vx |
|
Создано: 01 сентября 2018 16:56 · Поправил: f13nd · Личное сообщение · #30 difexacaw пишет: Бэкдор позволяет поднять права Это стороннему ваську не позволяет, а VIA зачем-то это в чипе оставили. Когда и если оставили. Никто уже особо не скрывает, что продукция Apple или Cisco не лучший выбор для тех, у кого есть секреты от АНБ США. Это не столько "смотрите, вы можете на старом редком гавне 20летней давности стать рутом, если сможете установить нужные флаги в msr", сколько "смотрите, что эти скоты делают". И если например в комплекте со швейной машинкой идет шлицевая отвертка, ты делаешь вывод, что этот аппарат умеет завинчивать болты? ----- 2 оттенка серого |
. 1 . 2 . >> |
eXeL@B —› Электроника —› project:rosenbridge - VIA C3 CPU backdoor |