购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1.3 SUID/SGID文件权限排查

从权限划分上来说,Linux系统分为管理员用户和普通权限用户。Linux系统权限的划分主要通过文件的权限属性来实现。如果操作人员缺乏安全意识,进行不安全的配置后,很有可能会导致系统权限问题,其中最为典型的权限问题就是SUID提升权限,给予用户一个临时所有者的权限来运行一个程序或文件。执行程序时,用户将获取文件所有者的权限,如果文件所有者权限较高,为管理员权限,此时该普通用户就会以管理员的身份对系统进行操作。本节将介绍SUID/SGID文件权限的排查方式,并针对该问题提供了常用的修复和加固方法。

Linux系统文件及目录最常见的3种权限为可读权限(r)、可写权限(w)和可执行权限(x)。有时我们会发现有些文件或者目录的属主权限会带s标识,当s标识出现在文件所有者的x权限上时,如/usr/bin/passwd目录文件的权限状态为-rwsr-xr-x,此时就被称为Set UID,简称SUID权限。此时,如果该文件的属主权限为root,并能够执行命令操作,攻击者便可以root身份进行操作。常见导致SUID提权的可执行程序包括Nmap、vim、find、bash、more、less、nano、pkexec等,当查询这些可执行程序具有SUID权限时,可进一步排查是否存在权限提升安全问题,并对存在安全的程序进行修复和加固。

接下来,利用如下find命令查询Linux系统中具有SUID权限的文件,结果如图3-19所示。

图3-19 查询具备SUID权限的文件

可以看到,find和pkexec具有SUID权限,接下来测试find和pkexec可行性程序是否能够提权成功,通过如下find指令使普通用户获得root权限执行系统指令,结果如图3-20所示。

图3-20 通过find指令进行SUID提权

Polkit的pkexec(pkexec不高于0.120版本时)存在提权的安全问题,该漏洞允许任何非特权用户通过在Linux默认配置中利用此漏洞获得root权限。通过exp文件进行操作使普通用户获得root权限执行系统指令,执行结果如图3-21所示。

图3-21 通过pkexec指令进行SUID提权

在具有SUID权限的可执行程序中,如果存在权限提升安全威胁,可通过修改可执行程序权限或更新软件进行打补丁的方式修复SUID权限文件导致的安全问题。修改suid可执行文件权限的命令如下,结果如图3-22所示。

图3-22 修改suid可执行文件权限 Psr2v/ILuGYwT0FytpnGuHS88vpNvfMd8R4CtzT7SMjBaO57JoVSuz/c1GQZlj2Z

点击中间区域
呼出菜单
上一章
目录
下一章
×