mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-11 20:45:21 -08:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-privilege-escalat
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# AWS - STS Post Explotación
|
||||
# AWS - STS Post Exploitation
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -10,14 +10,14 @@ Para más información:
|
||||
../aws-services/aws-iam-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### De Credenciales IAM a Consola
|
||||
### From IAM Creds to Console
|
||||
|
||||
Si has logrado obtener algunas credenciales IAM, podrías estar interesado en **acceder a la consola web** utilizando las siguientes herramientas.\
|
||||
Ten en cuenta que el usuario/rol debe tener el permiso **`sts:GetFederationToken`**.
|
||||
Si has logrado obtener algunas IAM credentials, quizá te interese **acceder al web console** usando las siguientes herramientas.\
|
||||
Ten en cuenta que el user/role debe tener el permiso **`sts:GetFederationToken`**.
|
||||
|
||||
#### Script personalizado
|
||||
|
||||
El siguiente script utilizará el perfil predeterminado y una ubicación predeterminada de AWS (no gov y no cn) para darte una URL firmada que puedes usar para iniciar sesión en la consola web:
|
||||
El siguiente script usará el default profile y una ubicación por defecto de AWS (no gov y no cn) para proporcionarte una signed URL que puedes usar para iniciar sesión en el web console:
|
||||
```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
|
||||
@@ -64,11 +64,11 @@ pip install aws-consoler
|
||||
aws_consoler [params...] #This will generate a link to login into the console
|
||||
```
|
||||
> [!WARNING]
|
||||
> Asegúrese de que el usuario IAM tenga permiso `sts:GetFederationToken`, o proporcione un rol para asumir.
|
||||
|
||||
> Asegúrate de que el usuario IAM tenga el permiso `sts:GetFederationToken`, o proporciona un rol para asumir.
|
||||
|
||||
#### aws-vault
|
||||
|
||||
[**aws-vault**](https://github.com/99designs/aws-vault) es una herramienta para almacenar y acceder de forma segura a las credenciales de AWS en un entorno de desarrollo.
|
||||
[**aws-vault**](https://github.com/99designs/aws-vault) es una herramienta para almacenar y acceder de forma segura a credenciales de AWS en un entorno de desarrollo.
|
||||
```bash
|
||||
aws-vault list
|
||||
aws-vault exec jonsmith -- aws s3 ls # Execute aws cli with jonsmith creds
|
||||
@@ -79,7 +79,7 @@ aws-vault login jonsmith # Open a browser logged as jonsmith
|
||||
|
||||
### **Eludir restricciones de User-Agent desde Python**
|
||||
|
||||
Si hay una **restricción para realizar ciertas acciones basadas en el user agent** utilizado (como restringir el uso de la biblioteca python boto3 según el user agent), es posible usar la técnica anterior para **conectarse a la consola web a través de un navegador**, o podrías **modificar directamente el user-agent de boto3** haciendo:
|
||||
Si existe una **restricción para realizar ciertas acciones en función del User-Agent** utilizado (como restringir el uso de la librería python boto3 según el User-Agent) es posible usar la técnica anterior para **conectarte a la web console mediante un navegador**, o puedes directamente **modificar el user-agent de boto3** haciendo:
|
||||
```bash
|
||||
# Shared by ex16x41
|
||||
# Create a client
|
||||
@@ -92,4 +92,14 @@ client.meta.events.register( 'before-call.secretsmanager.GetSecretValue', lambda
|
||||
# Perform the action
|
||||
response = client.get_secret_value(SecretId="flag_secret") print(response['SecretString'])
|
||||
```
|
||||
### **`sts:GetFederationToken`**
|
||||
|
||||
Con este permiso es posible crear una identidad federada para el usuario que lo ejecuta, limitada a los permisos que tiene ese usuario.
|
||||
```bash
|
||||
aws sts get-federation-token --name <username>
|
||||
```
|
||||
El token devuelto por sts:GetFederationToken pertenece a la identidad federada del usuario que realiza la llamada, pero con permisos restringidos. Incluso si el usuario tiene derechos de administrador, ciertas acciones, como listar IAM users o attaching policies, no pueden realizarse a través del token federado.
|
||||
|
||||
Además, este método es algo más sigiloso, ya que el usuario federado no aparece en el AWS Portal; solo puede observarse a través de CloudTrail logs o herramientas de monitorización.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user