docker逃逸漏洞复现(cve-2020-15257)+frp反向代理

漏洞介绍

containerd在版本1.3.9和1.4.3之前的容器中,容器填充的API不正确地暴露给主机网络容器。填充程序的API套接字的访问控制验证了连接过程的有效UID为0,但没有以其他方式限制对抽象Unix域套接字的访问。这将允许在与填充程序相同的网络名称空间中运行的恶意容器(有效UID为0,但特权降低)导致新进程以提升的特权运行。

影响版本

containerd < 1.4.3
containerd < 1.3.9

环境搭建

可参考:https://www.cnblogs.com/wavesky/p/16482355.html

攻击机1:Windows(本机)
攻击机2:vps(192.168.130.152)
目标服务器:Ubuntu16(192.168.130.190)

1. 下载容器
 docker pull vulhub/shiro:1.2.4
2. 通过--net=host 作为启动参数来运行一个容器
 docker run -itd --net=host -p 8080:8080 vulhub/shiro:1.2.4
3. 查看当前运行中的容器
 docker ps -a

环境搭建成功效果:
在这里插入图片描述

漏洞复现

  1. 通过端口扫描工具,对目标服务器进行端口探测尝试,发现开启了22、80、8080端口。
    在这里插入图片描述

  2. 访问8080端口输入登录信息,进行抓包,发现字段“rememberMe”,立刻想到shiro反序列化漏洞。
    在这里插入图片描述

  3. 利用“shiro反序列化漏洞综合利用工具”检测漏洞,发现漏洞确实存在,可命令执行。
    在这里插入图片描述

  4. 向目标服务器注入内存马,发现注入成功,使用哥斯拉进行连接。
    在这里插入图片描述

  5. 哥斯拉连接成功后,发现权限为root权限,通过命令判断目标服务器为docker环境。
    在这里插入图片描述

  6. 通过哥斯拉,上传“cdk_linux_amd64”工具,并赋予执行权限,进行docker逃逸。
    在这里插入图片描述

  7. 在攻击机2中开启8000端口,进行监听。
    在这里插入图片描述

  8. 在docker环境中利用“cdk_linux_amd64”工具连接攻击机2。
    在这里插入图片描述

  9. docker逃逸成功,输入命令“ifconfig”,发现目标服务器存在双网卡。
    在这里插入图片描述

  10. 通过whoami命令得知此时用户为root权限,创建用户名和密码:hacker/hacker,并加入sudo组。
    在这里插入图片描述

  11. 在docker环境中上传frp压缩包,并解压。
    在这里插入图片描述

  12. 进入frp文件夹下修改frpc.ini文件。
    在这里插入图片描述

  13. 在攻击机2中进入frp文件夹下,修改frps.ini文件,端口要保持一致。
    在这里插入图片描述

  14. 在攻击机2中启动frp。
    在这里插入图片描述

  15. 在docker环境中启动frp。
    在这里插入图片描述

  16. 利用frp反向代理,通过ssh成功连接到目标服务器。(账号密码为创建的hacker用户)
    在这里插入图片描述

修复建议

  1. docker逃逸漏洞:
Docker 官方commit:https://github.com/containerd/containerd/commit/269548fa27e0089a8b8278fc4fc781d7f65a939b
  1. shiro反序列化漏洞:
升级shiro至最新版本1.7.1;
保持shiro版本不变<=1.2.4,修改rememberMe默认密钥;
禁用rememberMe功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值