Linux 提权
Linux 提权
“privilege escalation” 通常是指从较低权限账户切换到更高权限账户,更具体的讲,它是利用作系统或应用中的漏洞、设计缺陷或配置疏忽,非法访问通常对用户受限的资源。
为什么要提权
- 重置其他账户密码
- 绕过受访问控制的资源
- 编辑一些软件的配置文件
- 实现持久化(泛指长期对目标机的控制权)
- 更高权限的操作
一些前置知识
用户与权限
用户相关
| 用户 | UID | 描述 |
|---|---|---|
| root | 0 | all rights |
| regular user | 1000+ | login-shell |
| service user | <1000 | web/mysql |
/etc/passwd
root:x:0:0:root:/root:/bin/bash
- 用户名
- 密码位
- UID
- GID
- comment
- homedir
- login-shell
真正存储密码的位置
1
2
3
4
5
/etc/shadow
root:$6$asdasdasd...:18333:0:99999:7:::
-rw-r----- 1 root shadow 859 Nov 23 21:35 /etc/shadow
权限相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fb0sh@Legion-Y9000X-IAH7:~$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 59976 Feb 6 2024 /usr/bin/passwd
fb0sh@Legion-Y9000X-IAH7:~$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1476 Nov 23 21:35 /etc/passwd
fb0sh@Legion-Y9000X-IAH7:~$ ls -l /etc/shadow
-rw-r----- 1 root shadow 859 Nov 23 21:35 /etc/shadow
rwx r-x r-x
│ │ │
│ │ └─ 其他用户
│ └──── 同组用户
└──────── 文件所有者
其中第一个是具有SUID位的可执行文件(SUID只能赋给可执行文件,并只会标注在属主权限位)
SUID代表, 任何人执行这个文件时,都会以 文件所有者的权限 执行
find / -perm -u=s -type f 2>/dev/null # 查找具有suid的文件
| 权限 | 值 | 意义 |
|---|---|---|
| r | 4 | Read |
| w | 2 | Write |
| x | 1 | Execute |
chmod +x file
chmod u+s file
chown owner file
进程与服务
ps aux
1
2
3
4
fb0sh@Legion-Y9000X-IAH7:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 165944 10720 ? Ss 09:44 0:00 /sbin/init
root 242 0.0 0.1 107160 21120 ? Ssl 09:44 0:00 /usr/bin/python3 /usr/share/unattended-upgrad
当高权限的进程存在漏洞,则有可能利用提权
环境变量
PATH 权限漏洞
1
2
echo $PATH
.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
.代表当前目录,如果当前目录下有恶意脚本,系统可能会优先执行它。
LD_PRELOAD / LD_LIBRARY_PATH 库劫持
计划任务
cron / at
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fb0sh@Legion-Y9000X-IAH7:~$ crontab -l
no crontab for fb0sh
fb0sh@Legion-Y9000X-IAH7:~$ ls /etc/cron*
/etc/crontab
/etc/cron.d:
e2scrub_all
/etc/cron.daily:
apport apt-compat dpkg logrotate man-db
/etc/cron.hourly:
/etc/cron.monthly:
/etc/cron.weekly:
man-db
-rwxrwxrwx root root /etc/cron.daily/backup.sh
如果存在有脚本的权限可修改,就比较危险
脚本权限
计划任务里的自定义脚本
sudo -l 显示的nopasswd的特权脚本
开始提权
手动枚举可用信息
主机与网络信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fb0sh@Legion-Y9000X-IAH7:~$ hostname -a
Legion-Y9000X-IAH7
fb0sh@Legion-Y9000X-IAH7:~$ uname -a
Linux Legion-Y9000X-IAH7 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
fb0sh@Legion-Y9000X-IAH7:~$ ip -4 -br a
lo UNKNOWN 127.0.0.1/8 10.255.255.254/32
eth0 UP 192.168.17.66/20
br-acb6909b4aef UP 172.18.0.1/16
docker0 UP 172.17.0.1/16
fb0sh@Legion-Y9000X-IAH7:~$ cat /proc/version
Linux version 6.6.87.2-microsoft-standard-WSL2 (root@439a258ad544) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025
这部分一般用来内核提权
环境变量
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fb0sh@Legion-Y9000X-IAH7:~$ env
SHELL=/bin/bash
WSL2_GUI_APPS_ENABLED=1
FNM_ARCH=x64
WSL_DISTRO_NAME=Ubuntu-22.04
WT_SESSION=1b685a9a-2a0e-444d-ae00-efe6319db52b
FNM_NODE_DIST_MIRROR=https://nodejs.org/dist
NAME=Legion-Y9000X-IAH7
PWD=/home/fb0sh
LOGNAME=fb0sh
RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup
HOME=/home/fb0sh
LANG=C.UTF-8
WSL_INTEROP=/run/WSL/3075_interop
环境变量劫持
sudo 和 suid
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
fb0sh@Legion-Y9000X-IAH7:~$ id
uid=1000(fb0sh) gid=1000(fb0sh) groups=1000(fb0sh),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev),999(docker)
fb0sh@Legion-Y9000X-IAH7:~$ sudo -l
[sudo] password for fb0sh:
Matching Defaults entries for fb0sh on Legion-Y9000X-IAH7:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User fb0sh may run the following commands on Legion-Y9000X-IAH7:
(ALL : ALL) ALL
fb0sh@Legion-Y9000X-IAH7:~$ find / -perm -u=s -type f 2>/dev/null
/usr/bin/chsh
/usr/bin/mount
/usr/bin/newgrp
/usr/bin/sudo
/usr/bin/pkexec
/usr/bin/umount
/usr/bin/gpasswd
/usr/bin/su
/usr/bin/fusermount3
具有sudo或suid的程序的提权方式
配置文件与其他可写文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
fb0sh@Legion-Y9000X-IAH7:~$ ls -la ~
total 156
drwxr-x--- 21 fb0sh fb0sh 4096 Dec 3 09:54 .
drwxr-xr-x 3 root root 4096 Nov 23 21:34 ..
-rw------- 1 fb0sh fb0sh 18473 Dec 3 09:45 .bash_history
-rw-r--r-- 1 fb0sh fb0sh 220 Nov 23 21:34 .bash_logout
-rw-r--r-- 1 fb0sh fb0sh 4043 Nov 25 21:44 .bashrc
-rw-r--r-- 1 fb0sh fb0sh 26 Nov 24 16:19 .zshrc
drwxr-xr-x 4 fb0sh fb0sh 4096 Nov 30 13:16 Cline
drwxr-xr-x 3 fb0sh fb0sh 4096 Dec 2 09:52 docs
drwxr-xr-x 3 fb0sh fb0sh 4096 Nov 27 14:17 github
drwxr-xr-x 11 fb0sh fb0sh 4096 Dec 2 11:43 projects
fb0sh@Legion-Y9000X-IAH7:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
自动枚举
- LinPeas: https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS
- LinEnum: https://github.com/rebootuser/LinEnum
- LES (Linux Exploit Suggester): https://github.com/mzet-/linux-exploit-suggester
- Linux Smart Enumeration: https://github.com/diego-treitos/linux-smart-enumeration
- Linux Priv Checker: https://github.com/linted/linuxprivchecker
内核提权
不到万不得已不优先使用,可能使目标系统不稳定,且容易丢失初始shell
- 获取系统版本
1 2
fb0sh@Legion-Y9000X-IAH7:~$ uname -a Linux Legion-Y9000X-IAH7 6.6.87.2-microsoft-standard-WSL2 #1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
- 寻找与之匹配的内核提权脚本 ```bash 在Google、Exploit-db或searchsploit上搜索
LES (Linux Exploit Suggester): https://github.com/mzet-/linux-exploit-suggester
```
- 编译或直接利用获得root shell
sudo 提权
适用于 拥有nopasswd sudo 或 有一组凭证
- 使用sudo -l 列出 是否能够nopasswd执行 特定脚本
- 查询GTFObins网站寻找 提权步骤
SUID 提权
定时任务
- 查看有哪些计划任务
- 查看脚本是否有权限修改
- 修改脚本,等待反弹
提权优先级 (最小破坏原则)
SUDO(配置文件) > SUID > Cron > PATH/ENV > Kernel Exploit
living off the land
靠山吃山,靠水吃水;因地制宜;
尽量不往目标系统中新增新文件,尽可能利用已经存在的文件。
https://docs.broadcom.com/doc/istr-living-off-the-land-and-fileless-attack-techniques-en





