touch
命令在 Linux 系统中,通常用于修改文件的访问时间(atime)和修改时间(mtime),或者在文件不存在时创建一个空文件。若 touch
命令被赋予 SUID(Set User ID)权限,它将以文件所有者(通常是 root )的身份执行。这为潜在的提权攻击提供了切入点,攻击者可利用此特性获取超级用户权限。以下是详细的渗透测试步骤,展示如何利用 touch
命令的 SUID 权限进行提权攻击。
1. 使用 strace
分析 touch
的系统调用
通过执行以下命令,利用 strace
跟踪 touch
命令的系统调用,观察其对文件系统的访问情况。该命令会输出文件操作的详细信息,帮助检测潜在的漏洞。如果存在文件未找到或加载异常,攻击者便可通过劫持这些文件实现提权。例如,/etc/ld.so.preload
文件用于动态链接器的库加载配置,若该文件被劫持,攻击者可以注入恶意库。
执行命令:
strace touch 2>&1 | grep -Pi "open|access|no such file"
示例输出:
strace: Symbol `_UPT_accessors' has different size in shared object, consider re-linking
acc