AWS - Steal Lambda Requests
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术: HackTricks 培训 GCP 红队专家 (GRTE)
Slicer 是一个在容器外部的进程,发送 调用 到 init 进程。
init 进程监听端口 9001,暴露一些有趣的端点:
/2018-06-01/runtime/invocation/next
– 获取下一个调用事件
/2018-06-01/runtime/invocation/{invoke-id}/response
– 返回调用的处理程序响应
/2018-06-01/runtime/invocation/{invoke-id}/error
– 返回执行错误
bootstrap.py 有一个循环从 init 进程获取调用并调用用户代码来处理它们 (/next
).
最后,bootstrap.py 将 响应 发送给 init
注意,bootstrap 将用户代码作为模块加载,因此用户代码执行的任何代码实际上都是在这个进程中发生的。
此攻击的目标是使用户代码在处理易受攻击请求的 bootstrap.py
进程内部执行恶意 bootstrap.py
进程。这样,恶意 bootstrap 进程将开始 与 init 进程通信 以处理请求,而 合法 的 bootstrap 被 困住 运行恶意进程,因此它不会向 init 进程请求。
这是一项简单的任务,因为用户的代码是由合法的 bootstrap.py
进程执行的。因此攻击者可以:
向 init 进程发送当前调用的假结果,使 init 认为 bootstrap 进程正在等待更多调用。
必须向 /${invoke-id}/response
发送请求
执行一个恶意的 boostrap.py
,它将处理下一个调用
为了隐蔽性,可以将 lambda 调用参数发送到攻击者控制的 C2,然后像往常一样处理请求。
对于此攻击,只需从系统或 github 获取原始的 bootstrap.py
代码,添加恶意代码并从当前 lambda 调用中运行它即可。
找到一个 RCE 漏洞。
执行 恶意 bootstrap。
您可以轻松地通过运行以下命令来执行这些操作:
有关更多信息,请查看 https://github.com/carlospolop/lambda_bootstrap_switcher
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)