第一次日这种难度的盒子。。。
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也行
略