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

  Рет қаралды 15,290

JavaScript.Ninja

JavaScript.Ninja

Күн бұрын

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

Пікірлер: 32
@avai1ab13u53rnam3
@avai1ab13u53rnam3 3 жыл бұрын
*Краткое содержание видео + временные метки* Доступ к 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)
@kychkin_nikolay
@kychkin_nikolay 2 жыл бұрын
Очень круто! Ждём: "Как выбраться за пределы виртуальной машины браузера"
@daenur548
@daenur548 Жыл бұрын
Спасибо, это интересно, приятно и познавательно смотреть. Лайк, подписка 100%
@JohnSmith-ok1vi
@JohnSmith-ok1vi 4 жыл бұрын
Все понятно, снято отлично, информация донесена полностью! Спасибо! Однозначно лайк!
@BadmHaalg
@BadmHaalg 2 жыл бұрын
чувак, это самое четкое обьяснение!
@realfootball338
@realfootball338 4 жыл бұрын
Спасибо за реально годные туториалы
@redfox6179
@redfox6179 2 жыл бұрын
круто, не все админы даже про такие магии знают.
@e001as_def
@e001as_def Жыл бұрын
Ого, класс 🤩
@RR-fp7vu
@RR-fp7vu 4 жыл бұрын
Спасибо. Весьма познавательно
@nelkor3427
@nelkor3427 4 жыл бұрын
Самое понятное видео в интернете
@unlike777
@unlike777 4 жыл бұрын
Ничего не понял, нууу ооооочень интересно!
@JavaScriptNinja
@JavaScriptNinja 4 жыл бұрын
Вы лучше расскажите где непонятно
@unlike777
@unlike777 4 жыл бұрын
​@@JavaScriptNinja просто не настолько круто умею линукс, могу установить софт, погрепать логи, нагуглить нужную команду. Cмысл я понял что через подмену рута, подтасовку ссылок на директории можно получить доступ к файловой системе, но сам это без пошаговой инструкции не повторю, наверно это видео все же больше для админов, а не для разработчиков Для себя поставил галочку, что через такую штуку можно провести атаку ;)
@AlekseyKzn
@AlekseyKzn 3 ай бұрын
@@JavaScriptNinja я например долго не мог воспроизвести 8:54 пока не догадался сделать "unshare --mount" перед "mount --bind ./dump ./dump"
@AlekseyKzn
@AlekseyKzn 3 ай бұрын
@@JavaScriptNinja я похоже понял что это особенности WSL, на linux без unshare это не сработает.
@AlekseyKzn
@AlekseyKzn 3 ай бұрын
@@JavaScriptNinja получается материал хороший, но использование WSL в подобных классных видео - немного портят картину.
@dyadya_vasia
@dyadya_vasia 4 жыл бұрын
пиво - труд
@ДмитрийШулешов-э2с
@ДмитрийШулешов-э2с 4 жыл бұрын
И 42, потому что 42, как легко догадаться®
@idocse
@idocse Жыл бұрын
42 и вообще)
@ilmakeyouone
@ilmakeyouone 2 ай бұрын
я программист и немного шарю в ОС, но в некоторых моментах (на видео) сложно уловить идеи. например, непонятно как работает pivot_root что порекомендуете почитать, чтобы понимать такие вещи?
@СтасДоренко
@СтасДоренко 4 жыл бұрын
Лайк не глядя!
@ssurrokk
@ssurrokk 3 жыл бұрын
👍
@vladislavstepanov7591
@vladislavstepanov7591 4 жыл бұрын
чем ты юзаешь для реверса строки в терминале?
@АртёмБарчан
@АртёмБарчан 4 жыл бұрын
/proc - вроде произносится как проЦ, а не проК, так-как сокращение от process.
@silicongen
@silicongen 3 жыл бұрын
нихуя не понял, но очень интересно
@Vasja-Pupkin-f8o
@Vasja-Pupkin-f8o 3 жыл бұрын
Всё это работает только при условии что есть root?
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Вовсе нет :)
@Vasja-Pupkin-f8o
@Vasja-Pupkin-f8o 3 жыл бұрын
@@JavaScriptNinja почему тогда в видео всё делаешь только под рутом? Подозрительно, обманываешь наверно...
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
@@Vasja-Pupkin-f8o попробуйте ;) вопрос в том, у кого есть права на операцию chroot,.к примеру. А дальше вообще я про это рассказываю
@Vasja-Pupkin-f8o
@Vasja-Pupkin-f8o 3 жыл бұрын
@@JavaScriptNinja на нормальном сервере chroot может только root так что вопрос закрыт
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
@@Vasja-Pupkin-f8o вы дальше посмотрите про unshare ;) следующие выпуски
#3 Пространства имён: введение -  Docker
23:39
JavaScript.Ninja
Рет қаралды 15 М.
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
How Strong Is Tape?
00:24
Stokes Twins
Рет қаралды 96 МЛН
Основы Docker. Большой практический выпуск
1:25:44
Артем Матяшов
Рет қаралды 979 М.
КАК УСТРОЕН TCP/IP?
31:32
Alek OS
Рет қаралды 293 М.
Основы для друзей. Добавляем диск в Linux
7:31
#5 Пространства имён: изоляция сети
24:05
JavaScript.Ninja
Рет қаралды 7 М.
MATE | История графической оболочки в Linux
17:56
Структура файлов и каталогов в Linux
20:28
Aleksey Samoilov
Рет қаралды 442 М.
#6 Файловые слои: магия overlay - Docker
30:51
JavaScript.Ninja
Рет қаралды 10 М.
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН