gpt4 book ai didi

linux - ptrace suid 进程(在它放弃特权之后)

转载 作者:IT王子 更新时间:2023-10-29 00:44:03 25 4
gpt4 key购买 nike

我知道我们不能对 suid 二进制文件执行 ptrace。但是,我想知道为什么我们不能在二进制文件将其特权降为 uid 而不是 euid 后执行 ptrace。

例如,在二进制文件中,suid 二进制文件在执行某些步骤后会降低权限。

 seteuid (euid); /* euid was obtained by geteuid() */
ret_chdir = chdir (path);
seteuid (ruid); /* ruid was obtained by getuid() */

system("whoami");
printf("Enter any char");
scanf("%c", &junk);

在我的例子中,当打印“whoami”时,它是进程的用户名而不是进程的所有者。当程序等待垃圾输入时,我试图以 uid 作为用户名附加到正在运行的进程,但即使二进制文件已放弃特权,它也失败了。 ptrace attach 是否可能使用 saved-uid 状态来确定我不是所有者?

最佳答案

你的 yama ptrace scope可能会阻止您附加到该过程。本质上,当今大多数 Linux 内核默认不允许附加到任意进程。

一个进程可以请求被它的父进程跟踪(ptrace(PTRACE_TRACEME)),但是如果你想使用PTRACE_ATTACH,你要么需要指定那个进程,使用 prctl,它希望您的进程附加到它,或者需要将 yama 范围设置为 0(或者,您的进程当然可以作为 root 运行)。

关于linux - ptrace suid 进程(在它放弃特权之后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37333618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com