找回密码
 注册

QQ登录

只需一步,快速开始

搜索
点我反馈NEWZ系统包问题

从一次未授权的访问到获取系统shell的过程

本帖最后由 防泄密助手 于 2022-5-23 11:03 编辑

本文记录了从一次未授权的访问到获取系统shell的渗透测试过程,文中主要阐述了攻击方法、漏洞成因以及防御思路。在进行攻防过程阶段,最重要的工作莫过于信息收集,本文不想记录对信息收集中的数据反复甄别的过程,而是想对一次重大的发现进行过程记录,通过对收集的数据进行反复的筛选发现了2375端口,相信很多在做云原生或者做容器化部署的朋友,应该对这个端口不陌生,没错这个就是docker swarm。从官方的文档可以看出swarm是用来管理docker集群的,本次获取shell权限的过程就与此有着莫大的关系。

  • 起因

有一位运维同学在部署docker swarm的时候,在管理的docker 节点上会开放一个TCP端口2375,绑定在0.0.0.0上,相信很多有经验的运维大牛应该知道swarm是用来管理docker集群的,应该放在内网才对。但是不知道出于什么原因,他是在公网上的几台机器上安装swarm的,并且2375端口的访问策略是开放的,所以可以直接访问,那么这就造成了可以远程执行docker命令。

  • 漏洞利用过程

当发现2375端口是开放的,所以肯定要访问一下该服务,发现是可以直接访问。

现在可以确定存在一个未授权的访问漏洞,难道渗透测试就此结束了嘛!恐怕也才是开始,既然这个端口可以远程执行docker指令所以肯定要好好利用一番,首先要看一下所有镜像。

已经获取到了镜像ID,这个在后续的过程中会有利用的,所以先记录一下,接着查看一下容器内部。

又是简单的收集了一波信息,现在要做的就是要获得宿主机的权限了,毕竟现在一直在容器里。首先要做的就是启动一个容器,挂载宿主机的var/spool/cron/目录,之后将反弹shell的脚本写入到/var/spool/cron/root中做一个执行计划,攻击机nc -vv -l -p Port进行监听,这个时候会得到一个反弹的shell。

通过执行命令,我们获得了宿主机的反弹shell。现在你会发现docker逃逸成功了,拿下了该服务器。

就这样,我们不仅拿下了服务器,甚至还是获得了root权限,总体来说还是获得了不错的成果。从一次未受权的访问漏洞到获取的系统shell,是对一个漏洞的深入挖掘,达到攻击的目的,其实后果造成的危害还是很大的,但其实修复这个漏洞是比较容易的。企业在信息安全建设中,如果只是修复漏洞,那会变得疲于奔命,所以对这种问题还是要构建完整的防御体系,从未授权的访问到获取到系统root权限,需要经过很长的攻击链,如果能及时的阻断攻击链,也是对漏洞攻击面的缩小。

  • 防御思路

1.简单的方法就是对2375端口做网络访问控制,如ACL控制,或者访问规则等;

2.修改docker swarm的认证方式,使用TLS认证,Docker CLI 在发送命令到docker daemon之前,会首先发送它的证书,如果证书是由daemon信任的CA所签名的,才可以继续执行。

  • 写在最后

在企业安全体系的建设过程中,是离不开渗透测试或者说安全攻防的,安全的生命周期链路比较长,从安全需求再到安全的持续运营阶段,其实渗透测试已经在安全生命周期的末端了,发现漏洞的情况已经是产品的末期。其实还是要在产品的初期,引入安全自动化平台对产品的安全质量进行阈门控制。并且建设整体的安全架构,及时的阻断攻击链,把漏洞对环境的影响面降到最低。企业安全建设不容忽视,扫描二维码加入我们,共同为企业数据安全做贡献

点击链接加入我们,易启云防泄密助手,守护数据安全最后一道防线


该帖共收到 0 条回复!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

美图秀

    • 战地风云启动提示“EA anticheat 检测到不
    • 外服-无畏契约(瓦罗兰特)启动时弹窗提示
    • 无盘开机蓝屏提示DRIVER VERIFIER DMA VIOL
    • 服务器重启后网卡速率显示不正确
    • 4.29 LOL登录慢(慢30S左右)

小黑屋|手机版|Archiver|联系我们|网吧三国

GMT+8, 2024-5-6 23:36 , Processed in 0.471067 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表