nlothik (nlothik) wrote,
nlothik
nlothik

Безопасная ОС Линукс

"Это какой-то... позор?"

Originally posted by dil at 0-day in GRUB2
Originally posted by malaya_zemlya at 0-day in GRUB2
Если кто не видел - в популярном загрузчике Grub2 обнаружена уязвимость, позволяющая обходить защиту паролем, и дающая полный доступ к шеллу.

Эксплоит: вместо введения пароля нажать на Backspace ровно 28 раз, а потом Enter

Нет, это не секретный бекдор и не шутка девелоперов. Тут произошло нечто потрясающее. Постараюсь передать вкратце (если кому интересны все детали, то смотрите линк).

Если вместо ввода пароля нажимать на Backspace, то из-за пропущенной проверки программа заезжает за пределы буфера и начинает затирать нулями память с отрицательным смещением. Бывает.
В результате затирается стек, включая адрес возврата из текущей функции. Ок.
Соответственно, процессор прыгает на адрес 0, при чем в регистре esi остается текущая длина пароля, то есть -28.
По адресу 0, как водится, расположена таблица IVT, где лежат адреса обработчиков системных прерываний, но процессор ее сейчас интерпретирует не как адреса, в как исполняемый код. Оказывается, что в такой интерпретации IVT содержит функцию копирования блока памяти, где адрес, куда копировать, берется из регистра edi (он у нас установлен тоже в 0), а адрес откуда - из того самого регистра esi.
Получается, что функция начинает править собственный код и копировать данные из адреса -28 прямо поверх самой себя. Причем в цикле.
На первый раз портятся несколько инструкций в начале, но не критично.
На второй раз добавляются какие-то инструкции, меняющие содержимое стека,
А дальше... дальше появляется инструкция retw. Она берет со стека число и прыгает по обозначенному им адресу. А на стеке в этот момент лежит адрес встроенного шелла.

Занавес.

Tags: wtf, ведроид, компьютерное, на вентилятор, сисадминское
Subscribe

  • В интернете есть всё

    И любая информация находится за три секунды. Ага. Так считают люди, которые никогда не пробовали найти информацию по медицинским шприцам и иглам.…

  • Так и не понял, что это

    Попробовал во второй раз купить что-то на Алиэкспрессе. Первый раз мне как-то не понравился, но ладно. Купил лабораторный блок питания, он мне…

  • Русская, что ли

    Ехал из офиса, проезжал через небольшой городок, увидел интересный номерной знак. Впрочем, конечно, возможно, что это “а-ха”,…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments