虽然不能完全禁用系统上的ptrace,但是对于普通用户来说,是无法使用ptrace的,你可以通过向/etc/sysctl.conf添加kernel.yama.ptrace_scope=2来设置。 其他缓解策略包括Seccomp、SELinux或 Apparmor 的组合,以限制获取/proc/${PID}/map或/prop/${PID}/mem这样敏感文件的权限。另外,点击该链接获取Bash ROP和POC代码。
Linux 系统在文件 /proc/sys/kernel/yama/ptrace_scope 中配置了用于控制进程追踪(Process Tracing)的权限,如图 9-76 所示。进程追踪是一种调试技术,它允许一个进程检查和控制另一个进程的执行当文件内容为 0 时,允许所有进程被追踪; 当文件内容为 1 时,只允许父进程对子进程进行追踪; 当文件内容为 2 时,...
可以通过在终端中执行“echo 0 > /proc/sys/kernel/yama/ptrace_scope”来将ptrace_scope的值设置为0,从而放宽对调试程序的权限限制。 总的来说,使用GDB进行调试时可能会遇到权限相关的问题,特别是在调试需要root权限的程序时。通过修改程序的权限、使用sudo命令或者放宽ptrace_scope参数等方式,我们可以有效地解决这些...
许多开发人员不知道应用程序可以通过 prctl 禁用 ptrace,除了 root 用户。尽管与安全相关的软件(如 OpenSSH 代理)执行这些操作,但期望系统上运行的所有软件都具有相同的行为是不对的。 最近,一些 Linux 发行版开始将上述 ptrace_scope 文件的默认值设置为 1。因此,在限制 ptrace 操作的情况下,整个系统提供了更安全...
1:一个进程只能对下属的子进程或线程使用PTRACE_ATTACH功能。 2:只有拥有CAP_SYS_PTRACE权限的进程能够对其它进程使用PTRACE_ATTACH功能。 3:任何进程均不能使用PTRACE_ATTACH或PTRACE_TRACEME功能,并且参数ptrace_scope取值不能改变。 可以根据应用需求,设置合适的/proc/sys/kernel/yama/ptrace_scope值,例如:生产环境...
内核版本>Linux Kernel 3.4支持完全限制或禁用ptrace的功能。 具有kernel.yama.ptrace_scope限制和禁用。 具体实现 获取sshd进程明文密码。可使用括号执行程序,然后退出当前shell,并用ssh登录其他主机。 (strace-f-F-p`ps aux|grep"sshd-D"|grep-v grep|awk{'print$2'}`-t-e trace=read,write-s 4096 2>/...
Linux Kernel 3.4及更高版本支持完全限制或禁用ptrace的功能。这可以通过使用sysctl将kernel.yama.ptrace_scope设置为1、2或3来完成。默认情况下,大多数发行版都将其设置为1。根据Linux Kernel Yama Documentation,这些数字映射到以下权限: 0-经典ptrace权限:进程可以将PTRACE_ATTACH传递给任何其他进程,只要它是可转储的...
内核版本>Linux Kernel 3.4支持完全限制或禁用ptrace的功能。 具有kernel.yama.ptrace_scope限制和禁用。 具体实现 获取sshd进程明文密码。可使用括号执行程序,然后退出当前shell,并用ssh登录其他主机。 (strace-f-F-p`ps aux|grep"sshd-D"|grep-v grep|awk{'print$2'}`-t-e trace=read,write-s 4096 2>/...
kernel.yama.ptrace_scope = 0 net.core.bpf_jit_enable = 0 net.core.busy_poll = 0 net.core.busy_read = 0 net.core.default_qdisc = pfifo_fast net.core.dev_weight = 64 net.core.dev_weight_rx_bias = 1 net.core.dev_weight_tx_bias = 1 ...
所以,这种技术的明显缓解策略是将ptrace_scope设置为一个更严格的值。虽然不能完全禁用系统上的ptrace,但是对于普通用户来说,是无法使用ptrace的,你可以通过向/etc/sysctl.conf添加kernel.yama.ptrace_scope=2来设置。 其他缓解策略包括Seccomp、SELinux或 Apparmor 的组合,以限制获取/proc/PID/map或/prop/{PID}/mem...