Mount Namespace
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Basic Information
Простір монтування — це функція ядра Linux, яка забезпечує ізоляцію точок монтування файлової системи, які бачить група процесів. Кожен простір монтування має свій власний набір точок монтування файлової системи, і зміни в точках монтування в одному просторі не впливають на інші простори. Це означає, що процеси, що виконуються в різних просторах монтування, можуть мати різні уявлення про ієрархію файлової системи.
Простори монтування особливо корисні в контейнеризації, де кожен контейнер повинен мати свою власну файлову систему та конфігурацію, ізольовану від інших контейнерів і хост-системи.
How it works:
Коли створюється новий простір монтування, він ініціалізується з копією точок монтування з його батьківського простору. Це означає, що при створенні новий простір ділить те ж саме уявлення про файлову систему, що й його батько. Однак будь-які подальші зміни в точках монтування в межах простору не вплинуть на батьківський або інші простори.
Коли процес змінює точку монтування в межах свого простору, наприклад, монтує або демонтує файлову систему, зміна є локальною для цього простору і не впливає на інші простори. Це дозволяє кожному простору мати свою власну незалежну ієрархію файлової системи.
Процеси можуть переміщатися між просторами, використовуючи системний виклик
setns()
, або створювати нові простори, використовуючи системні викликиunshare()
абоclone()
з прапоромCLONE_NEWNS
. Коли процес переходить до нового простору або створює його, він почне використовувати точки монтування, пов'язані з цим простором.Файлові дескриптори та іноди спільні між просторами, що означає, що якщо процес в одному просторі має відкритий файловий дескриптор, що вказує на файл, він може передати цей файловий дескриптор процесу в іншому просторі, і обидва процеси отримають доступ до одного й того ж файлу. Однак шлях до файлу може бути не однаковим в обох просторах через різницю в точках монтування.
Lab:
Create different Namespaces
CLI
При монтуванні нового екземпляра файлової системи /proc
, якщо ви використовуєте параметр --mount-proc
, ви забезпечуєте, що новий простір монтування має точний та ізольований вигляд інформації про процеси, специфічної для цього простору.
Docker
Перевірте, в якому просторі імен знаходиться ваш процес
Знайти всі простори імен монтування
Увійти в простір імен монтування
Також ви можете входити в інший просторовий процес тільки якщо ви root. І ви не можете входити в інший простір без дескриптора, що вказує на нього (наприклад, /proc/self/ns/mnt
).
Оскільки нові монтування доступні лише в межах простору, можливо, що простір містить чутливу інформацію, яка може бути доступна лише з нього.
Монтувати щось
Посилання
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated