#2 Файловая система: Выбираемся из chroot - Docker

Поделиться
HTML-код
  • Опубликовано: 5 авг 2020
  • Опубликовано на Patreon 16 июля 2020 года
    Видео создано благодаря подписчикам проекта на нашем Patreon.
    Хотите получать контент на 3 месяца раньше остальных? Присоединяйтесь! / javascriptninja

Комментарии • 28

  • @avai1ab13u53rnam3
    @avai1ab13u53rnam3 3 года назад +16

    *Краткое содержание видео + временные метки*
    Доступ к root fs из-под chroot. Демонстрация pivot_root. Псевдофайлы в /proc/. Анонс namespaces в следующем видео. Ни слова про docker.
    00:14 - Можно ли "убежать" из chroot?
    (Может ли процесс, запущенный посредством chroot получить доступ к "настоящему" корню файловой системы?)
    03:12 - Программка "эксплойт" на языке C, которая переходит в "настоящий root": листинг кода + объяснение.
    Эксплойт выполняет следующее:
    Получает права суперпользователя.
    Сохраняет файловый дескриптор текущей директории.
    Выполняет chroot в созданную подпапку.
    Переходит (fchdir) обратно в "старый chroot directory", таким образом "выходя" из контекста chroot созданной подпапки.
    Выполняет chdir(".."), пока не перейдет в "настоящий корень". Операционка уже не запрещает.
    Выполняет chroot в "настоящем корне".
    Вызывает shell.
    05:54 - Компиляция и демонстрация "эксплойта"
    06:48 - Как с этим бороться?
    07:25 - команда pivot_root
    (меняет рут + монтирует "старый рут" в указанную папку)
    _В результате выполнения команд придется убить старый дистрибутив убунты в wsl_
    08:44 - указание папки как mountpoint с помощью команды mount --bind
    11:42 - монтирование /proc (внутри pivot_root)
    (чтобы "починить" системные утилиты).
    13:05 - остановка wsl контейнера и неудачная попытка подключится к нему заново
    13:45 - краткая демонстрация содержимого /proc
    uptime, параметры с которыми было загружено ядро,
    14:04 - демо того, как linux представляет разные атрибуты процессов Linux в виде псевдофайлов в /proc/${pid}
    где $pid - айдишник процесса (колонка PID из аутпута ps aux)
    14:04 - просмотр текущей директории процесса
    ls /proc/${pid}/cwd
    14:45 - просмотр команды, которая запустила процесс
    cat /proc/${pid}/cmdline
    15:09 - просмотр корневой директории процесса
    ls /proc/${pid}/root/
    15:19 - просмотр параметров процесса init (PID=1)
    Демонстрация того, что через /proc/1/root/ можно получить доступ к "настоящему руту"
    15:37 - Выводы:
    можно "убежать" из chroot, если есть права superuser-а или доступ к /proc/
    chroot всё еще позволяет
    взаимодействовать с другими процессами
    потреблять сколько угодно ресурсов (cpu, memory, storage, etc)
    как угодно использовать сеть
    16:33 - как pivot_root позволяет изменить root directory init-процесса (с pid=1)

  • @JohnSmith-ok1vi
    @JohnSmith-ok1vi 3 года назад +4

    Все понятно, снято отлично, информация донесена полностью! Спасибо! Однозначно лайк!

  • @kychkin_nikolay
    @kychkin_nikolay 2 года назад +3

    Очень круто! Ждём: "Как выбраться за пределы виртуальной машины браузера"

  • @realfootball338
    @realfootball338 3 года назад +5

    Спасибо за реально годные туториалы

  • @daenur548
    @daenur548 7 месяцев назад

    Спасибо, это интересно, приятно и познавательно смотреть. Лайк, подписка 100%

  • @BadmHaalg
    @BadmHaalg Год назад +1

    чувак, это самое четкое обьяснение!

  • @RR-fp7vu
    @RR-fp7vu 3 года назад +1

    Спасибо. Весьма познавательно

  • @unlike777
    @unlike777 3 года назад +11

    Ничего не понял, нууу ооооочень интересно!

    • @JavaScriptNinja
      @JavaScriptNinja  3 года назад +1

      Вы лучше расскажите где непонятно

    • @unlike777
      @unlike777 3 года назад +3

      ​@@JavaScriptNinja просто не настолько круто умею линукс, могу установить софт, погрепать логи, нагуглить нужную команду. Cмысл я понял что через подмену рута, подтасовку ссылок на директории можно получить доступ к файловой системе, но сам это без пошаговой инструкции не повторю, наверно это видео все же больше для админов, а не для разработчиков
      Для себя поставил галочку, что через такую штуку можно провести атаку ;)

  • @redfox6179
    @redfox6179 2 года назад +2

    круто, не все админы даже про такие магии знают.

  • @nelkor3427
    @nelkor3427 3 года назад +2

    Самое понятное видео в интернете

  • @e001as_def
    @e001as_def 9 месяцев назад

    Ого, класс 🤩

  • @user-xu8ev8bq4c
    @user-xu8ev8bq4c 3 года назад +1

    Лайк не глядя!

  • @ssurrokk
    @ssurrokk 3 года назад

    👍

  • @dyadya_vasia
    @dyadya_vasia 3 года назад +3

    пиво - труд

  • @user-xg5fp3xe8u
    @user-xg5fp3xe8u 3 года назад +3

    И 42, потому что 42, как легко догадаться®

  • @vladislavstepanov7591
    @vladislavstepanov7591 3 года назад +1

    чем ты юзаешь для реверса строки в терминале?

  • @idocse
    @idocse Год назад

    42 и вообще)

  • @user-xd7sx8dz8m
    @user-xd7sx8dz8m 3 года назад +1

    /proc - вроде произносится как проЦ, а не проК, так-как сокращение от process.

  • @silicongen
    @silicongen 3 года назад +1

    нихуя не понял, но очень интересно

  • @user-uo7nv8hc4e
    @user-uo7nv8hc4e 2 года назад

    Всё это работает только при условии что есть root?

    • @JavaScriptNinja
      @JavaScriptNinja  2 года назад

      Вовсе нет :)

    • @user-uo7nv8hc4e
      @user-uo7nv8hc4e 2 года назад

      @@JavaScriptNinja почему тогда в видео всё делаешь только под рутом? Подозрительно, обманываешь наверно...

    • @JavaScriptNinja
      @JavaScriptNinja  2 года назад

      @@user-uo7nv8hc4e попробуйте ;) вопрос в том, у кого есть права на операцию chroot,.к примеру. А дальше вообще я про это рассказываю

    • @user-uo7nv8hc4e
      @user-uo7nv8hc4e 2 года назад

      @@JavaScriptNinja на нормальном сервере chroot может только root так что вопрос закрыт

    • @JavaScriptNinja
      @JavaScriptNinja  2 года назад +1

      @@user-uo7nv8hc4e вы дальше посмотрите про unshare ;) следующие выпуски