find / -type f -perm -4000 2>/dev/null用于精准查找带有效SUID位的普通文件:-type f排除目录等干扰项,-perm -4000确保属主执行位为s/S且实际可提权;高危路径包括/tmp、/var/tmp、/home/*/local/bin等,需结合属主、文件类型及字符串分析快速甄别后门。

直接用 find / -type f -perm -4000 2>/dev/null 就能列出所有带 SUID 的普通文件,但结果里混着大量合法系统程序,真正要盯的是那些路径异常、属主可疑、或行为可滥用的文件。
为什么必须加 -type f 和 -perm -4000
不加 -type f 会把目录、设备文件、符号链接也扫进来,干扰判断;-perm -4000 是“严格匹配”,只找确实设置了 SUID 位的文件(即权限字符串中属主执行位是 s 或 S),而 -perm /4000 是“宽松匹配”,只要权限含 SUID 位就返回——容易漏掉关键细节,比如 -rwSr--r-- 这种无效 SUID(没执行位)也会被包含,但它根本不能提权。
哪些路径一出现 SUID 就该立刻警觉
系统默认 SUID 文件基本集中在 /bin、/usr/bin、/usr/sbin。以下路径一旦发现 SUID 文件,基本可视为高风险:
-
/tmp、/var/tmp、/dev/shm:正常系统绝不会在这里放 SUID 二进制 -
/usr/local/bin:第三方软件常驻地,但官方发行版不在此设 SUID -
/home/*/.local/bin:普通用户可写目录,若出现 SUID 文件,大概率是后门 -
/opt:需核对是否为可信厂商安装包释放,否则优先怀疑
光列出来没用,得快速验证是不是真能用
每个结果都要快速过一遍,避免误判:
- 用
ls -l /path/to/file看属主:不是root、bin、daemon的,先标红 - 用
file /path/to/file确认是不是 ELF 可执行文件:SUID 脚本(如 Python、Bash)多数无法直接提权,除非有硬编码漏洞 - 用
strings /path/to/file | grep -i "sh\|exec\|system"扫描是否调用 shell:出现这类关键字,说明可能被参数注入劫持 - 特别留意名字像
loghelper、sysupdate、backupd的文件:不在常见白名单里,又在非标路径,基本就是后门
真正难的不是找到 SUID 文件,而是从几百行输出里快速剔除 /usr/bin/sudo 这类合法项,再对剩下几十个逐个做最小验证——漏掉一个 /tmp/.woot,就可能让攻击者拿到 root shell。


















