[hackthebox] Oz - Writeup

第一次日这种难度的盒子。。。 image 4个docker跑在一个母鸡上。。。 flag在母鸡上。。。 然而网络端口全是docker里的

扫端口 image 两个都是python开的

80看看 image 貌似。。。web里下了毒 啥都是200 还会返回垃圾字符串 image 传统的扫目录不行

再看看8080 一个登录框 没注入。。。 先搞80

用wfuzz,过滤掉初始页面和垃圾串 wfuzz -u http://10.10.10.96/FUZZ -w /usr/share/wordlists/dirb/small.txt --hw 1,4 image 有个users 看看 image 加个’ 报错

练习一波手注 image 注意到用户dorthi和一个10.100的ip 说明这个后端正运行在某种虚拟化容器中 先注入再说 表 image 两个表的字段 image image 看users表 image image 是一些哈希 处理一下 image 确定哈希类型 看看hashcat examples image 后端是python 这个django很像 然而长度对不上。。。 哈希的前缀是$pbkdf2-sha256 暴力改格式,改成这样 image python改一下 image 丢进hashcat里 image 这是第三个哈希 那么得到一组用户凭据 用户名:wizard.oz 密码: wizardofoz22 登录8080端口的web

image 右上角有个增加,但是加不进去。。。 抓包看看 image 有回显 后端是python 考虑模板注入 image 果然有 用tplmap image 可以命令执行,不过没有回显 ping一下自己,tcpdump一下 image 说明命令成功执行 弹个shell回来,升级成meterpreter image image 根目录发现.dockerenv 现在在docker里 image 到处翻翻

找找数据库配置 image 得到一个凭据 N0Pl4c3L1keH0me 接着找 根目录有个.secert 看看 image 敲门,发现10.10.10.96打开了ssh image 刚才那个凭据不行。。。 咋整。。。

回到刚才注入那一点,发现用户dorthi 尝试load_file 把文件名hex一下 可以读文件 image 尝试读dorthi用户的ssh私钥 image python处理一下 得到私钥 之前敲门已经打开了ssh 直接连 私钥有密码,尝试那个数据库密码,成功登录 image

image emmmm 登进母鸡里了 可以拿到user的flag了 准备提权

sudo -l看看 image 列出docker的虚拟网络 image 挨个看看 image image 扫扫各个网段和ip 整理一下 网络拓扑如下 image 突破口是172那个docker面板

google一下portainer 1.11 exploit image 任意用户密码重置 用ssh -D做个转发 重置admin的 image 成功登录 image 由于目标环境没外网 看看它有哪些仓库 image 随便找个小的,把母鸡的/挂载到/mnt,打开shell image image 部署,打开console image 艹 太小的没bash image 换个大的 重复之前步骤,换那个python的容器 image 已经把母鸡挂到docker里了 可以读shadow image 还有root的flag image 把dorthi用户加进sudoers里即可拿到母鸡的root shell image image 留个suid也行 略