Здравствуйте, kochetkov.vladimir, Вы писали:
KV>... что в ней, до недавнего времени, можно было повысить себе права даже с помощью CD-эджектора
Мастер заголовков
Но заинтриговал — пришлось почитать о чем сыр-бор.
В общем, не так страшен черт, но программеру надо руки пообрывать...
Вся суть вот в этих строках (функция, которая возвращает мажор/минор физического устройства, по его логическому имени device-mapper'а):
/* Drop all privileges */
setgid(getgid());
setuid(getuid());
Честно говоря, не очень представляю, как можно проэксплуатировать уязвимость и заставить не сработать setuid
Здравствуйте, DOOM, Вы писали:
DOO>Здравствуйте, kochetkov.vladimir, Вы писали:
DOO>Честно говоря, не очень представляю, как можно проэксплуатировать уязвимость и заставить не сработать setuid
Хотя... Придумал.
Здравствуйте, DOOM, Вы писали:
DOO>>Честно говоря, не очень представляю, как можно проэксплуатировать уязвимость и заставить не сработать setuid DOO>Хотя... Придумал.
Как в андроиде в своё время ? Исчерпать ресурсы, и будет фейлится.
Здравствуйте, IID, Вы писали:
DOO>>Хотя... Придумал. IID>Как в андроиде в своё время ? Исчерпать ресурсы, и будет фейлится.
Почти. Надо не ресурсы исчерпать, а лимит процессов на пользователя, который запускает eject.
Т.е. делаем лимит минимальный (грубо текущее количество процессов + 1), запускаем eject, тут же запускаем еще процессы, чтобы выбрать весь лимит, setuid возвращает EAGAIN, dmcrypt-get-device продолжает выполняться от рута.
Вторая задача — как теперь там сделать выполнение произвольного кода
Здравствуйте, DOOM, Вы писали:
DOO>Честно говоря, не очень представляю, как можно проэксплуатировать уязвимость и заставить не сработать setuid
Возможно есть способ нагнуть для этого аллокатор (по ходу выполнения setuid выделяется память под несколько структур), но в линуксовом лоулевеле я ни разу не эксперт, поэтому хз.
Здравствуйте, alpha21264, Вы писали: A>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>... что в ней, до недавнего времени, можно было повысить себе права даже с помощью CD-эджектора A>У меня создалось стойкое впечатление, что тебе платят за обсирание Линуксов и восхваление Винды.
Нет, это от души Да и не так часто я пишу о линухах (тут у тебя видимо сработал рефлекс "раз хвалит винду, значит наезжает на линукс"?).
У меня всего 4 железки, которыми я более-менее постоянно пользуюсь -- телефон (Android), планшет (Android), планшет (W10, Debian) и ноутбук (W10, Ubuntu). Виндовый планшет, куда еле-еле, но удалось также воткнуть и Debian, пылится на полке по причине практически полной неюзабельности обоих систем в условиях 10-дюймовой таблетки (по сравнению с IOS и Android). Даже принимая во внимание наличие клавиатуры с тачпадом. Беру его с собой только тогда, когда под рукой может понадобиться более-менее полноценный комп, а тащить с собой ноутбук нет возможности, желания или необходимости. На ноуте винда стоит исключительно для игр, живу и работаю я сейчас под убунтой. Для виндовых проектов, под убунтой заведена отдельная виртуалка с виндой (из неё сейчас и пишу), чтобы не приходилось постоянно перезагружаться.
Ну и если бы я писал про каждую уязвимость в линухах, то для этого пришлось бы заводить отдельный форум. А тут -- забавный баг же, разве нет? Раньше сиди-эджекторы были мемом у шароварщиков, а теперь у них есть все шансы стать таковым у безопасников