gdb可以调试suid root程序吗?
我做了一个调用 setuid(0) 和 execve("/bin/bash",NULL,NULL) 的程序。
然后我做了 chown root:root a.out && chmod +s a.out
当我执行 ./a.out
时,我得到一个 root shell。但是,当我执行 gdb a.out 时,它会以普通用户身份启动进程,并启动用户 shell。
那么...我可以调试一个suided root 程序吗?
I did a program that call setuid(0) and execve("/bin/bash",NULL,NULL).
Then I did chown root:root a.out && chmod +s a.out
When I execute ./a.out
I get a root shell. However when I do gdb a.out
it starts the process as normal user, and launch a user shell.
So... can I debug a suided root program?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只能以 root 身份运行
gdb
。 (换句话说,不行。)出于安全原因,普通用户不允许跟踪属于其他用户的进程,尤其是 root。
Only by running
gdb
as root. (In other words, no.)For security reasons, normal users are not allowed to trace processes belonging to other users, especially root.