Есть ли какой-либо способ, которым взломщик мог использовать mkdir для взлома системы?

удостоверьтесь, что следующие пакеты установлены:

gvfs и thunar-volman

и удостоверьтесь это в Вашем ~/.xinitrc файл, существует, ориентируют как exec ck-launch-session startxfce4 (это обычно последняя строка в том файле),

и Вы удостоверяетесь, что Вы - член plugdev группа с id команда с обычным пользователем, в случае, если Вы не, добавляет Вашего пользователя к нему с useradd -G plugdev username.

при необходимости в большем количестве деталей, посмотрите здесь.

22
21.02.2013, 23:42
4 ответа

Я подозреваю, что нападение как это работало бы, где «что-то» - модуль ядра, который попытается загрузиться после того, как rootfs смонтирован:

$ sudo mkdir -m 777 /lib/modules/`uname -r`/a
$ cp evil.ko /lib/modules/`uname -r`/a/«something».ko

Обратите внимание также, что Вы могли использовать другие имена, в зависимости от псевдонимов, объявленных в модуле. Я предполагаю, что это не будет загружено, пока depmod не выполняется, который произойдет в следующий раз, когда существует обновление ядра — так mkdir даже недавно не покажет в журнале sudo.

Существует много вещей в / и т.д., которые читают все файлы в каталоге, иногда рекурсивно. Еще хуже, некоторые из тех каталогов не существуют по умолчанию, и единственный способ знать о них состоит в том, чтобы прочитать страницу справочника, init сценарии, и т.д. для программы, которая использует их. Некоторые, еще хуже, являются удержанными от использования вещами назад-совместимости и даже не могут больше документироваться.

править: Мысль о еще нескольких каталогах, них в /usr/local:

  • /usr/local/lib/perl/5.14.2 (отличается в зависимости от версии Perl, попробовать perl -V узнать). Создайте a File подкаталог там и помещенный a Find.pm в нем. Теперь каждый раз, когда любой использует File::Find, они будут использовать версию взломщика. Точно так же сделайте то же с Getopt::Long. Системные утилиты часто пишутся в Perl, таким образом, это, вероятно, дает корень. (Попробуйте ack-grep --color -a 'use.+::' /usr/sbin | less -R)
  • Я думаю Python, Ruby, и т.д. имею подобные каталоги. Системные утилиты записаны в Python также.
  • Ниспровергайте много вещей, из которых кто-то компилирует с подкаталогами /usr/local/include.
21
27.01.2020, 19:42
  • 1
    О, но если <злой пользователь> может скопировать модули туда, где ядро загрузит их, игра закончена перед запуском. –  vonbrand 22.02.2013, 01:47
  • 2
    @vonbrand <злой пользователь> обычно не может, но используемый его sudo mkdir создать новый каталог, где он может. –  derobert 22.02.2013, 02:25

Путем выполнения mkdir как корень, пользователь может заблокировать другие процессы/пользователей от создания новых файлов и каталогов путем создания каталогов с идентичными именами (и/или неправильные права) прежде.

Это могло быть безопасностью, релевантной особенно с журналом - и файлы блокировки.

Как jordanm отмеченный, может быть также израсходовано максимальное количество inodes, который может заблокировать целую систему.

Путем добавления пользователя к определенным группам (или использования ACLs), необходимо смочь решить проблемы, не предоставляя прав через sudo.

20
27.01.2020, 19:42
  • 1
    Большие точки. Я, вероятно, уеду mkdir от списка команд ricardo позволяется использовать. –  Ricardo Altamirano 21.02.2013, 19:25
  • 2
    Если это для исчерпания inodes, простого for((i = 0;; i++)); do touch $i; done сделает прекрасный (bashism, извините; но Вы получаете идею). –  vonbrand 22.02.2013, 01:45
  • 3
    @vonbrand Кроме это не как корень, таким образом, он будет остановлен квотой. Конечно, другой sudo команды OP рассматривают, может позволить исчерпывать inodes также; OP должен знать о том векторе DoS. –  derobert 27.02.2013, 23:18

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

11
27.01.2020, 19:42
  • 1
    я настоятельно рекомендую это. Предоставьте ему корневой доступ самостоятельно VM. –  emory 22.02.2013, 02:55
  • 2
    в chroot^H^H^H^H^Hounty тюрьму... –  Deer Hunter 22.02.2013, 21:43

Существуют возможности из-за способности создать каталоги с доступом для записи. С mkdir -m 777 blah ricardo пользователь может записать то, что они любят в новый каталог. Вам был бы нужен процесс в системе, уже работающей как другой пользователь, который рекурсивно вызовет вниз дерево каталогов для загрузки конфигурации, сценариев или модулей. Затем пользователь мог возможно добавить их собственные вещи, которые будут загружены или выполнены. Первая вещь, о которой я могу думать, состоит в том при выполнении веб-сервера, который может выполнить php или cgi. Вы могли затем запустить скрипты как тот пользователь. Я изо всех сил пытаюсь придумать больше примера реального мира, особенно root но я уверен, что они о.

ssh является примером демона, который захватывает этот вид сценария. Если Вы создали a .ssh каталог для пользователя, который не имел один и помещал Ваше собственное authorized_hosts зарегистрируйте на месте. sshd уведомления, что полномочия каталогов слишком открыты и игнорируют открытый ключ.

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

Вы могли создать много cgroups, но не выглядит, что Вы делаете что-либо с ними. Вы смогли приносить систему к, он - колени, по крайней мере. Потребовалось приблизительно 10 000 cgroups на поле с 256M, чтобы уничтожитель OOM вынул sshd.

Если Вы управляете -m опция к mkdir и UMASK sudo среда я думаю, что она вернулась к тому, чтобы просто быть неприятностью.

6
27.01.2020, 19:42

Теги

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