LINUX.ORG.RU

Выполнение кода в ядре без insmod и kexec

 


1

1

Допустим, есть устройство на линуксе. К нему есть root доступ, но нужно еще загрузить некий код в ядро и выполнить его там. /dev/mem /dev/kmem и /proc/kcore не работают. Запатчить или подменить ядро в /boot/ тоже не вариант. Какие есть еще способы?

★★★★★

Если это было-бы возможно, это была-бы офигенная дырища в безопасности. Почему модуль написать не можешь - там же только хидеры ядра нужны?

cherry-pick
()

Вообще, учитывая что мы предполагаем наличие root доступа, дыра в безопасности уже есть. Есть ли какие-нибудь куски кода в ядре, которые можно было бы вызвать из юзерспейса и переписать таким образом какой-нибудь кусок исполняемого кода в самом ядре? А если я например смонтирую swap раздел и во время работы системы со swap-разделом начну его менять как файл? А если раздел не swap а какой-нибудь файловой системы?

SZT ★★★★★
() автор топика
Ответ на: комментарий от SZT

А если я например смонтирую swap раздел и во время работы системы со swap-разделом начну его менять как файл?

То у тебя скорее-всего тупо все покрешится. Алсо, память ядра не свапится никогда. Вообще.

А если раздел не swap а какой-нибудь файловой системы?

Поломаешь ФС своими кривыми руками так, что fsck уже не спасет.

и переписать таким образом какой-нибудь кусок исполняемого кода в самом ядре?

Нет.

cherry-pick
()
Ответ на: комментарий от SZT

сказали же не свопится, хакир. ну не твое это, оставь :)

anonymous
()
Ответ на: комментарий от SZT

Ну так запилити тикет производителю, чтобы он пофиксил? Или это китайщина какая без техподдержки? Тогда опять-таки ССЗБ - скупой платит дважды.

cherry-pick
()
Ответ на: комментарий от SZT

Производитель не предоставил? Или вы девайс на ибее купили? В любом случае, смотри мой предыдущий пост про скупость.

cherry-pick
()

«Посоны, как взломать Linux?!!11»

tailgunner ★★★★★
()
Ответ на: комментарий от cherry-pick

Отключение-подписывание модулей ядра сделано специально, чтобы не допустить выполнение проивольного кода уровня ядра на девайсе. С чего они должны мне что-то там фиксить и отправлять ключи для подписи? Может мне еще в apple обратиться чтобы они мне джейлбрейк к айпаду выслали?

SZT ★★★★★
() автор топика
Ответ на: комментарий от SZT

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

И ты думаешь, что в ядре не сделали тоже самое, и разрешили коду из userspace просто так срать в kerlenspace. Лiл.

С чего они должны мне что-то там фиксить и отправлять ключи для подписи?

А ты для какой цели девайс то купил, лолка? Ты при покупке не знал что-ли, что тебе нужно будет модули ядра пилить свои? Если знал - то почему всеравно купил?

cherry-pick
()
Ответ на: комментарий от Pinkbyte

Секрет. Может когда (если) похакаю - сообщу

SZT ★★★★★
() автор топика
Ответ на: комментарий от cherry-pick

А ты для какой цели девайс то купил, лолка? Ты при покупке не знал что-ли, что тебе нужно будет модули ядра пилить свои? Если знал - то почему всеравно купил?

Чтобы хакнуть и пилить модули ядра.

SZT ★★★★★
() автор топика

Кстати надо еще проверить, там оперативка расположена внутри SOC-а или на отдельной микросхемке

SZT ★★★★★
() автор топика
Ответ на: комментарий от devl547

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

SZT ★★★★★
() автор топика

/dev/mem /dev/kmem и /proc/kcore не работают

Почему?

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

true_admin ★★★★★
()
Ответ на: комментарий от SZT

А нафига ты тогда взял такой девайс, где неподписанные модули не поставишь? Что за BDSM? Ты не из ВНИИНС, случаем - тамошние разработчики обычно любят такое.

cherry-pick
()
Ответ на: комментарий от SZT

Ты это серьезно? Ты хоть знаешь, какие байтики тебе патчить надо будет? С вероятностью 0.(9) ты просто девайс/ядро заставишь о бытие задуматься.

cherry-pick
()
Ответ на: комментарий от true_admin

Потому что этот функционал в ядре отключим

Что мне дадут локальные дыры, если предполагаем root у меня уже есть? Через них можно код ядра в оперативке запатчить, чтобы можно было делать insmod?

SZT ★★★★★
() автор топика
Ответ на: комментарий от SZT

Ну ты бы рассказал, что за железка-то. Вдруг можно переписать, скажем, бутлоадер, чтобы он не проверял подпись ядра, а потом подсунуть свое ядро?

Deleted
()
Ответ на: комментарий от Deleted

Бутлоадер проверяется другой фигней, которую разве что можно выпаять и заменить(разумеется это гораздо проще чем патчить байтики в оперативке налету). Но хочется чисто софтварного решения

SZT ★★★★★
() автор топика
Ответ на: комментарий от SZT

Через них можно код ядра в оперативке запатчить, чтобы можно было делать insmod?

Да, если найдёшь подходящую дыру и подходящий эксплоит. Но, скорее всего, потребуется написать свой шелл-код.

true_admin ★★★★★
()
Ответ на: комментарий от SZT

что можно выпаять и заменить

Это хорошо. Обычно проверятор бутлоадера сидит внутри SoC.
Тогда и правда стоит поискать дырки в ядре, чтобы была возможность исполнить код на кернел сайде. Такие, мне кажется, существуют в природе.

Deleted
()
Ответ на: комментарий от Valdor

Если есть root, то враг уже внутри.

Вот как раз топик о том что это не так. Рут тоже ограниченный пользователь, особенно если есть selinux или другая RBAC. Именно поэтому рут не может подгружать модули — потому что у него отнють не все права есть.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Врядли будет подходящий эксплоит, придется самому костылить: готовые сплоиты чаще всего под х86, а у ТС может быть, скажем, какой-нибудь мипс китайский или альфа.

Deleted
()
Ответ на: комментарий от Valdor

Ну ок. И как мне выполнить код уровня ядра, если у меня есть root но нет возможности сделать insmod, kexec, писать в /dev/mem, /dev/kmem, /proc/kcore ?

SZT ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Обычно проверятор бутлоадера сидит внутри SoC.

Возможно он и в SoC. Известно только то, что измененный u-boot не работает, а где физически расположен проверяющий его код - хз

SZT ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Да, можно будет посмотреть. Но меня больше интересуют чисто программные решения, без паяльника

SZT ★★★★★
() автор топика
Ответ на: комментарий от Deleted

а у ТС может быть, скажем, какой-нибудь мипс китайский или альфа.

Более чем уверен :)

true_admin ★★★★★
()
Ответ на: комментарий от Sorcerer

Сейчас нет возможности посмотреть. Но предположим что он есть. Что с ним можно сделать?

SZT ★★★★★
() автор топика
Ответ на: комментарий от annulen

пост не читай @ сразу отвечай

Запатчить или подменить ядро в /boot/ тоже не вариант.

Сделай бинарный патч для ядра

mix_mix ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.