mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-03-12 21:22:57 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation
This commit is contained in:
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user