我目前正在学习一本关于安全性的书(我没有发布这本书的名字,因为我不确定网站规则,但如果没有问题,我可以这样做)我遇到了一个代码示例,其目的是生成根shell。
int main(){
char *name[2];
name[0] = "/bin/sh";
name[1] = 0x0;
execve(name[0], name, 0x0);
exit(0);
}
我使用gcc shell.c -o shell
编译它,然后运行它,但我得到的是一个常见的shell $
而不是root shell #
。你能告诉我为什么吗?
答案 0 :(得分:2)
因为您忘记阅读需要使root和setuid拥有可执行文件的部分,然后才能执行您想要的操作。