红队视角下的公有云基础组件安全(二)

这篇具有很好参考价值的文章主要介绍了红队视角下的公有云基础组件安全(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我们已经发过一篇红队视角下的公有云基础组件安全的文章,这篇是对上一篇内容的补充,主要为国外公有云如AWS、Google Cloud、Azure。

本文主要从红队视角讲述公有云基本服务中一些因配置问题产生的安全风险。

目录

● 云存储

● 云计算

● 云网络

● 其他

云存储

Azure Storage

Azure Storage 是微软云出品的文件存储功能,他有一个重要的概念,那就是储存账户。

首先我们需要明确一下Azure Storage的一个重要概念。

储存账户(Azure Storage Account) :Azure 存储帐户包含所有 Azure 存储数据对象,其中包括 Blob、文件共享、队列、表和磁盘。存储帐户为 Azure 存储数据提供一个唯一的命名空间,可通过 HTTP 或 HTTPS 从世界上的任何位置访问该数据。

可以这样去理解,所有的储存服务,都是在一个储存账户下的。

按照储存账户的结构分为以下几部分,分别是 Containers 、 File Share 、Queues、 Tables、VM Disk,储存账户提供以下三种鉴权办法:

1. Access Keys(AK)

2. Azure Active Directory(AAD)

3. Share access signature(SAS)

当账户开启 Allow storage account key access的时候,储存账户开放外部访问。

观察一下各个部分的鉴权,可以发现容器、队列以及表使用AAD与SAS进行鉴权,而文件共享是采用AK与AAD进行鉴权,并且AK对是完全继承于储存账户的。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

当我们拿着AK去Azure专门的文件浏览器当中进行登陆,我们能获得的不止是单一的共享文件夹,而是接管了整个储存账户。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

当我们在一台利用Azure AK脚本挂载过文件共享账户的Windows机器上利用mimikatz进行内存密码抓取时,可以发现账户的明文AK是储存在内存当中的,这也导致如果利用AK挂载过文件共享的机器一旦失陷,你的整个存储账户都会处于风险当中。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

由于Azure对于文件共享并没有细小的权限划分,所以使用文件共享需要多加谨慎,经过测试,在使用AAD进行鉴权的时候,由于全程无明文密码输入,内存当中不会存在相关痕迹,在机器失陷的恶劣情况下,会尽可能的保护存储账户。

Azure Storage的AK是存在过期时间的,不要设置成永久不过期;注意开发安全,关于带有文件共享AK的代码不要上传互联网,并且注意项目公开权限;云上的机器尽可能的采用AAD认证,由于本地机器是无法加入AAD的,建议本地机器不要使用文件共享功能。

Amazon S3

静态网站导致子域名接管

aws的s3官方提供了托管静态网站的功能,虽然国内的云厂商的存储也可以拿来托管静态网站,但是和aws的还是有区别的,因为aws存在可以通过注册接管对方的子域名的可能。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

通过在存储桶的界面属性中可以开启对应的静态网站功能。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

成功开启后aws会分配一个存储桶的网站终端节点。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

如果存在之前托管的静态网站的存储桶已经删除,但是自定义域名的解析还没有及时处理的话,当访问目标子域名会显示存储桶不存在的提示NoSuchBucket,我们就可以通过注册唯一桶名为该子域名的名称注册一个桶接管。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

特定策略泄漏

s3针对一些访问的特殊需要等等可以通过设置存储桶策略达到通过某特定的请求头等达到针对性访问的效果。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

如下官网示范的通过请求中具有x-amz-full-control标头,授予存储桶拥有者完全控制权限。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

还有通过一些范围的条件键达到访问控制的效果,如下图中的ip为范围内的通过验证即可以访问,除非188的ip:


{
 "Version": "2012-10-17",
 "Id": "S3PolicyId1",
 "Statement": [
   {
     "Sid": "statement1",
     "Effect": "Allow",
     "Principal": "*",
     "Action":"s3:GetObject",
     "Resource": "arn:aws:s3:::awsexamplebucket1/*",
     "Condition" : {
       "IpAddress" : {
         "aws:SourceIp": "192.0.2.0/24"
       },
       "NotIpAddress" : {
         "aws:SourceIp": "192.0.2.188/32"
       }
     }
   }
 ]
}

通过测试这些可能存在的策略,如果目标设置的较为简单可以通过测试达到绕过目标的策略限制。

云计算

云容器

厂商有些目前会提供基于云的云实例,比如云容器实例CCI等。

云容器利用

可以借助这个功能,自己构建需要的一些功能性的镜像,这里举例构建一个awvs的web扫描,搭配云厂商提供的负载均衡等功能,达到容器的性能需求。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

云容器指令泄漏

云容器厂商一般会提供一些公共的镜像,但是涉及到自己构建镜像时,需要将构建完成的镜像进行上传,厂商会提供临时指令和永久指令。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

其中永久指令的登录是通过ak作为用户名,密钥是通过ak和sk加密得到的一个密钥,这个密钥是不可被解密的,这里需要注意加密密钥的泄漏。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

ECR公开访问

Amazon Elastic Container Registry (Amazon ECR) 是 AWS 托管容器映像注册表服务,它安全、可扩展且可靠。Amazon ECR 支持私有存储库,其具有使用 AWS IAM 的基于资源的权限。这样,指定用户或 Amazon EC2 实例可以访问您的容器存储库和映像。您可以使用首选 CLI 推送、提取和管理 Docker 映像、Open Container Itistry (OCI) 映像和 OCI 兼容构件。

并且在官网中明确表明ECR支持作为公共容器映像存储库,所以在注册时可以看到公有的选项,一但打开就不可关闭,并且任意aws账户可以在这个容器存储库中随意推送和拉取。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

云网络

DNS zone

照比国内厂商,国外厂商对DNS的管控有极高的自由度,在国内厂商,当无法验证你的根域名解析到相应平台的时候,是不会对你的域名进行任何解析的,这一点也是很好的保护了我国公民的网络安全,而国外的云厂商是不会对你的域名进行Name Server的验证的,所以,你可以在境外平台例如Azure、Google、AWS等等去解析不属于你的域名。

以Azure为例,执行以下操作就可以解析他人的域名。

创建 DNS zone。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

选择一个你想要的域名。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

添加记录,跟操作国内的DNS一样。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

最终效果:

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

通过平台给出的四个NS节点去解析,会得到自己配置的地址,如图,ns1-38是强制加的记录,而ns1-205则是真实的microsoft.cn记录,这种方式可以在恶意程序中指定DNS服务器,将自己想要的地址通过指定的服务器进行查询,这样做有以下两个特点:

● 域名高度伪装,可以想象一下,在一个月黑风高的夜里,态势感知、流量设备发出了告警,但是告警的内容是向[www.microsoft.cn] 或者向自己驻守单位的主域名发起连接,我猜,你的脑子里会一片空白。

● 解析的DNS服务器是一个比较权威的服务器,并不是个人搭的野鸡服务器,以mincrosoft.cn为例,真实的DNS解析记录在ns1-205上而我注册的是在ns1-38上,都是情报上白名单的权威服务器,在域名的记录里加一个微软云的ip或者CDN,很容易让防守人员产生误判,认为是微软服务发起的连接。

针对这一类攻击手法,如果防守方人员在看到这种连接,在沙箱当中跑出来没什么问题,请一定在虚拟机当中跑起来抓包,看发出的DNS服务器是指向哪台DNS,由于根域名的NS没有指向假冒的DNS服务器,解析记录是不会在互联网上进行传播的,通过比对Name Server来找出样本的猫腻。

AWS DNS Zone

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

Google Cloud DNS Zone

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

由于Google的DNS服务器国内是无法访问的,因为这一点,身处国内的服务器可以不用考虑这个安全风险。

NAT网关

NAT网关(NAT Gateway)提供公网NAT网关和私网NAT网关。公网NAT网关为VPC内的云主机提供SNAT和DNAT功能,可轻松构建VPC的公网出入口。私网NAT网关为VPC内的云主机提供网络地址转换服务,使多个云主机可以共享私网IP访问用户本地数据中心或其他VPC,并支持云主机面向私网提供服务。

● SNAT

某厂商的本意是通过NAT网关提供网络地址转换服务,使用NAT网关节约EIP资源,通过NAT网关还可以实现VPC内云主机与远端私网(外部数据中心或其他VPC)互相访问。

在红队视角下我们可以通过云主机搭配弹性公网IP结合SNAT的策略避免IP直接暴露在公网上,可以通过公网NAT网关共享弹性公网IP的方式访问公网,实现VPC内的无弹性公网IP的云主机访问公网。

首先我们根据自己的需要购买网关。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

购买完成确定后,进入到网关的规则设置内设置SNAT规则。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

根据需要购买EIP之后,在下面会显示购买的IP,由于弹性云服务器同时配置弹性公网IP服务和NAT网关服务时,数据均通过弹性公网IP转发,所以我们需要将之前购买的服务器送的ip进行解绑,并且在解绑后送的ip也可以拿到网关中使用。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

以上设置完成后我们的服务器就有了自动出网切换ip的能力。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

可以看到我们的ip,自动进行了切换,我们可以通过这个手法达到隐藏自己的真实ip并切换的能力,同时获得了国内的高质量代理。

● DNAT

DNAT的功能恰好与SNAT相反,通过IP映射或端口映射的方式,实现VPC内的机器被外网访问,在之前的操作中,我们将机器本身的ip解绑,我们只能通过网页的远程VNC登录系统操作,这样极其不方便,首先我们可以通过这个方法将我们的22端口映射出去,方便我们操作机器。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

之前相关的资源已经购买,直接去设置DNAT规则就可以。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

根据需要设置规则,我这里只将22放了出来。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

成功使用ssh,其他利用比如隐藏CS、监听器的设置等等都可以利用。

其他

Azure Active Directory 所带来的密码爆破风险

在微软的体系下,Microsoft365、Azure以及其他的一些微软服务的登陆凭据都是互认的,暴力破解的过程中可以采用一些微软的公网服务接口进行账号验证,而这时就会产生一个问题,如何保证账户在公网上的安全性。现已知的非核心密码验证接口,有如下几个:

● Microsoft 365 Web Portal

● Microsoft Graph

● Azure Service Management

● Microsoft 365 Mobile

这些存在的接口都会导致一个问题,那就是攻击者可以在域外、公网上进行域用户的暴力破解,因为真实的流量不会在云内网或者主机上发出,所以任何的安全设备也不会对它进行告警。为了避免这种情况的产生,可以采用以下方法进行规避:

● 为所有用户开启多因子MFA认证

● 使用“读取目录数据”或“读取用户配置文件”权限监控和阻止可疑应用程序

● 使用白名单控制登陆ip地址

CloudShell

AWS CloudShell是一个基于浏览器的预先验证 shell,可以直接启动来自 的AWS Management Console. 可以使用的首选 shell(Bash、PowerShell 或 Z shell),针对 AWS 服务运行 AWS CLI 命令。无需下载或安装命令行工具,即可完成此操作。

在控制左上方可以进入CloudShell,点击进入会初始化生存,每次进入都是根据区域随机ip。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

该shell默认提供bash、powershell、zsh3种,并且aws相关的cli都提供,开发环境提供node.js、python。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

默认用户是低权限的,但是官方为了用户安装软件给了当前用户sudo的权限。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

可以看到用户属于sudo组,这样我们就能干很多事。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

shell的配置资源如下,可以用来做一些事情了。

红队视角下的公有云基础组件安全(二),安全,flask,python,红队视角,公有云,云原生,aws

云原生时代,基础设施一般通过模板生成。一个错误的IaC(基础设施即代码)模板可能生产上百个危险资源,最终变成上千个运营告警。默安科技尚付DevSecOPS模块的IaC安全扫描能力,在代码构建阶段自动识别其中的IaC代码,识别其中的错误代码并修复,在基础设施漏洞发生之前就解决相关风险问题。左移的基础设施安全可以大幅降低安全人员工作量,节省运维成本。

尚付CNPP的IaC安全扫描能力,支持Kubernetes Manifest清单文件、Rancher、Docker File、Terraform等多种格式的安全检查。

此外,在近期发布的3.0版本中,默安科技巡哨智能资产风险监控系统正式引入云安全状态管理(CSPM,Cloud Security Posture Management)能力,帮助用户实现多云资源的统一管理、云资产可视、云资源配置风险的及时发现;通过云上合规基线检查,让用户能够轻松应对云上合规困扰;并且同时支持私有化交付与SaaS化交付。文章来源地址https://www.toymoban.com/news/detail-822621.html

到了这里,关于红队视角下的公有云基础组件安全(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络安全】红队基础免杀

    本文主要介绍“反射型 dll 注入”及“柔性加载”技术。 为什么需要反射型 dll 注入 常规的 dll 注入代码如下: 主要做了几件事情: 从磁盘读取 dll 到 wchar_t 数组 将该 payload 数组写入目标内存 在目标内存中找到 LoadLibraryW 函数 通过 CreateRemoteThread 调用 LoadLibraryW 函数,参数为

    2024年02月01日
    浏览(76)
  • 用“价值”的视角来看安全:《构建新型网络形态下的网络空间安全体系》【第十期】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 网络空间安全体系是建立在先进技术、严密监控和综合策略之上的综合性框架,旨在保护网络免受恶意攻击、数据泄露和网络犯罪的威胁,其核心包括身份认证与访问

    2024年02月05日
    浏览(49)
  • 【小黑送书—第四期】>>用“价值”的视角来看安全:《构建新型网络形态下的网络空间安全体系》

    经过30多年的发展,安全已经深入到信息化的方方面面,形成了一个庞大的产业和复杂的理论、技术和产品体系。 因此,需要站在网络空间的高度看待安全与网络的关系,站在安全产业的高度看待安全厂商与客户的关系,站在企业的高度看待安全体系设计与安全体系建设之间

    2024年02月22日
    浏览(63)
  • 【送书福利-第十七期】用“价值”的视角来看安全:《构建新型网络形态下的网络空间安全体系》

    😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:程序员洲洲。 🎈 本文专栏:本文收录于洲洲的《送书福利》系列专栏,该专栏福利多多

    2024年02月10日
    浏览(47)
  • harmonyOS基础(三)- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)

    大家好!我是黑臂麒麟,一位6年的前端; 随着 鸿蒙4.0 的发布。鸿蒙社区不断壮大,且市场对 harmonyOS 应用认可度越来越高。很多公司开始对 鸿蒙应用开发 越来越重视。 之前想入坑鸿蒙,一直犹豫未下定决心学习。这次不再等待,开始系统学习起来。 此系列文章只做 harm

    2024年02月20日
    浏览(47)
  • 得物SRE视角下的蓝绿发布

    发布变更是影响稳定性的一个重大因素,为了发布异常时能快速回滚,增加发布期间的稳定性,也为了解决多服务部署时互相依赖而导致的发布时间增长等问题,得物在今年引入一种新的发布模式--蓝绿发布。这种发布模式带来了稳定性和效率的提升,这里我们以SRE的视角来

    2024年01月16日
    浏览(44)
  • 数据库视角下的区块链技术

    1 overview 本文关注数据库视角下的区块链技术。 首先,我们来看一下数据库和区块链的定义。数据库是数据管理的产物,而数据管理则是数据库的核心任务。当数据规模变得很大、用户变得更多时,单一节点的数据库满足不了用户的需求。分布式数据库便应运而生,目的是存

    2024年02月16日
    浏览(35)
  • 网络安全红队资源合集

    红队的整个攻击流程 信息收集、攻击尝试获得权限、持久性控制、权限提升、网络信息收集、横向移动、数据分析(在这个基础上再做持久化控制)、在所有攻击结束之后清理并退出战场。 https://mitre-attack.github.io/ mitre 科技机构对攻击技术的总结 wiki https://huntingday.github.io 

    2024年02月09日
    浏览(44)
  • 实战攻防之紫队视角下的实战攻防演习组织

    本文是学习实战攻防之紫队视角下的实战攻防演习组织. 下载地址 http://github5.com/view/55010而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 紫队,一般是指网络实战攻防演习中的组织方。 紫队是在实战攻防演习中,以组织方角色,开展演习的整体组织

    2024年02月05日
    浏览(34)
  • 【CSAPP】进程 | 上下文切换 | 用户视角下的并发进程

      💭 写在前面: 本文将学习《深入理解计算机系统》的第六章 - 关于异常控制流和系统级 I/O 的 进程部分。CSAPP 是计算机科学经典教材《Computer Systems: A Programmer\\\'s Perspective》的缩写,该教材由Randal E. Bryant和David R. O\\\'Hallaron 合著。 📜 本章目录: 0x00 进程(Processes) 0x01 假象

    2024年01月16日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包