jyz*_*jyz 17 debugging setuid gdb
我写了一个程序,调用setuid(0)和execve("/bin/bash",NULL,NULL).
然后我做了 chown root:root a.out && chmod +s a.out
当我执行时,./a.out我得到一个 root shell。但是,当我这样做时,gdb a.out它会以普通用户身份启动进程,并启动一个用户 shell。
那么...我可以调试 setuid root 程序吗?
小智 8
如果您愿意,这里有一种在停止状态下启动进程的方法。使用 bash 脚本执行以下操作:
echo $BASHPID; kill -STOP $BASHPID; exec sudo -u unpriviledged_user -g the_group_if_not_primary commandRun Code Online (Sandbox Code Playgroud)
让它在后台运行。
然后开始gdb,并附加到打印的pid。
您必须使用 单步执行exec命令gdb,但您可以从一开始就进行调试。