此篇用于收集各大机构公开发布的安全领域相关趋势和大图。
云平台metadata利用
实例元数据(metadata)是关于实例信息的一组信息合集,用于配置和管理运行中的实例,metadata
包含不同类型的数据,包括DNS信息,主机名,region相关信息,VPC信息,网络类型与安全组,账号,RAM角色、系统事件等信息。一般分为一下两大类:
基本实例元数据
,包括基本信息与系统事件信息动态实例元数据
,包含动态生成的标识数据,一般用于身份的标识验证
需要注意的是,虽然metadata
只能通过在实例本身进行访问获取,但是获取到的数据是不受身份验证或加密保护的。这一点的存在也导致了SSRF漏洞在云平台、甚至云服务上有了新的用处,即获取metadata
实例元数据进而利用。
metadata
的利用大部分集中在实例具有RAM角色或者存在IAM角色,这时可以通过metadata的接口获取到临时Token,这个临时Token具有该角色的所有权限,如读取存储桶、读取日志、执行指令、甚至创建后门账号、后门实例等等。 下面以Alibaba Cloud
和Gppgle Cloud Platform
的metadata
利用为例。
IAM and IDaaS, 纵深防御的强对抗点
随着外部环境的进一步恶化,攻击勒索事件频发,钓鱼以及鱼叉式攻击已经变得越来越频繁且成本越来越低,甚至已经出现有体系化的钓鱼平台和钓鱼小分队。这一点其实在内部对抗,国家级攻防演练,甚至披露的APT组织中也经常发生。而随着企业组织人员的不断扩充,鱼叉式攻击的风险并没有得到有效收敛,反而风险系数甚至随人员的增长而成比例递增,这一点在任何安全建设中都是无法接受的。除此之外,组织内部的应用为了实现安全管理,所有应用都要去维护认证、鉴权的逻辑,众多冗余且参差不齐的认证鉴权系统,并没有增强身份认证的安全性,反而制约了研发的专注度,因此将身份鉴权认证剥离出来并统一进行管理的思想,构成了IAM
(Identity and access management),他的核心思想是the right individuals to access the right resources at the right times for the right reasons
. IAM的引入可以大大降低了企业对于身份管理的成本,最简单的例子是员工的离职无需在各个系统重手动的撤销权限。
疫情的突然爆发,使得越来越多的企业进行远程办公,这种混合办公的模式也对办公安全提出了更大的挑战,同时也激发了大量IAM
的需求与机遇。可以从Gartner的2022安全趋势中可以看到,基于身份的攻击防御已经成为了趋势(这个在后面会提到),而okta
也称为了市值TOP的公司。而随着企业上云的步伐逐步加快(客户性质决定了国内更偏向专有云,国外更偏向公有云),PasS
的思想也促使IAM
向IDaaS
转变(Identity as a Service). IDaaS
不仅具有开箱即用,支持云环境的特点,他和IAM
最大的区别是IDaaS
的目标是构建一个身份认证生态,可以支持各种原有身份体系的接入,这一点对于有大量历史包袱的企业和海外大量多云环境客户来说,非常友好。这里插一句,目前来说多云环境的安全建设和管理也是一个新的方向,但国内这方面需求看起来比较少,反而海外的公司需求会多一些,这可能也是okta
可以快速增长的原因之一。
加密流量检测的一些思路
随着互联网攻击愈发频繁且攻击手段逐步提升,传统的明文数据传输已经无法满足企业和个人的隐私保护和安全需求。最为常见的HTTP明文数据的窃取,对于不可信的中间链路来说,轻而易举。因此,通过流量加密的方式在不可信的信道上进行传输,成为迫在眉睫的需求。Netscape
在1995年提出了安全套接字层SSL
协议,直到后来被传输层安全性TLS
取代。目前根据Cisco的统计数据显示,目前超82%的流量都会经过加密处理。SSL/TLS
也是目前使用最为广泛的加密层协议,HTTP
、FTP
、SMTP
等协议都可以通过TLS来进行加密封装,从而实现安全传输。
除了业务越来越多使用加密流量之外,攻击者、僵尸网络以及蠕虫们也越来越多的使用加密流量来进行安全设备检测规避,例如常见的IDS、防火墙等设备由于无法获取证书,进而无法解密https流量,因此无法对这类流量进行检测,这也是这些产品的一些缺陷。当然WAF以及一些新版云防火墙逐渐开始支持用户上传证书从而进行流量解密,也可以达到检测的目的。虽然这些方式都有着一定的适用场景,但大部分其实都是针对南北向流量,特别是针对对外提供标准服务的web接口进行解密检测,对于入侵中后截断,例如载荷投递、命令通道以及横向移动,这些链路往往是主动出向且不是什么标准产品行为,目前据我所知并没有产品可以覆盖或者说无法针对这部分的加密流量进行解密后检测。
针对这类中控通信的流量检测,大部分产品会基于黑规则来去进行异常告警,例如去分析metasploit
stage加载特征,cobaltstrike
的握手特性等等,这些主要依靠人工分析的结果,这部分也是攻击者最易绕过或者对抗的地方。越来越多的攻击队会魔改工具,更高级一点的团队专有会有武器开发的员工进行自定义的武器实现,这部分攻击行为在你被入侵之前,是无法得知攻击特征的,这一点是毋庸置疑的。除此之外,有很多基于威胁情报的产品声称通过威胁情报可以检测这类攻击,效果嘛,谁用谁知道。个人觉得,威胁情报适用于2类场景,1类是无差别攻击类,例如僵尸网络、蠕虫、矿池通信等使用威胁情报会很精确,当然此类的时效性也非常重要(例如云主机的资产变动带来的影响);第2类是同一组织针对不同目标展开的同类型行动,例如APT组织入侵A企业后经过溯源提取出的IOC,很有可能可以帮助B企业及时感知到攻击行为。
除此之外,其实还有第三类,就是攻防演练场景下的对抗或者针对特定目标的入侵与打击。这类攻击链路,从头到尾往往所使用的IOC、基础设施甚至攻击手法对防守方来说,都是新颖的,这也是笔者所面临的问题。当然,针对这类痛点,安全产品往往会采用机器学习+黑规则的方式声称可以检测xxx的攻击手法,并且检出率多少个9。当然我们不去评价他们的检测能力在实战的效果,但对于超大规模组织架构,超大规模网络流量以及超低告警延时要求的关键基础设施类甲方公司,此类检测能力所需要的数据和计算资源是否可以满足,也是一个未知数。因此,在此篇文章中,我们集中讨论中控通信
类场景的另一种检测检测思路。
Gitlab 13.10.2 Remote Code Execution漏洞分析(CVE-2021-22204、CVE-2021-22205)
这个漏洞其实影响也挺广的,虽然是需要授权,但其实在公网上暴露的很多gitlab都是开放注册的,其实也基本等于给了授权。除此之外,获取CSRF_TOKEN后也可以触发。这个漏洞本质不是gitlab
的代码问题,而是gitlab
在文件处理时的逻辑,引用了第三方exiftool
组件导致在解析时出现问题,从而引起的任意文件执行。
总结一下: gitab
中的gitlab-horse
会根据上传文件的标识符来判断文件类型,不同类型有着不同的处理逻辑,对于图片类的文件,会去调用exiftool
组件来清除图片文件的元数据,而exiftool
组件在处理Djvu
格式文件的时候,存在缺陷,可以透过构造恶意的元数据造成双引号逃逸,从而执行任意指令。
gitlab 数据传递逻辑
首先我们去下载个受影响版本的gitlab,https://github.com/gitlabhq/gitlabhq/tree/v13.10.2。官网对于gitlab-workhorse的描述可以见下图所示。可以看到,最前端nginx会将请求代理给gitlab-workhorse,按官方的说法,gitlab-workhorse用于处理负载量较大的HTTP请求,例如文件的上传下载、git操作等。
空间搜索引擎与端口扫描欺骗
在整个ATT&CK
的链路中,资产扫描探测的结果对于最终的渗透效果有着重要的影响,对目标资产了解的越多,更容易分析出组织架构、脆弱点和突破点。为了减少扫描行为被防守队发现或封禁,Shodan
, Fofa
, Zoomeye
等空间搜索引擎作为第三方的资产收录平台可以很好的辅助我们,免去扫描的步骤,直接搜索利用点。尤其是在攻防演练或者hw等时期,大量的蜜罐部署以及7*24小时的防守值班,任何轻微的可疑扫描行为都会引起防守队的察觉,从而被封IP。因此利用好第三方搜索引擎的结果,可以让我们更加容易和灵活的进行边界突破。本文将介绍空间搜索引擎的原理及一些常见特性,以及可能的对抗方式——扫描欺骗。
首先第一个问题,这些搜索引擎的作用是什么?根据个人经验,我将其划分为以下4类。
- 资产发现与统计
- 基于版本、banner的漏洞利用
- 脆弱性信息发现 (包括弱口令、回显包含hacked by xx)
- 0day漏洞影响评估
在本篇文章中,我们主要关注与原理层面的内容并尝试通过各种方式验证我们的猜测。除此之外,一些常用的用法及特性放在了附录中,可以作为清单进行查询。
mysql本地文件任意读取分析/rogue-mysql(ssl)-server
Mysql
存在一个特性,即如果使用LOAD DATE LOCAL INFILE
,便可以从连接到数据库的客户端读取一个本地文件并写入数据库指定数据表中。而在这个逻辑中,客户端真正传送哪个文件到数据表中是由服务端发送的数据字段决定的,因此这样的特性很容易构造出一个恶意的mysql服务器从而造成任意客户端连接此服务器之后的任意本地文件读取。
LOAD DATE LOCAL INFILE
创建一个test表并配置好其字段,之后客户端连接mysql服务器,执行以下指令,可以看到/etc/passwd
的内容已经被写入test表中。
|
|
0day捕获/Win the 0-Day Racing Game Against Botnet on Cloud
关于0day捕获的一些工作有幸在BlackHat Asia 2020进行分享 —— “Win the 0-Day Racing Game Against Botnet on Public Cloud”
vulnhub 渗透测试练习 lampiao & FristiLeaks
lampiao
镜像在这里,是vulnhub
提供的一个虚拟机,用VM打开之后便开始渗透测试。
主机发现
首先是主机发现,因为并不知道靶机的IP地址,于是使用nmap
,进行扫描,这里我扫了vm虚拟网卡的C段nmap -sn 192.168.0.0/16
,结果如下:
linux suid提权 & 渗透测试练习nebula
linux suid提权
做了nebula
的练习之后,发现其基本都是利用suid
程序漏洞进行提权,这里特此做个总结
linux特殊权限
在linux权限当中,除了rwx
三种基本权限之外,还有三种特殊权限,SUID
、SGID
、SBIT
三种,例如以下:
|
|
SUID
即SET UID
权限,其只出现于二进制文件拥有者执行权限x上,标注为s,其作用是如果执行者有其对应执行权限x,那么在程序运行过程中,程序将获得程序拥有者的权限
举个例子:
|
|
注意的是,s权限只有二进制程序有效,shell脚本或目录是无效的,因为这个权限的存在,如果程序有漏洞可以被利用,我们就可以通过此方式获取更高的权限,例如如果owner 为root的二进制程序有set uid权限,且存在任意命令执行,那么我们就可以通过这个程序进行root提权,具体的在后面讨论