利用到的知识
- 系统的修复
- 目录扫描
- ssh爆破
- Linux提权(docker)
渗透过程
-
启动靶机之后发现扫描主机时没有查看到主机存在,又没有密码无法登录靶机,于是想到之前学习的当遗忘了root用户密码的一种登录系统方式—使用当用户登录这个时学习的时候的笔记。在启动靶机的时候在启动页面出按上下键选择第二个之后进入编辑模式,找到其中两处含有Linux的地方将其后的ro改为rw可读写,将其中两处都改为single表示当用户登录,在该行末尾加上init=/bin/bash表示初始化进入bash命令解释器之后重启靶机,进入页面之后使用vi将/etc/network/interfrce网卡信息中的网卡改为ens33,之后重启系统使用nmap -sP扫描主机发现可以查看到主机的IP地址了
-
利用nmap -sV -O扫描主机的端口以及主机的系统和端口对应的服务类型开放了22端口以及80端口
-
进入80查看网站信息无法查看网站源代码
-
看到开放了22端口尝试进行爆破利用九头蛇还是没爆出来这里没法了回头去网上查看了一下过程说是目录扫描出来一个秘密文件hidden_text用的是其他的字典这个是我的错只用了默认字典
-
进入该路径下有一个图片,猜测是图片隐写使用binwalk进行隐藏信息的提取得到两个文件
-
在输出29.zlib的时候得到一串乱码,使用strings规避字符乱码问题得到
-
好吧承认我自己想得真的多,实际扫描二维码得到ftp的登录用户登录到ftp服务器可以看到有两个文件一个告诉了用户是robin一个是一个密码的字典文件,利用九头蛇或美杜莎进行爆破登录到系统是一个普通用户需要进行提权
-
使用sudo -l发现可以无密码使用jerry执行脚本feedback.sh,这里将脚本内容改为/bin/bash将jerry的shell反弹回来执行命令,发现jerry在docker组当中可以利用docker进行提权,思路是在docker中用户具有root权限,可以将root的文件挂载到docker中在docker中进行查看
在这里的反弹shell就是利用脚本运行bash命令而此时的是以jerry的身份运行的脚本所以shell也就是jerry的身份
-
使用docker -images查看docker镜像有哪些,这里可以看到有alpine,然后使用docker run -v进行共享数据卷也就是将主机的文件挂载到容器中,-v /root :/mnt表示将主机/root目录挂载到容器的/mnt目录-it以会话模式进入到容器,得到root权限可以查看root目录的内容
总结
docker提权1的原理:
docker 组内用户执行命令的时候会自动在所有命令前添加 sudo。因为设计或者其他的原因,Docker 给予
所有 docker 组的用户相当大的权力(虽然权力只体现在能访问 /var/run/docker.sock 上面)。默认情
况下,Docker 软件包是会默认添加一个 docker 用户组的。Docker 守护进程会允许 root 用户和
docker组用户访问 Docker。给用户提供 Docker 权限和给用户无需认证便可以随便获取的 root 权限差别
不大。