Новости ЭКСПЛУАТИРУЕМ УТЕЧКУ ИНФОРМАЦИИ В ЯДРЕ LINUX, ЧТОБЫ ОБОЙТИ KASLR

Тема в разделе "Пентестинг", создана пользователем Дима22, 22 апр 2017.

  1. Дима22

    Дима22

    Сообщения:
    671
    Баллы:
    18
    Может тут админчики знаю про
    механизм ASLR (BtcMaker) может знает так вот форумчане VLMI ловите уязвимость

    изучал каталог /proc в Android, и мое внимание привлекло поле WCHAN. Это канал ожидания (wait channel), там содержится адрес события, которое ожидает конкретный про- цесс. Увидеть его можно при запуске команды ps с опцией -l.

    Узнать значение wchan можно из пространства пользователя, прочитав /proc/pid_of_interest/stat. И это довольно странно. Что, если наш про- цесс находится в пространстве ядра? Тогда мы получим адрес ядра?
    Скрин-http://joxi.ru/Vm6xRdLsDXMPdA

    Значение 18446744071579755915 — это, очевидно, место расположения кода ядра, и в hex выглядит следующим образом:

    >>> hex(18446744071579755915)
    '0xffffffff810de58bL'
    В качестве тестовой ОС я выбрал Ubuntu 14.04, но, так как kASLR там не включен по умолчанию, для успешного воспроизведения следующего примера нужно будет его включить.



    Тестовый скрипт очень прост и быстр. Как сказано ранее, в /proc/pid/stat ле- жит код ожидания из пространства ядра, поэтому мы можем:
    1. Зафиксировать это место ожидания.
    2. Получить с помощью WCHAN значение ASLR.
    3. Сравнить утекшее значение с известным «случайным» значением. 4. Вывести смещение.

    Для первого пункта мы можем воспользоваться следующим трюком: если фор- кнуть процесс и перевести его в режим сна, то после этого мы сможем прочи- тать его /proc/sleeping-pid/stat, и, пока процесс спит, это будет стабильным значением.

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

    Вот пример на Python
    Пример-http://joxi.ru/823xK56sJXRdBA

    Вот как будет выглядеть результат работы.

    /cdn-cgi/l/email-protection:~/Documents$ python infoleak.py
    Leaking kernel pointers...
    leak: 0xffffffffb70de58b 18446744072485725579
    kASLR slide: 0x36000000

Поделиться этой страницей

Top