Методы определения chroot'а

Discussion in 'Уязвимости' started by KIR@PRO, 23 Mar 2015.

  1. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    Предлагаю в этой теме выкладывать различные методы/способы определения нахождения в chroot'е.

    1. Следующие папки пусты или вовсе отсутствуют:
      /proc
      /dev
      /sys​
    2. В файле /etc/shadow нету хешей :eek: (не 100% chroot, но в 90% означает его наличие (например при создании окружения для chroot'a с помощью debootstrap))
    3. /proc смонтирована и можем просматривать список процессов. Необходимо проверить наличие исполняемых файлов запущенных процессов, для этого, у каждого процесса читаем линк "stat /proc/[PID]/exe" и проверяем доступность файла на диске(ls -l "/path/name"), если его нет, то мы в chroot'е, а этот процесс скорее всего нет (исключением является процесс, файл которого после запуска был разлинкован (удален) )...
    4. mount работает, но отображает только одну запись смонтированного корня "/" или вообще ни чего не выводит... Так же если отсутствует запись о смонтированной sysfs/procfs/devpts/devtmpfs то с большой долей вероятности можем сказать, что мы под колпаком chroot'a


    Дополняем способами, методами определения, ведь chroot такая гадость, которая будет сворачивать кровь даже после повышения прав.
     
    _________________________
    1 person likes this.
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    KIR@PRO
    Code:
    stat -c %i /
    Если не 1, 2, 3, 128 - то chroot

    Вроде же с рутом нет особых проблем. Не помню случаев, когда chroot('..') не помогал
     
    _________________________
    YaBtr and KIR@PRO like this.
  3. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    К слову говоря, жду не дождусь узнать содержимое доклада http://www.phdays.ru/program/40649/

    "chroot .." - не поможет (даже от root)

    p.s. как вариант можно конечно написать модуль ядра, скомпилить его и загрузить, чтоб он для родительского процесса (bash/sh/etc..) изменил корень, на идентичный процессу [init]... но это естественно от рута или sudo пользователя
     
    _________________________
  4. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    chroot /proc/1/cwd/
    вот мы и вышли за пределы чрута
     
    _________________________
    KIR@PRO likes this.