加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – ptrace suid进程(在它下降普遍存在之后)

发布时间:2020-12-13 23:20:16 所属栏目:Linux 来源:网络整理
导读:我知道我们不能对suid二进制文件进行ptrace.但是,我想知道为什么在二进制文件将其优先级降低到uid而不是euid之后我们不能执行ptrace. 例如,在二进制文件中,suid二进制文件在执行某些步骤后会丢弃特权. seteuid (euid); /* euid was obtained by geteuid() */
我知道我们不能对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身份运行).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读