pkexec允许特权用户以其他用户权限执行另外一个可执行程序, 用于polkit认证框架, 当使用 —user 参数时, 刚好可以让进程先提权到 root 然后再降权到指定用户,因此可以用于构建进程 B, 此外需要找到通过 polkit 框架执行的可执行程序(jann horn 把他们成为 helper), 这些 helper 程序需要满足普通用户用 pkexec 执行它们...
pkexec 运行的所有输出都是输出到 stderr 上的,所以运行 pkexec 不会写 stdout,等 pkexec 降权之后,会去运行 helper ,也就是以 用户xxx运行命令helper --help,这个命令会从stdout输出 usage,于是 task B 就停在了这里。 task C ptrace_traceme 接下来看 task C 的逻辑 if(child==0){// task C//用于后...
另一个影响因素是将ptrace关系标记为特权,这可以通过(例如)Polkit的pkexec帮助程序与PTRACE_TRACEME进行利用。 注意:在某些环境中,SELinux deny_ptrace可能是一种可用的解决方法。 wget https://raw.githubusercontent.com/jas502n/CVE-2019-13272/master/CVE-2019-13272.c gcc -s CVE-2019-13272.c -o ...