第一次日这种难度的盒子。。。 4个docker跑在一个母鸡上。。。 flag在母鸡上。。。 然而网络端口全是docker里的
扫端口 两个都是python开的
80看看 貌似。。。web里下了毒 啥都是200 还会返回垃圾字符串 传统的扫目录不行
再看看8080 一个登录框 没注入。。。 先搞80
用wfuzz,过滤掉初始页面和垃圾串
wfuzz -u http://10.10.10.96/FUZZ -w /usr/share/wordlists/dirb/small.txt --hw 1,4
有个users
看看
加个’
报错
练习一波手注
注意到用户dorthi和一个10.100的ip
说明这个后端正运行在某种虚拟化容器中
先注入再说
表
两个表的字段
看users表
是一些哈希
处理一下
确定哈希类型
看看hashcat examples
后端是python
这个django很像
然而长度对不上。。。
哈希的前缀是$pbkdf2-sha256
暴力改格式,改成这样
python改一下
丢进hashcat里
这是第三个哈希
那么得到一组用户凭据
用户名:wizard.oz
密码: wizardofoz22
登录8080端口的web
右上角有个增加,但是加不进去。。。
抓包看看
有回显
后端是python
考虑模板注入
果然有
用tplmap
可以命令执行,不过没有回显
ping一下自己,tcpdump一下
说明命令成功执行
弹个shell回来,升级成meterpreter
根目录发现.dockerenv
现在在docker里
到处翻翻
找找数据库配置
得到一个凭据
N0Pl4c3L1keH0me
接着找
根目录有个.secert
看看
敲门,发现10.10.10.96打开了ssh
刚才那个凭据不行。。。
咋整。。。
回到刚才注入那一点,发现用户dorthi 尝试load_file 把文件名hex一下 可以读文件 尝试读dorthi用户的ssh私钥 python处理一下 得到私钥 之前敲门已经打开了ssh 直接连 私钥有密码,尝试那个数据库密码,成功登录
emmmm 登进母鸡里了 可以拿到user的flag了 准备提权
sudo -l看看 列出docker的虚拟网络 挨个看看 扫扫各个网段和ip 整理一下 网络拓扑如下 突破口是172那个docker面板
google一下portainer 1.11 exploit
任意用户密码重置
用ssh -D做个转发
重置admin的
成功登录
由于目标环境没外网
看看它有哪些仓库
随便找个小的,把母鸡的/
挂载到/mnt
,打开shell
部署,打开console
艹
太小的没bash
换个大的
重复之前步骤,换那个python的容器
已经把母鸡挂到docker里了
可以读shadow
还有root的flag
把dorthi用户加进sudoers里即可拿到母鸡的root shell
留个suid也行
略