AWS - Lambda 事后利用

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

Lambda

更多信息请参阅:

AWS - Lambda Enum

Exfilrtate Lambda Credentials

Lambda 使用环境变量在运行时注入凭证。如果你能访问到它们(通过读取 /proc/self/environ 或使用有漏洞的函数本身),就可以自己使用这些凭证。它们存放在默认变量名 AWS_SESSION_TOKENAWS_SECRET_ACCESS_KEYAWS_ACCESS_KEY_ID 中。

默认情况下,这些凭证具有写入 cloudwatch 日志组(其名称存储在 AWS_LAMBDA_LOG_GROUP_NAME 中)的权限,以及创建任意日志组的权限;然而 Lambda 函数经常会根据其预期用途被分配更多权限。

lambda:Delete*

被授予 lambda:Delete* 的攻击者可以删除 Lambda functions、versions/aliases、layers、event source mappings 以及其他相关配置。

aws lambda delete-function \
--function-name <LAMBDA_NAME>

窃取其他 Lambda URL 请求

如果攻击者以某种方式在某个 Lambda 内获得 RCE,他就能窃取其他用户发往该 Lambda 的 HTTP 请求。如果这些请求包含敏感信息(cookies、credentials…),他就能窃取这些信息。

AWS - Lambda Steal Requests

窃取其他 Lambda URL 请求 & Extensions 请求

滥用 Lambda Layers 也可以滥用 extensions 在 Lambda 中实现持久化,同时窃取并修改请求。

AWS - Abusing Lambda Extensions

AWS Lambda – VPC Egress Bypass

通过将 Lambda 的配置更新为空的 VpcConfig (SubnetIds=[], SecurityGroupIds=[]) ,可以强制函数脱离受限 VPC。函数随后将在 Lambda 管理的网络平面中运行,重新获得出站互联网访问,从而绕过由私有 VPC 子网(无 NAT)强制执行的出站控制。

AWS - Lambda VPC Egress Bypass

AWS Lambda – Runtime Pinning/Rollback Abuse

滥用 lambda:PutRuntimeManagementConfig 将函数固定到特定 runtime 版本(Manual)或冻结更新(FunctionUpdate)。这能保持与恶意 layers/wrappers 的兼容性,并可能使函数停留在过时、易受攻击的 runtime 上,便于利用和长期持久化。

AWS - Lambda Runtime Pinning Abuse

AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

滥用 lambda:UpdateFunctionConfiguration 的高级日志控制,将函数的日志重定向到攻击者指定的 CloudWatch Logs 日志组。此方法无需更改代码或执行角色(大多数 Lambda 角色通过 AWSLambdaBasicExecutionRole 已包含 logs:CreateLogGroup/CreateLogStream/PutLogEvents)。如果函数打印了 secrets/request bodies 或在崩溃时产生了 stack traces,你可以从新的日志组中收集到这些信息。

AWS - Lambda LoggingConfig Redirection

AWS - Lambda Function URL Public Exposure

通过将 Function URL 的 AuthType 切换为 NONE,并附加授予 lambda:InvokeFunctionUrl 给所有人的基于资源策略,可以将私有 Lambda Function URL 变为公共的无身份验证端点。这样可以匿名调用内部函数,并可能暴露敏感的后端操作。

AWS - Lambda Function URL Public Exposure

AWS Lambda – Event Source Mapping Target Hijack

滥用 UpdateEventSourceMapping 来更改现有 Event Source Mapping (ESM) 的目标 Lambda 函数,使来自 DynamoDB Streams、Kinesis 或 SQS 的记录被发送到攻击者控制的函数。这样可以在不接触生产者或原始函数代码的情况下悄悄转移实时数据。

AWS - Lambda Event Source Mapping Hijack

AWS Lambda – EFS Mount Injection data exfiltration

滥用 lambda:UpdateFunctionConfiguration 将现有的 EFS Access Point 附加到 Lambda,然后部署简单代码列出/读取挂载路径下的文件,以外传该函数之前无法访问的共享 secrets/config。

AWS - Lambda EFS Mount Injection

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks