调试器作为进入 root shell 的工具

调试器作为进入 root shell 的工具

根据参考文献中的答案: gdb可以调试suid root程序吗?

声称:“只有当调试器以 root 身份运行时,您才能调试setuidsetgid程序。内核不会让您调用ptrace以额外权限运行的程序。如果这样做,您将能够使程序执行任何操作,这实际上意味着您可以通过调用调试器来运行 root shell /bin/su。”

我想问如果普通用户被授予这些权限,他如何才能从调试器工具中受益?作为普通用户,我们如何才能使用调试器工具进入 root shell?

我有一个后续问题,根据杜文亮的《计算机与网络安全》一书(第75页,进行缓冲区溢出攻击),他声称如果我们这样编译c语言程序:

$ gcc -z execstack -fno-stack-protector -g -o stack_dbg stack.c 
$ sudo chown root stack
$ sudo chmod 4755 stack

使该程序成为一个Set-UID程序,可以选择由普通用户调试,但普通用户不会获得任何权限。为什么?既然用户可以使用调试工具,那么为什么他不能利用它来为自己谋利呢?

相关内容