Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation

This commit is contained in:
Translator
2026-01-18 11:48:10 +00:00
parent 1bbc5d470f
commit afe6c28f90

View File

@@ -10,13 +10,14 @@
../../aws-services/aws-iam-enum.md
{{#endref}}
### From IAM Creds to Console
### IAM 凭证 到 控制台
如果你获得了一些 IAM 凭证,可能想使用下面的工具**访问 web 控制台**。注意,用户/角色必须具有权限 **`sts:GetFederationToken`**。
如果你已经设法获取了一些 IAM 凭证,可能想使用下面的工具**访问 web 控制台**.\
注意,用户/角色必须拥有权限 **`sts:GetFederationToken`**。
#### 自定义脚本
下面的脚本将使用默认配置文件和默认的 AWS 区域( gov cn为你生成一个可用于登录 web 控制台的签名 URL
下面的脚本将使用默认 profile 和默认的 AWS 区域(不是 gov也不是 cn为你生成一个签名 URL可用于登录 web 控制台:
```bash
# Get federated creds (you must indicate a policy or they won't have any perms)
## Even if you don't have Admin access you can indicate that policy to make sure you get all your privileges
@@ -54,7 +55,7 @@ echo -n "https://signin.aws.amazon.com/federation?Action=login&Issuer=example.co
```
#### aws_consoler
可以使用 [https://github.com/NetSPI/aws_consoler](https://github.com/NetSPI/aws_consoler) **生成一个 Web 控制台链接**
可以使用 [https://github.com/NetSPI/aws_consoler](https://github.com/NetSPI/aws_consoler) **生成一个 Web 控制台链接**.
```bash
cd /tmp
python3 -m venv env
@@ -63,22 +64,26 @@ pip install aws-consoler
aws_consoler [params...] #This will generate a link to login into the console
```
> [!WARNING]
> 确保 IAM 用户具有 `sts:GetFederationToken` 权限,或提供一个可假定的角色。
> 确保 IAM 用户具有 `sts:GetFederationToken` 权限,或提供一个可假定的角色。
#### aws-vault
[**aws-vault**](https://github.com/99designs/aws-vault) 是一个用于在开发环境中安全地存储和访问 AWS 凭证的工具
[**aws-vault**](https://github.com/99designs/aws-vault) 是一个工具,用于在开发环境中安全地存储和访问 AWS 凭证。
```bash
aws-vault list
aws-vault exec jonsmith -- aws s3 ls # Execute aws cli with jonsmith creds
aws-vault login jonsmith # Open a browser logged as jonsmith
```
> [!NOTE]
> 你也可以使用 **aws-vault** 获取一个 **浏览器控制台会话**
> 你也可以使用 **aws-vault** 获取一个 **浏览器控制台会话**
### **绕过 Python 的 User-Agent 限制**
### 从 Web Console 到 IAM 凭证
如果存在 **基于所使用的 User-Agent 对执行某些操作的限制**(例如基于 User-Agent 限制使用 python boto3 library可以使用前面的技术通过 **浏览器连接到 web 控制台**,或者你也可以直接 **修改 boto3 的 User-Agent**,方法如下:
该浏览器扩展 **<https://github.com/AI-redteam/clier>** 能够在浏览器将 IAM 凭证保护到内存之前,从网络中拦截这些 IAM 凭证。
### **从 Python 绕过 User-Agent 限制**
如果存在基于所使用的 **user agent 执行某些操作的限制**(例如根据 user agent 限制使用 python boto3 库),可以使用前述技术通过浏览器**连接到 web console**,或者你也可以直接通过如下方式**修改 boto3 的 user-agent**
```bash
# Shared by ex16x41
# Create a client
@@ -93,12 +98,12 @@ response = client.get_secret_value(SecretId="flag_secret") print(response['Secre
```
### **`sts:GetFederationToken`**
拥有此权限可以为执行操作的用户创建一个联合身份,且该联合身份仅限于该用户已拥有的权限。
拥有此权限可以为执行操作的用户创建一个联合身份,且该身份的权限被限制为该用户本身已有的权限。
```bash
aws sts get-federation-token --name <username>
```
由 sts:GetFederationToken 返回的 token 属于调用用户的联合身份,但权限受限。即使该用户有管理员权限,通过联合 token 也无法执行某些操作,例如列出 IAM 用户或附加策略。
由 sts:GetFederationToken 返回的令牌属于调用用户的联合身份,但权限受限。即使该用户有管理员权限,通过联合令牌也无法执行某些操作,例如列出 IAM 用户或附加策略。
此外,该方法相对更隐蔽,因为联合用户不会出现在 AWS Portal 中,只能通过 CloudTrail 日志或监控工具观察到。
此外,该方法在一定程度上更为隐蔽,因为联合用户不会出现在 AWS Portal 中,只能通过 CloudTrail 日志或监控工具观察到。
{{#include ../../../../banners/hacktricks-training.md}}