T1548.001: Setuid 和 Setgid

权限提升

摘要

攻击者可能滥用设置了 setuid 或 setgid 位的应用程序配置,以在不同(且可能更具特权)用户上下文中运行代码。在 Linux 或 macOS 上,当为应用程序二进制文件设置 setuid 或 setgid 位时,应用程序将分别以拥有用户或组的权限运行。(Citation: setuid man page) 通常,无论应用程序由哪个用户或组拥有,应用程序都在当前用户的上下文中运行。然而,有些情况下程序需要在提升的上下文中执行才能正常运行,但运行它们的用户可能不具有特定的所需权限。 任何用户都可以为自己的应用程序指定要设置的 setuid 或 setgid 标志(即 [Linux 和 Mac 权限](https://attack.mitre.org/techniques/T1222/002)),而无需在 sudoers 文件中创建条目(后者必须由 root 完成)。<code>chmod</code> 命令可以通过位掩码 <code>chmod 4777 [file]</code> 或通过简写命名 <code>chmod u+s [file]</code> 设置这些位。这将启用 setuid 位。要启用 setgid 位,可以使用 <code>chmod 2775</code> 和 <code>chmod g+s</code>。 攻击者可以在自己的恶意软件上使用此机制,以确保它们将来能够在提升的上下文中执行。(Citation: OSX Keydnap malware) 这种滥用通常是“shell 逃逸”或其他绕过具有受限权限的执行环境的操作的一部分。 或者,攻击者可能选择查找并针对已启用 setuid 或 setgid 位的易受攻击的二进制文件(即[文件和目录发现](https://attack.mitre.org/techniques/T1083))。当通过 <code>ls -l</code> 查看文件属性时,setuid 和 setguid 位用 "s" 而非 "x" 表示。<code>find</code> 命令也可用于搜索此类文件。例如,<code>find / -perm +4000 2>/dev/null</code> 可用于查找设置了 setuid 的文件,<code>find / -perm +2000 2>/dev/null</code> 可用于 setgid。然后,攻击者可能滥用设置了这些位的二进制文件。(Citation: GTFOBins Suid)

来源归属

来源:MITRE ATT&CK · 置信度:high

平台

  • Linux
  • macOS

战术

权限提升

参考来源