背景介绍
AWS 于 2022 年推出了 Lambda Function URL 功能,允许开发者为 Lambda 函数自动创建一个 HTTP(S) 端点,简化无服务器架构中对 Lambda 的访问。该功能极大便利了快速构建 API 接口,但也带来了潜在的安全风险。
攻击原理概述
攻击者利用 Lambda Function URL 直接向 Lambda 函数发送 HTTP 请求,触发函数执行。若该 Lambda 函数存在代码执行漏洞或者配备了能够执行 AWS CLI 命令的 Lambda Layer,且其执行角色权限过宽,攻击者就能实现远程命令执行(RCE),进一步控制 AWS 账号下的基础设施。
具体实现步骤:
- 构建带有 AWS CLI 的恶意 Lambda Layer
Lambda Layer 中植入自定义编译或安装的 AWS CLI 工具,Layer 被加载到目标 Lambda 函数中。 - 赋予执行角色宽泛权限
目标 Lambda 的执行角色被赋予包括管理 EC2、S3、IAM 等权限,允许执行敏感操作。 - 利用 Function URL 触发 Lambda,传入恶意命令
攻击者通过 Function URL 发送带有命令参数的请求,Lambda 函数调用 Layer 中的 AWS CLI 执行对应命令。 - 获取命令执行结果,实现横向移动与持久化
通过命令执行,攻击者可以创建后门、提权、窃取数据,甚至销毁资源。
CSW 工具演示
- 该工具的 aws backdoor 模块中的 lambda-url 已经实现该能力

2. 当攻击者拿到 AKSK 或者 STS token 导入工具后,可利用该工具安装一个 AWS lambda 后门

3. 执行命令列 S3 命令,也可执行其它命令,需根据安装的时候赋予权限的范围

4. 卸载
