linux提权系列30: 追猎千里
2023-4-27 08:3:9 Author: 奶牛安全(查看原文) 阅读量:21 收藏

经过了长达29篇的文章,可以看到非常精彩的提权行为。作为一个主机入侵测试系统的码农,很多时候需要对于这种行为进行检测,从而保证系统的安全。

那么,从哪些方面来保证呢?

敏感文件的权限检测

从这个系列来看,大多数时候提权的突破口或攻击面,都由于一些敏感文件的权限设置不当,如/etc/passwd,/etc/shadow, /etc/groups, /etc/sudoers,/etc/sudoers.d/目录下的文件,/etc/ld.so.conf, /etc/ld.so.conf.d/下的文件。这些文件的权限由于设置为其它人可写或组可写,从而让攻击者篡改内容,从而获取想要的权限。

其实,还有不少文件这个系列是没有提到的,

  • /etc/profile, /etc/profile.d, /etc/bashrc,(各种shell的初始化脚本或xwindow和桌面环境初始配置脚本): 如果是全局可写,攻击者就可以把自己东西写进去。
  • /var/spool/cron/root或其它用户的定时任务:如果全局可写,攻击者可以执行想要的任务,从而达到目的。

二进制文件的suid,sgid位检测

从这个系列来看,很多也是由于suidsgid位设置不对,从而给攻击提升了权限。

但这一块的检测,却是非常困难。一般是两种方法:

  1. 全盘扫描,对于所有二进制文件扫描。它需要使用libmagic来判断二进制文件,再检查它的标志位。
  2. 实时监控进程。每次进程创建时,看进程的ruid/rgideuid/egid是否一致。如果不一致,就上报。

第一种方法实现简单,但非常耗时,且读取磁盘,会对系统性能存在极大影响。

第二种方法一般是使用ebpfaudit来做。这种方法对性能影响不大,但是比较滞后。因为这时候程序已经运行了。

sudo配置检测

  1. 检查/etc/sudoers,/etc/sudoers.d/目录下的文件是否开启了NOPASSWD。如果有,立马上报,防止有水平或垂直提权。
  2. env_keep的设置是否合理。

web配置检测和web目录权限检测

这里检测主要是两块:

  1. web服务器的用户配置,是否以root运行。
  2. web目录的属主和权限是否合理。

软件漏洞管理

主要是针对一些有漏洞的第三方程序。需要采集rpmdeb之类包管理信息,并且在管理端需要拉取漏洞信息,进行对比管理。

同时也要检测系统是否安装了gcc, llvm之类的编译器。如果有,则上报。

用户配置文件检测

用户配置文件检测,主要是看一些环境变量的设置。

  1. PATH
  2. LD_PRELOAD
  3. LD_LIBRARY_PATH
  4. DOCKER_HOST

检测进程的rootcwd

这个主要是程序是否会二次chroot。主要是做法,是看子进程和父子进程的/proc/<pid>/root是否满足如下关系:子进程的/proc/<pid>/root和父进程/proc/<pid>/root相同或是它的子目录。

检测进程环境变量

这一块检测分为静态和动态检测。

  1. 静态检测,就是检测/etc/profile,各种shell的初始化脚本,xwindow和桌面环境初始化脚本,用户主目录下的初始化脚本。
  2. 检测运行进程的/proc/<pid>/environ

检测进程的能力

为什么不是直接执行capsh --print呢?因为,HIDS运行时只能获取它当前用户的linux能力,要获取所有用户的呢?特别是那些容器里的呢?

由于在docker环境运行的进程,都可以在宿主机看到。所以,可以直接读取所有进程的status文件里Cap开头的字段,然后再进行解码即可。这样就可以获取所有用户和所有容器的linux能力。

检测进程挂载的分区

在这里,读取/etc/fstab配置是没意义的。因为这只是系统启动时挂载的设置。但用户可以自己挂载分区。应该是读取/proc/mounts

检测unix socket的权限

这个系列中,容器被突破,很多时候是因为它的unix socket权限设置不对。

但是,如果找到所有的unix socket呢?这貌似是一个问题。

其实,这并不是一种难事。在/proc/net/unix下,就可以找到宿主机的所有unix socket


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4NjY0NTExNA==&mid=2247489347&idx=1&sn=b7287e9b3ab81bc46f21d6127ff8640d&chksm=fdf97c56ca8ef540235f5d96f29e289d47cdf9e3470de03b538bcdda2527e37bb556a6f994cc#rd
如有侵权请联系:admin#unsafe.sh