The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Первый релиз безопасного браузера BitBox, разработанного по ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Доступны два режима работы форума: "Раскрыть нити" и "Свернуть нити".
. "На базе Firefox по заказу правительства Германии создан..." +1 +/
Сообщение от коксюзер (?), 18-Май-11, 07:20 
> таким образом выходит, что — в принципе — сбежать «наружу» можно
> на уже скопрометированной «наружной» системе. а зачем?

В некоторых случаях есть смысл. Например...

Мы украли у юзера petya реквизиты доступа к серверу по ssh. Нас интересуют файлы юзера vasya, которые лежат в /home/vasya. Также мы знаем, что vasya забирает почту с этого сервера по IMAP и пренебрегает защищённой аутентификацией. Через ARP/DNS-спуфинг или прослушку мы крадём у него пароль на почту. Затем мы открываем IMAP-сессию с почтовым сервером, называемся васей, эксплуатируем непубличную уязвимость в процессе почтового сервера... И обнаруживаем, что скомпрометированный процесс посажен в чрут где-нибудь в /var/mail, и доступа к /home/petya у нас нет. Что делаем?

Вариант первый: мы в линуксе. Заходим на сервер по ssh от юзера petya, открываем корневую директорию и получаем дескриптор, открываем на прослушку юникс-сокет с "абстрактным" именем и идём стучаться васей на сокет. Стучимся, получаем дескриптор, делаем fchdir на дескриптор, идём в ./home/vasya и воруем файлы.

Вариант второй: мы в BSD. Абстрактных сокетов нет, а создать петей файл сокета в chroot-окружении мы не можем - если оно ему и доступно, то только для чтения...

Вариант второй/А: Доступно для чтения? Смотрим на чрут глазами васиного процесса и видим ящик в модном формате maildir. Отлично! Создаём васиным процессом файл сокета в maildir-директории, открываем доступ для пети (o+x на директорию, o+rw на файл сокета) и ждём запрос. Петей открываем дескриптор /, стучимся к васе на сокет, передаём дескриптор, вася fchdir(fd), вася chdir("./home/vasya"), васины файлы у нас.

Вариант второй/Б: ящик в формате mbox или директория chroot-окружения пете не доступна даже на чтение. Мы не можем создать файл сокета или добраться до него. Начинаем выжидать, пока юзер vasya запустит на сервере какой-нибудь процесс вне чрута. Дождались: вася зашёл на сервер по ssh, или крон запустил одну из васиных задач, или MTA запустил LDA с правами васи, но не в чруте (как оно часто и бывает - это важно). Мы садимся на внешний васин процесс через ptrace и аккуратно внедряем в него код, который тихо ворует нам васины файлы. Профит.

Важно, что ptrace из чрута на процесс того же пользователя за пределами чрута разрешён в рамках стандартной модели привилегий, и нам не нужно искать и эксплуатировать уязвимости в ядре или во внешних процессах. Более того, с ptrace без нестандартных ограничений нам не нужен даже петя.

Кстати, в Grsecurity реализован запрет на побег из чрута по дескриптору, на ptrace/kill процессов за пределами чрута, а также на ptrace процессов, которые являются чужими потомками.

Другой пример. Васины файлы нам не нужны, и мы можем зайти на сервер петей по ssh с краденными реквизитами. Зачем нам вытаскивать скомпрометированный васин процесс из чрута? Варианты:
1. вася в группе, которой разрешён доступ sudo в каком-нибудь Owl, и мы хотим получить рута через уязвимость в sudo. ;)
2. Мы хотим, чтобы васин процесс (а вернее его fork+execve с чистым окружением, чтобы не палить вектор проникновения) провернул тёмные делишки и в случае шухера сделал крайним васю - пусть админ подумает, что вася пропинал свои реквизиты для ssh, хотя это был петя, и его реквизиты до сих пор у нас. ;)

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Первый релиз безопасного браузера BitBox, разработанного по ..., opennews, 15-Май-11, 09:34  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру