Права доступа Linux для пользователя, не вошедшего в sudoers

Вопрос или проблема

Существует сервер, к которому у меня есть доступ (логин и пароль). Если войти в систему под этим пользователем на сервере, оказывается, что мой пользователь не находится в sudoers. Дополнительной информации нет, у меня только один этот пользователь.

Мне нужно прочитать /tmp/somefolder/file на этом сервере.

/tmp/somefolder имеет права drwxr-xr-x, а /tmp/somefolder/file имеет права -rw-r-----.

Я нахожусь где-то в системе, не ясно, в какой директории.

Я не владею /tmp/somefolder и не нахожусь в группе, которая его владеет, аналогично я не владею /tmp/somefolder/file и не нахожусь в группе, которая его владеет. Как я могу просмотреть содержимое /tmp/somefolder/file?

/tmp/somefolder имеет права drwxr-xr-x […] Я не владею /tmp/somefolder и не нахожусь в группе, которая его владеет

В этом случае, поскольку вы не являетесь ни владельцем, ни частью группы, ваши права доступа определяются конечным набором прав (d......r-x). Эти права разрешают вам получить доступ к директории.

/tmp/somefolder/file имеет права -rw-r----- […] Я не владею /tmp/somefolder/file и не нахожусь в группе, которая его владеет

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

В качестве бонуса, если бы родительская директория (/tmp/somefolder) предоставила вам разрешение на запись, вы могли бы удалить файл или переместить/переименовать его в пределах той же файловой системы. Но вы все равно не смогли бы его прочитать.

В качестве другого бонуса, может существовать список управления доступом (ACL) на директории или файле, и он может предоставить вам разрешения, не отображаемые в стандартной маске прав для пользователей-групп-других.

Обратите внимание: следующие примеры предназначены для повышения привилегий. Строго запрещено получать доступ к информационным системам или данным, которые не были предварительно авторизованы. Этот пост предназначен только для образовательных целей.

Вы можете попробовать проверить файл /etc/passwd для локальных пользователей и /etc/group, чтобы узнать, какие пользователи имеют какие права. А также пользователей приложений.

Пример 1: Если у вас есть группа “docker”, вы можете повысить права с помощью этой команды:

docker run -it --rm -v /:/host debian:latest /bin/bash
  • “-v /:/host”: разрешает отображать корневую директорию (/) на директорию /host внутри контейнера
  • “/bin/bash”: запуск терминала bash с пользователем по умолчанию “root” в контейнере

После этого вы можете просмотреть ваш файл в /host/tmp/somefolder/file

Источник: https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation

Пример 2: вы можете проверить команду с NOPASSWD (без запроса пароля) в папках sudoers:

  • /etc/sudoers
  • /etc/sudoers.d/*

С чем-то вроде этого в файле sudoers:

%randomgroup ALL=(root) NOPASSWD:/usr/bin/sudo /usr/bin/chmod

Вы можете выполнять chmod, как хотите.
Или другой пример:

%randomgroup ALL=(root) NOPASSWD:/usr/bin/sudo /usr/bin/apt-get

Вы можете открыть терминал через эту команду:
sudo apt-get update -o APT::Update::Pre-Invoke::= /bin/bash

Источник: https://www.hackingarticles.in/linux-for-pentester-apt-privilege-escalation/

Ответ или решение

Разрешения в Linux для пользователя, не входящего в sudoers

Работа с системой Linux требует понимания системы разрешений файлов и каталогов. В данной ситуации у вас есть доступ к серверу с одним пользователем, который не имеет прав для использования sudo. Задача состоит в том, чтобы прочитать файл /tmp/somefolder/file, разрешения которого ограничены для вашего пользователя. В следующем изложении рассмотрим детали разрешений и возможные пути решения задачи.

Анализ текущих разрешений

  1. Разрешения каталога /tmp/somefolder:
    • Права доступа: drwxr-xr-x
    • Это означает, что:
      • Владелец (user) имеет права на чтение, запись и выполнение (7).
      • Члены группы (group) имеют права на чтение и выполнение (5).
      • Остальные пользователи (others) имеют права только на чтение и выполнение (5).

Обратите внимание, что вы можете получить доступ к каталогу, даже не будучи владельцем или членом группы, поскольку у вас есть права "выполнения" (execute) на этот каталог.

  1. Разрешения файла /tmp/somefolder/file:
    • Права доступа: -rw-r-----
    • Это означает, что:
      • Владелец (user) имеет права на чтение и запись (6).
      • Члены группы (group) имеют права на чтение (4).
      • Остальные пользователи (others) не имеют прав доступа (0).

К сожалению, в данном случае у вас нет доступа к содержимому файла, поскольку вы не являетесь ни владельцем файла, ни его группой.

Оценка способов доступа к файлу

  1. Использование ACL (списков контроля доступа):
    Если на файле или каталоге применяются расширенные списки контроля доступа (ACL), это может обеспечить дополнительные права доступа. Для проверки ACL используйте команду:

    getfacl /tmp/somefolder/file

    Если у вас нет прав на выполнение этой команды, это может стать препятствием.

  2. Ищите другие группы:
    Вы можете найти группы, в которые входит ваш пользователь, и использовать их для получения дополнительных прав доступа. Чтобы просмотреть группы, к которым принадлежит пользователь, выполните:

    groups
  3. Возможности межсетевого взаимодействия:
    Если на сервере есть установленные контейнеры Docker, и ваш пользователь принадлежит к группе Docker, вам следует рассмотреть возможность выполнения контейнера с root-доступом. Например:

    docker run -it --rm -v /:/host debian:latest /bin/bash

    Это запустит контейнер с доступом к файловой системе хоста, где вы сможете попытаться получить доступ к файлу по пути /host/tmp/somefolder/file.

Итог

Получение доступа к определенному файлу в Linux может оказаться сложной задачей без соответствующих прав. В данной ситуации вам не удастся прочитать файл /tmp/somefolder/file из-за ограничения на разрешения. Оцените возможность использования ACL, проверьте свою принадлежность к группам или рассмотрите возможность использования контейнеров Docker, если это применимо.

Помните, что любые действия с системами и данными, не авторизованные администратором, могут иметь серьезные юридические последствия. Работайте этично и ответственно, строго придерживаясь принципов информационной безопасности.

Оцените материал
Добавить комментарий

Капча загружается...