Suid error что это

Предисловие. Некогда в июне 2001 года в журнале «Системный администратор» (Sys Admin Magazine, June 2001, Volume 10, Number 6) была опубликована статья Томаса Ак...

Время прочтения
8 мин

Просмотры 20K

Предисловие. Некогда в июне 2001 года в журнале «Системный администратор» (Sys Admin Magazine, June 2001, Volume 10, Number 6) была опубликована статья Томаса Акина «Danger of SUID Shell Scripts», которая не теряет своей актуальности и сегодня. К сожалению, в конце лета 2007 года журнал перестал выходить. По неизвестным мне причинам сайт журнала также прекратил существование — точнее он сейчас переадресовывает посетителей на другой. Было бы здорово, если бы сайт просто «заморозили», сохранив архив всех накопившихся материалов, который бесспорно представил бы собой кладезь полезной практической информации для специалистов сферы ИТ. В Сети можно найти скудные копии статьи, о которой идет речь; у меня же нашелся бумажный вариант оригинала и я хочу представить вольный перевод с небольшим дополнением. Некоторые моменты статьи мне кажутся несколько глупыми (например, использование временных файлов), некоторые — непривычными (оболочки, которые использует автор), но в целом я уверен — в статье есть на что обратить внимание, взять на заметку и не забывать.

Опасность использования SUID в сценариях командной оболочки

Уровень сложности: простой

Некоторые соглашения. SUID-программы, SUID-приложения — исполняемые файлы, имеющие атрибут setuid (в дополнение к атрибуту исполнения).
SUID-сценарии, SUID-скрипты — аналогично, сценарии командного интерпретатора, имеющие атрибут setuid в дополнение к атрибуту выполнения.
Unix-система — Unix или любая Unix-подобная операционная система.

Данная статья предпринимает попытку пройтись по тонкой границе между полным раскрытием и созданием эксплойта. Целью является иллюстрация работы SUID-приложений, чтобы помочь остальным избежать распространенных ошибок при написании своих программ. Примеры, приведенные в статье, достаточно разобраны для того, чтобы помочь понять каждую опасность, но нет гарантии, что все будет работать именно так, как показано, в случае попытки злонамеренного использования.

Обычно, сценарии и программы в Unix выполняются с правами пользователя, который их запустил. Вот почему простые пользователи не могут изменить свои пароли путем прямой правки файла /etc/passwd (Unix-системы не хранят более в данном файле пароли, а только информацию об учетных записях — прим.); у них нет прав на запись в /etc/passwd и ни одна команда, выполненная ими, не сможет этого сделать. Однако, SUID-программы перекрывают нормальные права доступа и всегда выполняются с правами владельца программы. Следовательно, пользователи могут с помощью команды /usr/bin/passwd менять свои пароли. Программа /usr/bin/passwd имеет атрибут SUID и пользователя root как владельца. Она всегда выполняется с правами пользователя root:

% ls -l `which passwd`
-rwsr-xr-x 1 root root 23688 Jan 6 2007 /usr/bin/passwd

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

Работая с администраторами, которые недавно познакомились с атрибутом SUID, часто можно встретить сценарии, подобные этому:

% ls change-pass
-rwsr-x--- 1 root helpdesk
37 Feb 26 16:35 change-pass

% cat change-pass
#!/bin/csh -b
set user = $1
passwd $user

Данный простенький скрипт призван разрешить службе поддержки (группа helpdesk) сбрасывать пароли пользователей, что является довольно частой задачей. Сценарию присвоен атрибут SUID и суперпользователь установлен в качестве владельца. Члены группы helpdesk могут читать и запускать данный сценарий на выполнение. который полон «дыр» безопасности подобно решету. В рамках статьи будут рассмотрены семь из них, а также варианты, как их избежать.

Первоочередной проблемой является использование C-shell. Сценарии этой оболочки уязвимы к манипуляциям с переменными окружения. Для того, чтобы использовать это как преимущество, взломщик может скомпроментировать учетную запись службы поддержки и получить оболочку с правами суперпользователя следующим образом:

% env TERM='`cp /bin/sh /tmp/sh;chown root /tmp/sh;chmod 4755/tmp/sh`' change-pass

Урок первый — никогда не используйте C-shell для SUID-сценариев

% cat change-pass
#!/bin/ksh
user=$1
passwd $user

Переписав скрипт с применением Korn shell помогает избежать характерной для C-shell проблемы, однако сценарий все еще уязвим к манипуляциям с переменной окружения PATH. Использование относительного пути к программе дает возможность злоумышленнику запустить свое приложение вместо штатного /usr/bin/passwd:

% export PATH='/tmp'
% echo "cp /bin/sh /tmp/sh;chown root /tmp/sh;chmod 4755/tmp/sh" > /tmp/passwd
% ./change-pass

Переменная PATH была изменена и теперь команда change-pass вызовет /tmp/passwd вместо /usr/bin/passwd.

Урок второй — необходимо всегда вручную устанавливать переменную окружения PATH и использовать абсолютные пути

% cat change-pass
#!/bin/ksh
PATH='/bin:/usr/bin'
user=$1
/usr/bin/passwd $user

Теперь PATH в безопасности и используются абсолютные пути, но если присмотреться можно заметить, что сценарий может изменить пароль любого пользователя даже root. Мы ведь не хотим, чтобы кто-либо из службы поддержки (или взломщик) с помощью нашего скрипта изменить пароль суперпользователя.

Урок третий — необходимо понимать работу задействованных программ

% cat change-pass
#!/bin/ksh
PATH='/bin:/usr/bin'
user=$1
rm /tmp/.user
echo "$user" > /tmp/.user
isroot='/usr/bin/grep -c root /tmp/.user'
[ "$isroot" -gt 0 ] && echo "You Can't change root's password!" && exit
/usr/bin/passwd $user

Теперь сценарий завершит своб работу, если кто-то введет root в качестве аргумента. Однако что же произойдет, если не передать аргументов вовсе? Будет вызван passwd, соответственно, без аргументов. В таком случае программа меняет пароль текущего пользователя (инициировавшего запуск), то есть root (не забывайте, что сразу после запуска SUID сделал свое дело и изменил текущего пользователя на root — прим.). В контексте исполняемого файла с атрибутом SUID текущим пользователем всегда будет владелец этого файла. Таким образом, все еще существует возможность сбросить пароль суперпользователя, вызвав change-pass и не передав ни одного аргумента. Отсюда уточнение к третьему уроку — понимайте работу программ в сценарии, особенно то, как они обрабатывают аргументы.

% cat change-pass
#!/bin/ksh
PATH='/bin:/usr/bin'
user=$1
[ -z $user ] && echo "Usage: change-pass username" && exit
rm /tmp/.user
echo "$user" > /tmp/.user
isroot='/usr/bin/grep -c root /tmp/.user'
[ "$isroot" -gt 0 ] && echo "You Can't change root's password!" && exit
/usr/bin/passwd $user

Теперь мы никому не позволим изменить пароль пользователя root, но обратите внимание на использование временного файла (лично я этой необходимости понять не могу — прим.). Сценарий удаляет временный файл, создает его, заполняя именем пользователя, пароль которого следует сбросить, и в конце концов проверяет, не root ли этот пользователь. Что если злоумышленник очень точно отмеряет момент, когда файл будет удален, а новый еще не создан, и создаст пустой файл /tmp/.user? Будет ли он перезаписан? Возможно да, а возможно и нет… Зависит от настроек системы. Если созданный взломщиком /tmp/.user не будет перезаписан, проверки в скрипте будут пройдены и passwd предложит сменить пароль суперпользователя (случай с отсутствием аргументов — прим.). Для облегчения проведения подобной атаки злоумышленник может составить специальную программу для отслеживания активности (появления файла /tmp/.user в данном случае) и подмены необходимого файла.
Примечание. Такие типы атак основаны на временных задержках (далее будет еще один подобный пример).

Урок четвертый — не используйте временный файлы или (в случае неизбежной необходимости их применения) не помещайте их в доступные на запись остальным места

% cat change-pass
#!/bin/ksh
PATH='/bin:/usr/bin'
user=$1
[ -z $user ] && echo "Usage: change-pass username" && exit
[ "$user" = root ] && echo "You can't change root's password!" && exit
/usr/bin/passwd $user

В текущем варианте не используются временные файлы (сразу бы так — прим.), но по-прежнему атакующий может использовать трюк с точкой с запятой — символом-разделителем. С помощью «;» можно в одну строку записать несколько команд, которые будут выполнены по очереди. Зная это взломщик может написать:

% change-pass "user;cp /bin/sh /tmp/sh;chown root /tmp/sh;chmod 4755 /tmp/sh"

Наш сценарий примет этот ввод и выполнит:

/usr/bin/passwd user;cp /bin/sh /tmp/sh;chown root /tmp/sh;chmod 4755 /tmp/sh

Каждая из этих комманд будет выполнена, предоставляя оболочку с правами суперпользователя. Для предотвращения подобных проблем нужно убедиться, что пользовательских ввод не содержит точек с запятой или любых других мета-символов.

% cat change-pass
#!/bin/ksh
PATH='/bin:/usr/bin'
user=${1##*[ \$/;()|><& ]}
[ -z $user ] && echo "Usage: change-pass username" && exit
[ "$user" = root ] && "You can't change root's password!" && exit
/usr/bin/passwd $user

Теперь из ввода будут убраны символы пробела, , $, /, ;, (, ), |, >, <, & и табуляции.

Урок пятый — не доверяйте и проверяйте весь пользовательский ввод, исключайте мета-символы

Другая распространенная уязвимость связана с внутренним разделителем полей (internal field separator, IFS) командной оболочки. IFS определяет символ, разделяющий команды. Обычно, таким является символ пробела, табуляции или новой строки. Наш сценарий вызывает программу используя полный путь /usr/bin/passwd. Замена IFS на «/» командой

% export IFS='/'

заставит сценарий вызывать не /usr/bin/passwd, а вместо этого выполнить по порядку usr, bin и passwd. Теперь злоумышленник может создать скрипт с названием usr, который создает оболочку с правами root, а наш SUID-сценарий выполнит его.

Урок шестой — всегда определяйте IFS вручную

% cat change-pass
#!/bin/ksh
PATH='/bin:/usr/bin'
IFS=' '
user=${1##*[ \$/;()|><& ]}
[ -z $user ] && echo "Usage: change-pass username" && exit
[ "$user" = root ] && "You can't change root's password!" && exit
/usr/bin/passwd $user

К сожалению, мы все еще не в безопасности. Сценариям командой оболочки присущи условия возникновения «гонок», которые мы не можем побороть даже написанием качественных скриптов. Проблема заключается в том, что выполнение сценария происходит в два этапа. Сначала система запускает еще один экземпляр оболочки. Затем новый процесс читает содержимое файла сценария и исполняет его. Подобно ситуации с временными файлами в четвертом уроке атакующий может эксплуатировать временные задержки и использовать момент между созданием новой оболочки и чтением скрипта. Создав символическую ссылку на SUID-сценарий

% cd /tmp
% ln -s change-pass rootme

вызывая сценарий по ссылке и быстро подменяя содержимое

% ./rootme &
% rm rootme && echo "cp /bin/sh /tmp/sh;chown root /tmp/sh;chmod 4755 /tmp/sh" > rootme

возможно выполнить что угодно от имени root. Применяя такую технику шансы на успех крайне малы, но существуют методики и программы, которые повышают вероятность успеха и помогают автоматизировать процесс. Существует два способа защититься от подобного рода атак. Первый — не использовать SUID-сценарии командной оболочки. Вторым обладают некоторые системы (например, Solaris), который заключается в предотвращении возникновения условий «гонок» путем передачи описателя открытого файла сценария командной оболочке, избегая таким образом необходимости в переоткрытии и чтении файла SUID-скрипта.

Урок седьмой — не используйте SUID-сценарии

Даже после всей проделанной работы практически невозможно написать безопасный SUID-сценарий командной оболочки (это невозмножно на большинстве систем). Из-за указанных выше проблем некоторые системы (например, Linux) не поощряют установку атрибута SUID на командные сценарии. Существует три более безопасных способа получить функциональность SUID: программа-обертка на языке C, скрипт на Perl или программа подобная sudo. Начинающим в безопасном программировании следует использовать sudo или Perl-программу. Suidperl имеет втроенные механизмы защиты от ошибок программиста, описанных в статье. Дополнительную информацию о безопасном программировании с использованием атрибута SUID можно найти в книге «Practical UNIX & Internet Security» (O’Reilly & Associates) или статье «Writing Safe Setuid Programs».

Послесловие. Прототип программы-обертки для использования SUID:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
// помещаем необходимые проверки
setuid(0); // устанавливаем id нужного пользователя (не обязательно root, как в примере)
//setgid(0); // можно использовать групповую политику (id группы) вместо смены текущего пользователя
system("/path/to/script.sh"); // выполняем нужный сценарий
return 0;
}

Техподдержка

Вы получили письмо с исследованием на электронную почту, но при нажатии на кнопку «Скачать » , загрузка исследования не начинается?

Скорее всего, вы используете устаревший браузер (Internet Explorer или Mozilla Firefox). Попробуйте обновить свой браузер до последней версии или воспользуйтесь любым другим актуальным браузером.

Вы получили исследование в формате Picasso Viewer (Vatech). Как открыть исследование с диска?

  1. Необходимо вставить диск в DVD дисковод;
  2. В появившемся окне выбираем «Открыть Picasso Viewer»;
  3. После запуска программы нужно выбрать исследование и нажать «Перенести и открыть».

Более подробную информацию можно найти в инструкции «Как установить Picasso Viewer с DVD диска».
Если у Вас возникли сложности, пожалуйста, обратитесь в нашу службу технической поддержки по телефону 8 (800) 777-52-70 или оставьте заявку на форме обратной связи и Вам обязательно помогут.

Вы получили исследование в формате Romexis Viewer (Planmeca). Как открыть исследование с диска?

1. Необходимо вставить диск в DVD дисковод;
2. В появившемся окне выбираем «Открыть Romexis Viewer »;
3. После запуска программы нужно нажать «Запустить Viewer ».

Более подробную информацию можно найти в инструкции «Как запустить исследование Planmeca с DVD диска».
Если у Вас возникли сложности, пожалуйста, обратитесь в нашу службу технической поддержки по телефону 8 (800) 777-52-70 или оставьте заявку на форме обратной связи, и Вам обязательно помогут.

Какой компьютер нужен для работы?

Программы Ez3D Plus и Ez3D-i поддерживаются на компьютерах под управлением Windows 7 и новее.

Программа Ez3D Plus поддерживается на компьютерах под управлением Windows 7 и новее или MacOS X. Более подробные сведения можно получить, ознакомившись с системными требованиями.

Вы получили исследование в формате Romexis Viewer (Planmeca) на электронную почту. Как открыть исследование по ссылке?

  1. Необходимо перейти по ссылке в письме;
  2. В открывшемся окне нажать кнопку «Скачать»;
  3. Дождаться окончания загрузки файла с исследованием;
  4. Извлечь содержимое архива на жесткий диск компьютера, воспользовавшись любым архиватором, поддерживающим zip формат;
  5. Войти в папку с извлеченным из архива исследованием;
  6. Запустить приложение Romexis Viewer;
  7. Нажать кнопку «Запустить Viewer».

Более подробную информацию можно найти в инструкции «Как запустить исследование Planmeca по ссылке».
Если у Вас возникли сложности, пожалуйста, обратитесь в нашу службу технической поддержки по телефону 8 (800) 777-52-70 или оставьте заявку на форме обратной связи, и Вам обязательно помогут.

Вы получили исследование в формате Picasso Viewer (Vatech) на электронную почту. Как открыть исследование по ссылке?

  1. Необходимо перейти по ссылке в письме;
  2. В открывшемся окне нажать кнопку «Скачать»;
  3. Дождаться окончания загрузки файла с исследованием;
  4. Извлечь содержимое архива на жесткий диск компьютера, воспользовавшись любым архиватором, поддерживающим zip формат;
  5. Войти в папку с извлеченным из архива исследованием;
  6. Запустить приложение «Picasso Viewer»;
  7. После запуска программы нужно выбрать исследование и нажать «Перенести и открыть».

Более подробную информацию можно найти в инструкции «Как установить PicassoViewer по ссылке».
Если у Вас возникли сложности, пожалуйста, обратитесь в нашу службу технической поддержки по телефону 8 (800) 777-52-70 или оставьте заявку на форме обратной связи, и Вам обязательно помогут.

Как получить исследование на электронную почту?

Для того, чтобы получить исследование на электронную почту необходимо обратиться в службу технической поддержки по телефону 8 (800) 777-52-70, либо написать на электронную почту help.picasso@gmail.com, или оставить заявку на форме обратной связи и сообщить следующие данные:

  • Город, в котором было проведено исследование;
  • Название диагностического центра, где был сделан снимок;
  • ФИО пациента;
  • Дату проведения исследования;
  • Адрес электронной почты, на который необходимо отправить исследование.

После обработки обращения на электронную почту поступит письмо с исследованием.

Как отправить свое исследование на электронную почту врачу?

Для того, чтобы отправить свое исследование на электронную почту врачу, можно переслать письмо с исследованием, которое было направлено Вам. Стоит учесть, что ссылки на исследования хранятся в течении 30 дней. Поэтому, если с момента получения Вами письма с исследованием прошло более 30 дней, то нужно запросить новую отправку исследования.

Для того, чтобы получить исследование на электронную почту необходимо обратиться в службу технической поддержки по телефону 8 (800) 777-52-70, либо написать на электронную почту help.picasso@gmail.com, или оставить заявку на форме обратной связи.
Необходимо сообщить следующие данные:

  • Город, в котором было проведено исследование;
  • Название диагностического центра, где был сделан снимок;
  • ФИО пациента;
  • Дату проведения исследования;
  • Адрес электронной почты, на который необходимо отправить исследование.

После обработки обращения на электронную почту поступит письмо с исследованием.

Что делать если «пропала» база исследований?

Если во вкладке PicassoViewer «Локальное хранилище» перестали отображаться исследования пациентов, которые там раньше были, то это может свидетельствовать о том, что сбился путь к базе с исследованиями.

Для решения данной проблемы необходимо:

  1. Перейти в пункт «Настройки» в левой части окна приложения;
  2. Выбрать пункт «Изменить папку с базой»;
  3. Указать корректный путь к базе с исследованиями. По умолчанию путь устанавливается как C:Ez3D2009Picasso

Если у Вас возникли сложности, пожалуйста, обратитесь в нашу службу технической поддержки по телефону 8 (800) 777-52-70 или оставьте заявку на форме обратной связи, и Вам обязательно помогут.

Исследование открылось с деформацией (на снимке полосы/искажения). Как открыть снимок корректно?

Проблема чаще всего возникает из-за того, что исследование некорректно копируется в базу.
Для того, что исследование открылось корректно нужно:

  1. Запросить новую ссылку на скачивание через call-центр
  2. Удалить прошлое исследование из базы Picasso Viewer и компьютера
  3. Скачать исследование по новой ссылке
  4. После окончания загрузки, извлечь содержимое архива на жесткий диск компьютера, воспользовавшись любым архиватором, поддерживающим zip формат
  5. Запустить приложение Picasso Viewer в папке с извлеченным из архива исследованием
  6. После запуска программы нужно выбрать исследование и нажать «Перенести и открыть»

Также, данной проблемы можно избежать, привязав Личный кабинет к программе Picasso Viewer. Более подробную информацию можно найти, ознакомившись с инструкцией «Как открыть снимок при помощи Личного кабинета».
Если у Вас возникли сложности, пожалуйста, обратитесь в нашу службу технической поддержки по телефону 8 (800) 777-52-70 или оставьте заявку на форме обратной связи, и Вам обязательно помогут.

Программа Ez3D Plus закрывается при построении реконструкции ОПТГ.

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

Как в Picasso Viewer работать с исследованиями в разных программах-просмотрщиках?

Picasso Viewer является модульной программой и позволяет работать в различных просмотрщиках. Для установки дополнительных модулей необходимо:

  1. Запустить Picasso Viewer;
  2. Перейти в пункт «Настройки» в левой части окна приложения;
  3. Выбрать пункт «Изменить программу-просмотрщик по умолчанию»;
  4. Установить нужные модули;
  5. Вернуться в пункт меню «Исследования»;
  6. Выбрать вкладку «Локальное хранилище»;
  7. Щелкнуть на нужном исследовании на вертикальное троеточие;
  8. В появившемся контекстном меню выбрать нужную программу для работы с исследованием.

Более подробную информацию можно найти, ознакомившись с инструкцией «Как открывать снимки в разных программах».

Если у Вас возникли сложности, пожалуйста, обратитесь в нашу службу технической поддержки по телефону 8 (800) 777-52-70 или оставьте заявку на форме обратной связи, и Вам обязательно помогут.

Как в Picasso Viewer быстро отрывать исследования при помощи сервиса Личный кабинет?

Сервис Личный кабинет доступен для партнеров компании «Пикассо». Помимо остальных преимуществ, он также позволяет хранить исследования в структурированном порядке. Больше не нужно искать письма с исследованиями на электронной почте. Синхронизация Picasso Viewer с сервисом Личный кабинет позволяет полностью автоматизировать процесс открытия исследований по ссылкам. Программа в автоматическом режиме сама скачает, распакует и откроет исследование. Теперь не нужно тратить на это драгоценное время.

Для синхронизации необходимо:

  1. Запустить Picasso Viewer;
  2. Выбрать пункт «Авторизоваться» в левом верхнем углу окна приложения;
  3. Ввести данные, полученные при регистрации в сервисе Личный кабинет.

Более подробную информацию можно найти, ознакомившись с инструкцией «Как открыть снимок при помощи Личного кабинета».
Если у Вас возникли сложности, пожалуйста, обратитесь в нашу службу технической поддержки по телефону 8 (800) 777-52-70 или оставьте заявку на форме обратной связи, и Вам обязательно помогут.

Как в Picasso Viewer добавить исследование в «Избранное»?

Для того, чтобы добавить нужное исследование во вкладку «Избранное» необходимо:

  1. Выбрать вкладку «Локальное хранилище». Добавление в «Избранное» доступно только для исследований, которые физически находятся жестком диске компьютера;
  2. Выбрать нужное исследование;
  3. Отметить его «звездочкой».

Теперь нужное исследование доступно во вкладке «Избранное».

Как из Picasso Viewer восстановить ссылку на исследование?

Для того, чтобы восстановить ссылку на исследование из программного обеспечения нужно:

  1. Авторизоваться в Picasso Viewer для синхронизации данных с сервисом Личный кабинет;
  2. Выбрать нужное исследование. Ссылки, срок действия которых уже истек, отображаются более тусклым цветом;
  3. Нажать кнопку «Восстановить».

Запрос будет автоматически направлен в диагностический центр, и ссылка на исследование будет восстановлена.

Текст в Picasso Viewer слишком большой/маленький. Как изменить масштаб?

Для того, чтобы изменить масштаб потребуется:

  1. Перейти в пункт «Настройки» в левой части окна приложения;
  2. Войти в пункт меню «Изменить масштаб отображения»;
  3. Выбрать комфортное для Вас значение.

Источник

Программа Picasa:
скачать бесплатно русскую версию

Фоторедактор, просмотрщик, органайзер фотографий

Picasa

Пикаса (не путать с Пикассо) – это программа, совмещающая в себе функции файлового менеджера и редактора фотографий. В настоящее время поддержка софта прекращена, но на просторах интернета по-прежнему можно найти последнюю версию программы. Если вы ищете, где скачать Picasa 3 бесплатно русскую версию, сделайте это с официального сайта или нашего портала.

Технические характеристики:

Категория: графический редактор

Платформа: OС Windows, Mac, Linux

Язык: русский язык

Разрядность: 32 (х86), 64 (х64)

Описание программы Picasa 3.9

При первом запуске программа сканирует жесткий диск на наличие имеющихся в нем фотоснимков. Она находит абсолютно все изображения, даже те, о которых вы давно забыли или думали, что давно удалили. Снимки «красиво» отсортированы по папкам, так что можно с легкостью найти местоположение каждой карточки, если, например, есть желание пересохранить ее куда-нибудь в другое место. Периодически программа «пробегает» по жесткому диску в поисках новодобавленных или измененных файлов и также аккуратно рассортировывает их.

Для добавления информации в программу с внешних носителей необходимо импортировать контент на ПК. Причем Picasa заодно может почистить флешку, если при импорте выбрать соответствующий пункт.

Основные возможности редактора:

  • создание из медиаконтента плакатов, коллажей, кинофильмов, презентаций;
  • просмотр фотографий в виде слайд-шоу;
  • загрузка на ПК фото со сканера и камеры;
  • редактирование изображений;
  • создание заставок для рабочего стола;
  • пакетное преобразование;
  • фильтрация снимков по цвету;
  • распознавание лиц;
  • поиск дублирующихся снимков;
  • групповое переименование;
  • добавление надписей и фильтров;
  • создание тематических альбомов;
  • распечатка;
  • отправка изображений по электронной почте.

Несмотря на то, что Picasa каждый раз при запуске сканирует HD, работает редактор шустро. То есть вам практически не придется ждать, пока иконки изображений появятся в просмотрщике. Однако это не исключает вылетов и зависаний программы. Плюс все элементы интерфейса (значки, надписи) слишком мелкие, что создает определенные неудобства при работе с Picasa. Вам может понадобится «помощь зала» – уроки по работе в софте.

Скачать Picasa 3.9 бесплатно на русском языке можно официально, так что услуги торрента вам не понадобятся. Чтобы начать работу в редакторе, дважды щелкните ЛКМ по фото в проводнике. С правой стороны появится меню с основными функциями. Здесь можно выполнить автоматическую коррекцию контраста и цвета, провести базовую ретушь, выровнять заваленный горизонт, скорректировать температурный баланс, избавиться от «красных глаз», кадрировать и нанести надпись.

Есть три отдельные вкладки с фильтрами и фотоэффектами. Одним кликом фото можно превратить в карандашный набросок, черно-белый портрет, затеплить, увеличить резкость, тонировать, применить мягкий расфокус и т.д. К сожалению, фильтры устаревшие и их немного. Зато некоторые из них можно подкорректировать: изменить силу воздействия, радиус и другие параметры.

Скачать Picasa photo viewer для Windows 10, 8 или 7 можно также, если вы хотите быстро генерировать коллажи. Для этой цели Пикаса имеет несколько пресетов, определяющих расположение снимков на холсте. Это может быть стопка беспорядочно разбросанных картинок, два вида сетки, мозаика и наложение фото на фото. Можно менять размер фонового листа и фотографий, добавлять границы, тень, выбирать цвет для фона. Есть опция превращения итогового коллажа в заставку на рабочий стол. Даже если вы не знаете, как сделать коллаж из фотографий, разобраться будет нетрудно.

В окне просмотра изображений, рядом с папками есть интересная кнопка «Создать фильм-презентацию». Активируя ее, вы попадаете в меню с настройками ролика. В презентации будут использованы снимки текущей папки, но если вы хотите добавить материал из других альбомов, необходимо переключиться во вкладку «Клипы» и осуществить дозагрузку файлов.

Перелистывая фотокадры, вы можете настраивать длительность показа каждого слайда, стиль перехода (спецэффекты), размер карточек. Также можно загрузить звуковую дорожку и наложить текст. Для надписей тоже предусмотрены настройки: тип шрифта, стиль начертания, цвет, размер плюс имеется несколько готовых шаблонов. Созданный ролик можно сразу же экспортировать в YouTube.

Чтобы узнать, как использовать функции файлового менеджера, посмотрите видео:

Источник

Приветствую

Занимаясь изучением дисциплины “Повышение прав» наткнулся на очень интересную технику которой хотел бы поделиться и разобрать более детально.

  • Дисциплина “Повышение прав”
  • Уязвимость “SUID/SGID Executable”
  • Реализация “Подмена переменной PATH”

Допустим нам дана машина где мы находим suid файл /usr/local/bin/suid-env

Код:

ls -l /usr/local/bin/suid-env
-rwsr-sr-x 1 root staff 6883 May 14  2017 /usr/local/bin/suid-env

Видим что он действительно suid и владелец root

Для нас это означает, что программа может быть запущена нами и все что она сделает будет от супер-пользователя. Хорошо, а что собственно она делает? Давайте разбираться

1. Запустим ее и посмотрим что из этого получится

Посмотреть вложение 47520

Ок, она просто запускает apache2

2. Попробуем прояснить по какой логике она это делает

Код:

strings /usr/local/bin/suid-env

Посмотреть вложение 47521

Из интересного для нас:

Код:

setresuid
service apache2 start

setresuid

Функция setresuid устанавливает идентификатор реального пользователя. То есть uid=0 (он же рут)

service apache2 start

Этой командой запускается веб сервер apache2. Что тут важно, так это то, что программа suid-env обращается к команде service не используя полный путь. Что это значит?

Давайте рассуждать!

Каким образом получается так, что если вы вводите какую-то команду, например cat <file> и она работает ? Все дело в переменной окружения $PATH

Поглядим echo $PATH

Посмотреть вложение 47522

Как видим указан путь /usr/bin а в нем то и лежит наша утилита cat
Получается, что если мы даем оболочке команду, она сразу обращается к переменной окружения и имея путь обращается у нужной нам утилите.

И так, вернемся к нашим баранам. Получается такая логика:

Мы запускаем /usr/local/bin/suid-env, она знает что нужно обратится к service и чтоб это сдалеть, она обратится к переменной $PATH чтобы получить полный путь.

Как же повысить права имея эти данные?

  1. Мы подменяем файл service так как /usr/local/bin/suid-env все равно что запускать, главне чтоб название совпало.
  2. Так как быдет происходит обращение к $PATH, нам нужно сделать подмену пути к service (если не сделаем обратимся к реальному файлу)

Подмена файла service

В материале к обучению нам дают исходник который требуется скомпилировать, Давайте взглянем на него.

Посмотреть вложение 47523

Код:

setuid(0) - устанавливаем права root
system("/bin/bash -p") - вызываем оболочку bash

Скомпилируем данный исходник:

Код:

gcc -o service /home/user/tools/suid/service.c

Посмотреть вложение 47524
Хорошо, мы создали свой service который будет возвращать оболочку, теперь нужно решить вопрос с подменой значений переменной $PATH

Код:

PATH=/директория нашего файла :$PATH

Этой командой мы добавляем нужную директорию с нашим файлом в переменную.

Теперь сново запустим /usr/local/bin/suid-env

Посмотреть вложение 47525

Мы есть Root!!!


Я скачал и распаковал свежую копию Chromium (Linux_x64), и когда я пытаюсь запустить chromeбинарный файл, это происходит:

[23986:23986:0806/143027:FATAL:browser_main_loop.cc(148)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
Aborted (core dumped)

Это не происходит с chromium-browserпакетом Ubuntu . Я могу обойти ошибку, запустив Chromium с, --no-sandboxно я предпочел бы оставить песочницу включенной.

chrome_sandboxимеет разрешения 4755и является исполняемым пользователем chrome. Кто-нибудь знает, как исправить эту ошибку?

Возможно, это не связано, но я использую полнодисковое шифрование при установке Ubuntu.


Ответы:


Загрузите chrome-linux.zipиз соответствующей папки отсюда .

Распакуйте файл — получите папку с именем chrome-linux.

Переместите папку туда, куда вы хотите — я переместил ее в свою домашнюю папку.

  • перейти к этой папке

  • откройте терминал там

Предыдущие два шага могут быть отменены.

Запустите эти четыре команды по отдельности:

sudo mv chrome_sandbox chrome-sandbox
sudo chown root chrome-sandbox
sudo chmod 4755 chrome-sandbox
./chrome-wrapper

Когда я это делаю, мне хорошо идти.


Делать:

$ export DISPLAY=:0.0 && ./chrome --no-sandbox


Развитие хромированной песочнице прекращено досрочно в 2016 году (последняя версия хром-Linux (64bit) , что Лайл упоминается в http://commondatastorage.googleapis.com/chromium-browser-continuous/index.html?prefix=Linux_x64/382014/ , который из Март 2016 года больше года назад).

Смотрите комментарий в ТОП https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md, который ссылается на обсуждение здесь: https://bugs.chromium.org/p/chromium / Issues / Detail? ID = 598454 — ошибка, которая была закрыта как исправлено 21 июня 2016 года.

Это обсуждение, по-видимому, указывает на то, что с соответствующей поддержкой ядра безопасно запускать chrome с —disable-setuid-sandbox, что должно привести к тому, что chrome перестанет даже искать песочницу, но откажется работать, если ваше ядро ​​не получило поддержки безопасно сделать это.

Тем не менее, в этот момент (апрель 2017 года) Ubuntu Stable (Xenial) все еще поставляется с песочницей; Пакет chromium-browser содержит: / usr / lib / chromium-browser / chrome-sandbox, который является корнем setuid. Причина, по которой я получил ошибку в названии этого вопроса, заключается в том, что я запускал специальную версию chrome, которая была частью пакета, поставляемого с приложением (средство просмотра SecondLife), которое сочло необходимым предоставить свою собственную версию браузер Само собой разумеется, что этот загруженный пакет не был установлен с setuid root: p (и я бы не предложил изменить его на 4755, потому что это не слишком безопасно).


На компьютере с Ubuntu 13.04 исполняемый файл chromium-browser-sandbox имеет разрешение 4755 и принадлежит пользователю root

root@ubuntu:~# ls -l /usr/lib/chromium-browser/chromium-browser-sandbox
-rwsr-xr-x 1 root root 13904 Jul 18 16:11 /usr/lib/chromium-browser/chromium-browser-sandbox

Я думаю, вам нужно использовать команду, chown root.root /path/to/chrome_sandboxчтобы сделать root владельцем исполняемого файла.



За проблему Запуск без песочницы SUID! См. Code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment. Я делаю следующие шаги …

установите chrome-linux http://commondatastorage.googleapis.com/chromium-browser-continuous/index.html?prefix=Linux_x64/100056/ (X64)

распакуйте zip, выполните команды и войдите в папку

sudo mv chrome_sandbox chrome-sandbox
sudo chown root chrome-sandbox
sudo chmod 4755 chrome-sandbox

затем я распаковываю и устанавливаю libgcrypt11_1.5.0-5 + deb7u6_amd64.deb из этой команды

wget http://security.debian.org/debian- 
security/pool/updates/main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u6_amd64.deb

Затем выполните команды индивидуально:

mv libgcrypt11_1.5.0-5+deb7u6_amd64.deb ../
sudo dpkg -i libgcrypt11_1.5.0-5+deb7u6_amd64.deb
./chrome-wrapper

На чтение 3 мин Опубликовано 10.10.2017

Так называемые “суидные” файлы выполняются с правами владельца этих файлов.

Таким образом, при наличии уязвимости в этих файлах, злоумышленник может внедрить произвольный код на исполнение.

Как найти все SUID/SGID файлы

# df --local -P | awk {"if (NR!=1) print $6"} | xargs -I "{}" find "{}" -xdev -type f -perm -4000 -print
# df --local -P | awk {"if (NR!=1) print $6"} | xargs -I "{}" find "{}" -xdev -type f -perm -2000 -print 

Далее вы можете сравнить их со списом, приведенным ниже. Список собирался на Debian, Ubuntu, SUSE и CentOS.

Если у вас нашлись какие-то другие файлы, то это могут быть:

  • файлы дополнительного ПО
  • вредоносные или опасные файлы.

Вы можете воспользоваться поиском в интернете о каждом конкретном файле из вашего списка

Если вы не нашли, что этому файлу действительно нужны особые права на исполнение, то лучше удалить его или понизить права права.

 # chmod u-s <file>
# chmod g-s <file> 

Также есть много дефолтных SUID/SGID файлов, которые никогда не используются, но при выявлении уязвимостей в них, могут быть используемы злоумышленником.

С них тоже стоит убрать привилегии .

Примечание. Будьте внимательны, так как вы можете их использовать.

 # chmod u-s /usr/bin/suidperl /usr/bin/sperl5.6.1 /usr/bin/gpasswd /usr/bin/kon
< chmod u-s /usr/bin/newvc /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /usr/bin/lppasswd
# chmod u-s /usr/bin/kcheckpass /usr/bin/ssh /usr/bin/rcp /usr/bin/rlogin /usr/bin/rsh /usr/bin/inndstart
# chmod u-s /usr/bin/rnews /usr/bin/startinnfeed /usr/bin/nwsfind /usr/bin/uucp /usr/bin/cu
# chmod u-s /usr/bin/uuname /usr/bin/uustat /usr/bin/uux
# chmod u-s /usr/lib/mc/bin/cons.saver
# chmod -R u-s /usr/lib/amanda/
# chmod u-s /usr/sbin/ping6 /usr/sbin/traceroute6 /usr/sbin/sendmail.sendmail /usr/sbin/usernetctl
# chmod u-s /usr/sbin/userhelper /usr/sbin/amcheck /usr/sbin/uucico /usr/sbin/uuxqt
# chmod u-s /sbin/pwdb_chkpwd /sbin/unix_chkpwd /sbin/cardctl
# chmod -R g-s /var/mailman/
# chmod g-s /var/spool/slrnpull/out.going
# chmod g-s /var/ftp/pub
# chmod g-s /usr/bin/wall /usr/bin/write /usr/bin/kdesud /usr/bin/slrnpull /usr/bin/cu /usr/bin/uuname
# chmod g-s /usr/sbin/utempter /usr/sbin/uucico /usr/sbin/uuxqt
# chmod g-s /sbin/netreport

Пожалуйста, не спамьте и никого не оскорбляйте.

Это поле для комментариев, а не спамбокс.

Рекламные ссылки не индексируются!

File permissions and ownership are the basic and yet essential security concepts in Linux. You probably are already familiar with these terms already. It typically looks like this:

Linux file permission explained

Regular file permissions

Apart from these regular permissions, there are a few special file permissions and not many Linux users are aware of it.

Linux Special Permissions: SUID, GUID and Sticky Bit

Linux Special Permissions: SUID, GUID and Sticky Bit

To start talking about of special permissions, I am going to presume that you have some knowledge of the basic file permissions. If not, please read our excellent guide explaining Linux file permission.

Now I’m gonna show you some special permissions with new letters on the Linux file system.

In this example, the passwd command, responsible to change the password of a user, has the letter s on the same place we expect to see x or -, for user permissions. It’s important to notice that this file belongs to the root user and root group.

With this permission, you don’t need to give sudo access to a specific user when you want him to run some root script.

When the SUID bit is set on an executable file, this means that the file will be executed with the same permissions as the owner of the executable file.

Suid special file permission in Linux

Let’s take a practical example. If you look at the binary executable file of the passwd command, it has the SUID bit set.

linuxhandbook:~$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 59640 Mar 22  2019 /usr/bin/passwd

This means that any user running the passwd command will be running it with the same permission as root.

What’s the benefit? The passwd command needs to edit files like /etc/passwd, /etc/shadow to change the password. These files are owned by root and can only be modified by root. But thanks to the setuid flag (SUID bit), a regular user will also be able to modify these files (that are owned by root) and change his/her password.

This is the reason why you can use the passwd command to change your own password despite of the fact that the files this command modifies are owned by root.

Why can a normal user not change the password of other users?

Note that a normal user can’t change passwords for other users, only for himself/herself. But why? If you can run the passwd command as a regular user with the same permissions as root and modify the files like /etc/passwd, why can you not change the password of other users?

If you check the code for the passwd command, you’ll find that it checks the UID of the user whose password is being modified with the UID of the user that ran the command. If it doesn’t match and if the command wasn’t run by root, it throws an error.

The setuid/SUID concept is tricky and should be used with utmost cautious otherwise you’ll leave security gaps in your system. It’s an essential security concept and many commands (like ping command) and programs (like sudo) utilize it.

Now that you understand the concept SUID, let’s see how to set the SUID bit.

How to set SUID bit?

I find the symbolic way easier while setting SUID bit. You can use the chmod command in this way:

chmod u+s file_name

Here’s an example:

linuxhandbook:~$ ls -l test.txt
-rwxrw-rw- 1 linuxhandbook linuxhandbook 0 Apr 12 17:51 test.txt
linuxhandbook:~$ chmod u+s test.txt
linuxhandbook:~$ ls -l test.txt
-rwsrw-rw- 1 linuxhandbook linuxhandbook 0 Apr 12 17:52 test.txt

You can also use the numeric way. You just need to add a fourth digit to the normal permissions. The octal number used to set SUID is always 4.

linuxhandbook:~$ ls -l test2.txt
-rwxrw-rw- 1 linuxhandbook linuxhandbook 0 Apr 12 17:53 test2.txt
linuxhandbook:~$ chmod 4766 test2.txt
linuxhandbook:~$ ls -l test2.txt
-rwsrw-rw- 1 linuxhandbook linuxhandbook 0 Apr 12 17:54 test2.txt

How to remove SUID?

You can use either the symbolic mode in chmod command like this:

chmod u-s test.txt

Or, use the numeric way with 0 instead of 4 with the permissions you want to set:

chmod 0766 test2.txt

Difference between small s and capital S as SUID bit

Remember the definition of SUID? It allows a file to be executed with the same permissions as the owner of the file.

But what if the file doesn’t have execute bit set in the first place? Like this:

linuxhandbook:~$ ls -l test.txt
-rw-rw-rw- 1 linuxhandbook linuxhandbook 0 Apr 12 17:51 test.txt

If you set the SUID bit, it will show a capital S, not small s:

linuxhandbook:~$ chmod u+s test.txt
linuxhandbook:~$ ls -l test.txt
-rwSrw-rw- 1 linuxhandbook linuxhandbook 0 Apr 12 17:52 test.txt

The S as SUID flag means there is an error that you should look into. You want the file to be executed with the same permission as the owner but there is no executable permission on the file. Which means that not even the owner is allowed to execute the file and if file cannot be executed, you won’t get the permission as the owner. This fails the entire point of setting the SUID bit.

How to find all files with SUID set?

If you want to search files with this permission, use find command in the terminal with option -perm.

find / -perm /4000

What is SGID?

SGID is similar to SUID. With the SGID bit set, any user executing the file will have same permissions as the group owner of the file.

It’s benefit is in handling the directory. When SGID permission is applied to a directory, all sub directories and files created inside this directory will get the same group ownership as main directory (not the group ownership of the user that created the files and directories).

SGID special file permission in Linux

Open your terminal and check the permission on the file /var/local:

linuxhandbook:~$ ls -ld /var/local
drwxrwsr-x 1 root staff 512 Apr 24  2018 /var/local

This folder /var/local has the letter ‘s’ on the same place you expect to see ‘x’ or ‘-‘ for group permissions.

A practical example of SGID is with Samba server for sharing files on your local network. It’s guaranteed that all new files will not lose the permissions desired, no matter who created it.

How to set SGID?

You can set the SGID bit in symbolic mode like this:

chmod g+s directory_name

Here’s an example:

linuxhandbook:~$ ls -ld folder/
drwxrwxr-x 2 linuxhandbook linuxhandbook 4096 Apr 12 19:32 folder/
linuxhandbook:~$ chmod g+s folder
linuxhandbook:~$ ls -ld folder/
drwxrwsr-x 2 linuxhandbook linuxhandbook 4096 Apr 12 19:32 folder/

You may also use the numeric way. You just need to add a fourth digit to the normal permissions. The octal number used to SGID is always 2.

linuxhandbook:~$ ls -ld folder2/
drwxrwxr-x 2 linuxhandbook linuxhandbook 4096 Apr 12 19:33 folder2/
linuxhandbook:~$ chmod 2775 folder2
linuxhandbook:~$ ls -ld folder2/
drwxrwsr-x 2 linuxhandbook linuxhandbook 4096 Apr 12 19:33 folder2/

How to remove SGID bit?

Just use the -s instead of +s like this:

chmod g-s folder

Removing SGID is the same as removing SGID. Use the additional 0 before the permissions you want to set:

chmod 0755 folder

How to find files with SGID set in Linux

To find all the files with SGID bit set, use this command:

find . -perm /2000

What is a Sticky Bit?

The sticky bit works on the directory. With sticky bit set on a directory, all the files in the directory can only be deleted or renamed by the file owners only or the root.

Sticky Bit in Linux

This is typically used in the /tmp directory that works as the trash can of temporary files.

linuxhandbook:~$ ls -ld /tmp
drwxrwxrwt 1 root root 512 Apr 12 13:24 /tmp

As you can see, the folder /tmp, has the letter t on the same place we expect to see x or for others permissions. This means that a user (except root) cannot delete the temporary files created by other users in the /tmp directory.

How to set the sticky bit?

As always, you can use both symbolic and numeric mode to set the sticky bit in Linux.

chmod +t my_dir

Here’s an example:

linuxhandbook:~$ ls -ld my_dir/
drwxrwxr-x 2 linuxhandbook linuxhandbook 4096 Apr 12 19:54 my_dir/
linuxhandbook:~$ chmod +t my_dir/
linuxhandbook:~$ ls -ld my_dir/
drwxrwxr-t 2 linuxhandbook linuxhandbook 4096 Apr 12 19:54 my_dir/

The numeric way is to add a fourth digit to the normal permissions. The octal number used for sticky bit is always 1.

linuxhandbook:~$ ls -ld my_dir/
drwxrwxr-x 2 linuxhandbook linuxhandbook 4096 Apr 12 19:55 my_dir/
linuxhandbook:~$ chmod 1775 tmp2/
linuxhandbook:~$ ls -ld tmp2/
drwxrwxr-t 2 linuxhandbook linuxhandbook 4096 Apr 12 19:55 my_dir/

How to remove the sticky bit:

You can use the symbolic mode:

chmod -t my_dir

Or the numeric mode with 0 before the regular permissions:

chmod 0775 tmp2

How to find files with sticky bit set in Linux

This command will return all files/directories in with sticky bit set:

linuxhandbook:~$ find . -perm /1000

If the directory doesn’t have the execute permission set for all, setting a sticky bit will result in showing T instead of t. An indication that things are not entirely correct with the sticky bit.

Conclusion

I’ll put this picture here to recall what you have just learned:

Linux Special Permissions Explained

This flexibility to manage folders, files and all their permissions are so important in the daily work of a sysadmin. You could see that all those special permissions are not so difficult to understand but they must be used with utmost caution.

I hope this article gave you a good understanding of the SUID, GUID and Sticky Bit in Linux. If you have questions or suggestions, please drop a comment below.

Abhishek Prakash

Creator of Linux Handbook and It’s FOSS. An ardent Linux user & open source promoter. Huge fan of classic detective mysteries from Agatha Christie and Sherlock Holmes to Columbo & Ellery Queen.

Понравилась статья? Поделить с друзьями:
  • Suffered a fatal error and will now exit перевод
  • Suexec error log
  • Sudo ufw allow openssh error не найдено профилей соответствующих openssh
  • Sudo ufw allow openssh error could not find a profile matching openssh
  • Sudo syntax error