文章

Linux 提权

Linux 提权

Linux 提权

“privilege escalation” 通常是指从较低权限账户切换到更高权限账户,更具体的讲,它是利用作系统或应用中的漏洞、设计缺陷或配置疏忽,非法访问通常对用户受限的资源。

为什么要提权

  • 重置其他账户密码
  • 绕过受访问控制的资源
  • 编辑一些软件的配置文件
  • 实现持久化(泛指长期对目标机的控制权)
  • 更高权限的操作

一些前置知识

用户与权限

用户相关
用户UID描述
root0all rights
regular user1000+login-shell
service user<1000web/mysql

/etc/passwd

root:x:0:0:root:/root:/bin/bash

  1. 用户名
  2. 密码位
  3. UID
  4. GID
  5. comment
  6. homedir
  7. 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的文件

权限意义
r4Read
w2Write
x1Execute

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的程序的提权方式

https://gtfobins.github.io/

配置文件与其他可写文件
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

自动枚举

内核提权

不到万不得已不优先使用,可能使目标系统不稳定,且容易丢失初始shell

  1. 获取系统版本
    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
    
  2. 寻找与之匹配的内核提权脚本 ```bash 在Google、Exploit-db或searchsploit上搜索

LES (Linux Exploit Suggester): https://github.com/mzet-/linux-exploit-suggester

```

  1. 编译或直接利用获得root shell

sudo 提权

适用于 拥有nopasswd sudo 或 有一组凭证

  1. 使用sudo -l 列出 是否能够nopasswd执行 特定脚本
  2. 查询GTFObins网站寻找 提权步骤

SUID 提权

  1. 查找具有SUID的 程序

  2. 查询GTFObins

定时任务

  1. 查看有哪些计划任务

  1. 查看脚本是否有权限修改

  1. 修改脚本,等待反弹

提权优先级 (最小破坏原则)

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

本文由作者按照 CC BY 4.0 进行授权