mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-03-12 21:22:57 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
## SES
|
||||
|
||||
Para más información consulta:
|
||||
Para más información, consulta:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-services/aws-ses-enum.md
|
||||
@@ -45,13 +45,13 @@ Aún por probar.
|
||||
|
||||
### `ses:SendBulkEmail`
|
||||
|
||||
Enviar un correo electrónico a múltiples destinatarios.
|
||||
Enviar un correo a múltiples destinos.
|
||||
```
|
||||
aws sesv2 send-bulk-email --default-content <value> --bulk-email-entries <value>
|
||||
```
|
||||
### `ses:SendBounce`
|
||||
|
||||
Enviar un **bounce email** sobre un correo recibido (indicando que el correo no pudo ser entregado). Esto solo puede hacerse **hasta 24 horas después de recibir** el correo.
|
||||
Enviar un **bounce email** sobre un correo recibido (indicando que el correo no pudo ser recibido). Esto solo se puede hacer **hasta 24 horas después de recibir** el correo.
|
||||
```bash
|
||||
aws ses send-bounce --original-message-id <value> --bounce-sender <value> --bounced-recipient-info-list <value>
|
||||
```
|
||||
@@ -59,11 +59,23 @@ Aún por probar.
|
||||
|
||||
### `ses:SendCustomVerificationEmail`
|
||||
|
||||
Esto enviará un correo electrónico de verificación personalizado. Es posible que también necesites permisos para crear la plantilla de correo.
|
||||
Esto enviará un correo electrónico de verificación personalizado. Es posible que también necesites permisos para crear la plantilla del correo electrónico.
|
||||
```bash
|
||||
aws ses send-custom-verification-email --email-address <value> --template-name <value>
|
||||
aws sesv2 send-custom-verification-email --email-address <value> --template-name <value>
|
||||
```
|
||||
Aún por probar.
|
||||
|
||||
## Pivot a WorkMail para eludir SES sandbox
|
||||
|
||||
Cuando `ses:GetAccount` muestra que la cuenta aún está en el SES sandbox y `ses:ListIdentities` no devuelve remitentes verificados, los atacantes pueden **pivot to WorkMail** para enviar inmediatamente (sin sandbox y con cuotas predeterminadas más altas) creando organizaciones, verificando dominios y registrando buzones.
|
||||
|
||||
{{#ref}}
|
||||
../aws-workmail-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Referencias
|
||||
|
||||
- [Threat Actors Using AWS WorkMail in Phishing Campaigns](https://www.rapid7.com/blog/post/dr-threat-actors-aws-workmail-phishing-campaigns)
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
# AWS - WorkMail Post Exploitation
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Abusar de WorkMail para eludir el sandbox de SES
|
||||
|
||||
Incluso si SES está limitado al **sandbox** (solo receptores verificados, ~200 msgs/24h, 1 msg/s), WorkMail no tiene una restricción equivalente. Un atacante con claves de largo plazo puede desplegar infraestructura de correo desechable y empezar a enviar inmediatamente:
|
||||
|
||||
1. **Create a WorkMail org (region-scoped)**
|
||||
```bash
|
||||
aws workmail create-organization --region us-east-1 --alias temp-mail --directory-id <dir-id-if-reusing>
|
||||
```
|
||||
2. **Verify attacker-controlled domains** (WorkMail invokes SES APIs as `workmail.amazonaws.com`):
|
||||
```bash
|
||||
aws ses verify-domain-identity --domain attacker-domain.com
|
||||
aws ses verify-domain-dkim --domain attacker-domain.com
|
||||
```
|
||||
3. **Provision mailbox users** and register them:
|
||||
```bash
|
||||
aws workmail create-user --organization-id <org-id> --name marketing --display-name "Marketing"
|
||||
aws workmail register-to-work-mail --organization-id <org-id> --entity-id <user-id> --email marketing@attacker-domain.com
|
||||
```
|
||||
|
||||
Notas:
|
||||
- Límite por defecto de **recipient cap** documentado por AWS: **100,000 external recipients/day per org** (agregado entre usuarios).
|
||||
- La actividad de verificación de dominio aparecerá en CloudTrail bajo SES pero con **`invokedBy`: `workmail.<region>.amazonaws.com`**, por lo que los eventos de verificación de SES pueden corresponder a la configuración de WorkMail en lugar de campañas de SES.
|
||||
- Los usuarios de buzón de WorkMail se convierten en **persistencia a nivel de aplicación** independiente de los usuarios IAM.
|
||||
|
||||
## Sending paths & telemetry gaps
|
||||
|
||||
### Web client (WorkMail UI)
|
||||
- Aparece como eventos **`ses:SendRawEmail`** en CloudTrail.
|
||||
- `userIdentity.type` = `AWSService`, `invokedBy/sourceIPAddress/userAgent` = `workmail.<region>.amazonaws.com`, por lo que la **IP real del cliente queda oculta**.
|
||||
- `requestParameters` still leak sender (`source`, `fromArn`, `sourceArn`, configuration set) para correlacionar con dominios/buzones recién verificados.
|
||||
|
||||
### SMTP (stealthiest)
|
||||
- Endpoint: `smtp.mail.<region>.awsapps.com:465` (SMTP sobre SSL) con la contraseña del buzón.
|
||||
- **No CloudTrail data events** se generan para la entrega SMTP, incluso cuando los SES data events están habilitados.
|
||||
- Los puntos de detección ideales son el **provisionamiento de org/domain/user** y los ARNs de identidad de SES referenciados en posteriores eventos web `SendRawEmail`.
|
||||
|
||||
<details>
|
||||
<summary>Ejemplo de envío SMTP a través de WorkMail</summary>
|
||||
```python
|
||||
import smtplib
|
||||
from email.message import EmailMessage
|
||||
|
||||
SMTP_SERVER = "smtp.mail.us-east-1.awsapps.com"
|
||||
SMTP_PORT = 465
|
||||
EMAIL_ADDRESS = "marketing@attacker-domain.com"
|
||||
EMAIL_PASSWORD = "SuperSecretPassword!"
|
||||
|
||||
target = "victim@example.com" # can be unverified/external
|
||||
msg = EmailMessage()
|
||||
msg["Subject"] = "WorkMail SMTP"
|
||||
msg["From"] = EMAIL_ADDRESS
|
||||
msg["To"] = target
|
||||
msg.set_content("Delivered via WorkMail SMTP")
|
||||
|
||||
with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as smtp:
|
||||
smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
|
||||
smtp.send_message(msg)
|
||||
```
|
||||
</details>
|
||||
|
||||
## Consideraciones de detección
|
||||
|
||||
- Si WorkMail no es necesario, bloquéalo mediante **SCPs** (`workmail:*` deny) a nivel de la organización.
|
||||
- Genera alertas sobre aprovisionamiento: `workmail:CreateOrganization`, `workmail:CreateUser`, `workmail:RegisterToWorkMail`, y verificaciones de SES con `invokedBy=workmail.amazonaws.com` (`ses:VerifyDomainIdentity`, `ses:VerifyDomainDkim`).
|
||||
- Vigila eventos anómalos **`ses:SendRawEmail`** donde los ARNs de identidad hagan referencia a dominios nuevos y la IP/UA de origen sea `workmail.<region>.amazonaws.com`.
|
||||
|
||||
## Referencias
|
||||
|
||||
- [Threat Actors Using AWS WorkMail in Phishing Campaigns](https://www.rapid7.com/blog/post/dr-threat-actors-aws-workmail-phishing-campaigns)
|
||||
- [AWS WorkMail limits](https://docs.aws.amazon.com/workmail/latest/adminguide/limits.html)
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
@@ -1,4 +1,4 @@
|
||||
# AWS - IAM, Centro de Identidad y Enumeración SSO
|
||||
# AWS - IAM, Identity Center & SSO Enumeración
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -14,7 +14,7 @@ Puedes encontrar una **descripción de IAM** en:
|
||||
|
||||
Permisos principales necesarios:
|
||||
|
||||
- `iam:ListPolicies`, `iam:GetPolicy` y `iam:GetPolicyVersion`
|
||||
- `iam:ListPolicies`, `iam:GetPolicy` and `iam:GetPolicyVersion`
|
||||
- `iam:ListRoles`
|
||||
- `iam:ListUsers`
|
||||
- `iam:ListGroups`
|
||||
@@ -22,9 +22,9 @@ Permisos principales necesarios:
|
||||
- `iam:ListAttachedUserPolicies`
|
||||
- `iam:ListAttachedRolePolicies`
|
||||
- `iam:ListAttachedGroupPolicies`
|
||||
- `iam:ListUserPolicies` y `iam:GetUserPolicy`
|
||||
- `iam:ListGroupPolicies` y `iam:GetGroupPolicy`
|
||||
- `iam:ListRolePolicies` y `iam:GetRolePolicy`
|
||||
- `iam:ListUserPolicies` and `iam:GetUserPolicy`
|
||||
- `iam:ListGroupPolicies` and `iam:GetGroupPolicy`
|
||||
- `iam:ListRolePolicies` and `iam:GetRolePolicy`
|
||||
```bash
|
||||
# All IAMs
|
||||
## Retrieves information about all IAM users, groups, roles, and policies
|
||||
@@ -88,37 +88,49 @@ aws iam get-account-password-policy
|
||||
aws iam list-mfa-devices
|
||||
aws iam list-virtual-mfa-devices
|
||||
```
|
||||
### Fuerza Bruta de Permisos
|
||||
### Confirmación sigilosa de permisos mediante fallos intencionales
|
||||
|
||||
Si estás interesado en tus propios permisos pero no tienes acceso para consultar IAM, siempre podrías forzarlos.
|
||||
Cuando las APIs `List*` o las simulator APIs están bloqueadas, puedes **confirmar permisos de modificación sin crear recursos duraderos** forzando errores de validación predecibles. AWS aún evalúa IAM antes de devolver estos errores, por lo que ver el error demuestra que el solicitante tiene la acción:
|
||||
```bash
|
||||
# Confirm iam:CreateUser without creating a new principal (fails only after authz)
|
||||
aws iam create-user --user-name <existing_user> # -> EntityAlreadyExistsException
|
||||
|
||||
# Confirm iam:CreateLoginProfile while learning password policy requirements
|
||||
aws iam create-login-profile --user-name <target_user> --password lower --password-reset-required # -> PasswordPolicyViolationException
|
||||
```
|
||||
Estos intentos aún generan eventos de CloudTrail (con `errorCode` establecido) pero evitan dejar nuevos artefactos de IAM, lo que los hace útiles para una **validación de permisos de bajo ruido** durante el reconocimiento interactivo.
|
||||
|
||||
### Permissions Brute Force
|
||||
|
||||
Si te interesan tus propios permisos pero no tienes acceso para consultar IAM, siempre puedes recurrir al brute-force.
|
||||
|
||||
#### bf-aws-permissions
|
||||
|
||||
La herramienta [**bf-aws-permissions**](https://github.com/carlospolop/bf-aws-permissions) es solo un script de bash que se ejecutará utilizando el perfil indicado todas las acciones **`list*`, `describe*`, `get*`** que pueda encontrar usando los mensajes de ayuda de `aws` cli y **devolverá las ejecuciones exitosas**.
|
||||
La herramienta [**bf-aws-permissions**](https://github.com/carlospolop/bf-aws-permissions) es simplemente un script bash que ejecutará, usando el perfil indicado, todas las acciones **`list*`, `describe*`, `get*`** que pueda encontrar utilizando los mensajes de ayuda del `aws` cli y **devolverá las ejecuciones exitosas**.
|
||||
```bash
|
||||
# Bruteforce permissions
|
||||
bash bf-aws-permissions.sh -p default > /tmp/bf-permissions-verbose.txt
|
||||
```
|
||||
#### bf-aws-perms-simulate
|
||||
|
||||
La herramienta [**bf-aws-perms-simulate**](https://github.com/carlospolop/bf-aws-perms-simulate) puede encontrar tus permisos actuales (o los de otros principales) si tienes el permiso **`iam:SimulatePrincipalPolicy`**
|
||||
La herramienta [**bf-aws-perms-simulate**](https://github.com/carlospolop/bf-aws-perms-simulate) puede encontrar tus permisos actuales (o los de otras identidades) si tienes el permiso **`iam:SimulatePrincipalPolicy`**
|
||||
```bash
|
||||
# Ask for permissions
|
||||
python3 aws_permissions_checker.py --profile <AWS_PROFILE> [--arn <USER_ARN>]
|
||||
```
|
||||
#### Perms2ManagedPolicies
|
||||
|
||||
Si encontraste **algunos permisos que tiene tu usuario**, y crees que están siendo otorgados por un **rol gestionado de AWS** (y no por uno personalizado). Puedes usar la herramienta [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) para verificar todos los **roles gestionados de AWS que otorgan los permisos que descubriste que tienes**.
|
||||
Si encontraste **algunos permisos que tiene tu usuario**, y crees que se le están otorgando por un **rol administrado de AWS** (y no por uno personalizado). Puedes usar la herramienta [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) para comprobar todos los **roles administrados de AWS que conceden los permisos que descubriste que tienes**.
|
||||
```bash
|
||||
# Run example with my profile
|
||||
python3 aws-Perms2ManagedPolicies.py --profile myadmin --permissions-file example-permissions.txt
|
||||
```
|
||||
> [!WARNING]
|
||||
> Es posible "saber" si los permisos que tienes son otorgados por un rol administrado de AWS si ves que **tienes permisos sobre servicios que no se utilizan** por ejemplo.
|
||||
> Es posible "saber" si los permisos que tienes son concedidos por un rol administrado por AWS si ves que, por ejemplo, **tienes permisos sobre servicios que no se utilizan**.
|
||||
|
||||
#### Cloudtrail2IAM
|
||||
|
||||
[**CloudTrail2IAM**](https://github.com/carlospolop/Cloudtrail2IAM) es una herramienta de Python que analiza **los registros de AWS CloudTrail para extraer y resumir acciones** realizadas por todos o solo un usuario o rol específico. La herramienta **analizará cada registro de cloudtrail del bucket indicado**.
|
||||
[**CloudTrail2IAM**](https://github.com/carlospolop/Cloudtrail2IAM) es una herramienta en Python que analiza **los registros de AWS CloudTrail para extraer y resumir acciones** realizadas por todos o solo por un usuario o rol específico. La herramienta **analizará cada registro de CloudTrail del bucket indicado**.
|
||||
```bash
|
||||
git clone https://github.com/carlospolop/Cloudtrail2IAM
|
||||
cd Cloudtrail2IAM
|
||||
@@ -126,16 +138,16 @@ pip install -r requirements.txt
|
||||
python3 cloudtrail2IAM.py --prefix PREFIX --bucket_name BUCKET_NAME --profile PROFILE [--filter-name FILTER_NAME] [--threads THREADS]
|
||||
```
|
||||
> [!WARNING]
|
||||
> Si encuentras .tfstate (archivos de estado de Terraform) o archivos de CloudFormation (que suelen ser archivos yaml ubicados dentro de un bucket con el prefijo cf-templates), también puedes leerlos para encontrar la configuración de aws y ver qué permisos se han asignado a quién.
|
||||
> Si encuentras .tfstate (archivos de estado de Terraform) o archivos de CloudFormation (estos suelen ser archivos yaml ubicados dentro de un bucket con el prefijo cf-templates), también puedes leerlos para encontrar la configuración de aws y saber qué permisos se han asignado a quién.
|
||||
|
||||
#### enumerate-iam
|
||||
|
||||
Para usar la herramienta [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam), primero necesitas descargar todos los endpoints de la API de AWS; a partir de esos, el script **`generate_bruteforce_tests.py`** obtendrá todos los **"list\_", "describe\_", y "get\_" endpoints.** Y finalmente, intentará **acceder a ellos** con las credenciales dadas y **indicar si funcionó**.
|
||||
Para usar la herramienta [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) primero necesitas descargar todos los endpoints de la API de AWS, a partir de esos el script **`generate_bruteforce_tests.py`** obtendrá todos los endpoints **"list\_", "describe\_", and "get\_"**. Y finalmente, intentará **acceder a ellos** con las credenciales dadas y **indicar si funcionó**.
|
||||
|
||||
(En mi experiencia, la **herramienta se cuelga en algún momento**, [**consulta esta solución**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) para intentar solucionarlo).
|
||||
(En mi experiencia la **herramienta se queda colgada en algún punto**, [**checkout this fix**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) para intentar solucionarlo).
|
||||
|
||||
> [!WARNING]
|
||||
> En mi experiencia, esta herramienta es como la anterior pero funciona peor y verifica menos permisos.
|
||||
> En mi experiencia esta herramienta es como la anterior pero funciona peor y comprueba menos permisos
|
||||
```bash
|
||||
# Install tool
|
||||
git clone git@github.com:andresriancho/enumerate-iam.git
|
||||
@@ -154,7 +166,7 @@ python3 enumerate-iam.py --access-key ACCESS_KEY --secret-key SECRET_KEY [--sess
|
||||
```
|
||||
#### weirdAAL
|
||||
|
||||
También podrías usar la herramienta [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki). Esta herramienta verificará **varias operaciones comunes en varios servicios comunes** (verificará algunos permisos de enumeración y también algunos permisos de privesc). Pero solo verificará las comprobaciones codificadas (la única forma de verificar más cosas es codificando más pruebas).
|
||||
También puedes usar la herramienta [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki). Esta herramienta comprobará **varias operaciones comunes en varios servicios comunes** (verificará algunos permisos de enumeration y también algunos permisos de privesc). Pero solo realizará las comprobaciones codificadas (la única manera de comprobar más cosas es escribir más pruebas).
|
||||
```bash
|
||||
# Install
|
||||
git clone https://github.com/carnal0wnage/weirdAAL.git
|
||||
@@ -178,7 +190,7 @@ python3 weirdAAL.py -m recon_all -t MyTarget # Check all permissions
|
||||
# [+] elbv2 Actions allowed are [+]
|
||||
# ['DescribeLoadBalancers', 'DescribeAccountLimits', 'DescribeTargetGroups']
|
||||
```
|
||||
#### Herramientas de endurecimiento para BF permisos
|
||||
#### Herramientas de hardening para permisos BF
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="CloudSploit" }}
|
||||
@@ -208,43 +220,43 @@ steampipe dashboard
|
||||
|
||||
#### \<YourTool>
|
||||
|
||||
Ninguna de las herramientas anteriores es capaz de verificar casi todos los permisos, así que si conoces una mejor herramienta, ¡envía un PR!
|
||||
Ninguna de las herramientas anteriores es capaz de comprobar casi todos los permisos, así que si conoces una mejor herramienta, ¡envía un PR!
|
||||
|
||||
### Acceso No Autenticado
|
||||
### Acceso no autenticado
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-iam-and-sts-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Escalación de Privilegios
|
||||
### Escalada de privilegios
|
||||
|
||||
En la siguiente página puedes verificar cómo **abusar de los permisos de IAM para escalar privilegios**:
|
||||
En la página siguiente puedes ver cómo **abusar de los permisos de IAM para escalar privilegios**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-iam-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Post Explotación de IAM
|
||||
### IAM Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-iam-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Persistencia de IAM
|
||||
### IAM Persistence
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-iam-persistence/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Centro de Identidad de IAM
|
||||
## IAM Identity Center
|
||||
|
||||
Puedes encontrar una **descripción del Centro de Identidad de IAM** en:
|
||||
Puedes encontrar una **descripción de IAM Identity Center** en:
|
||||
|
||||
{{#ref}}
|
||||
../aws-basic-information/
|
||||
{{#endref}}
|
||||
|
||||
### Conectar a través de SSO con CLI
|
||||
### Conectar vía SSO con CLI
|
||||
```bash
|
||||
# Connect with sso via CLI aws configure sso
|
||||
aws configure sso
|
||||
@@ -257,16 +269,16 @@ sso_region = us-east-1
|
||||
```
|
||||
### Enumeración
|
||||
|
||||
Los elementos principales del Centro de Identidad son:
|
||||
Los elementos principales del Identity Center son:
|
||||
|
||||
- Usuarios y grupos
|
||||
- Conjuntos de permisos: Tienen políticas adjuntas
|
||||
- Cuentas de AWS
|
||||
- Permission Sets: Tienen políticas adjuntas
|
||||
- AWS Accounts
|
||||
|
||||
Luego, se crean relaciones para que los usuarios/grupos tengan Conjuntos de permisos sobre la Cuenta de AWS.
|
||||
Luego se crean relaciones para que usuarios/grupos tengan Permission Sets sobre AWS Account.
|
||||
|
||||
> [!NOTE]
|
||||
> Tenga en cuenta que hay 3 formas de adjuntar políticas a un Conjunto de permisos. Adjuntar políticas gestionadas por AWS, políticas gestionadas por el cliente (estas políticas deben ser creadas en todas las cuentas que el Conjunto de permisos está afectando), y políticas en línea (definidas allí).
|
||||
> Ten en cuenta que existen 3 formas de adjuntar políticas a un Permission Set: AWS managed policies, Customer managed policies (estas deben crearse en todas las cuentas que el Permission Set afecta), e inline policies (definidas en el propio Permission Set).
|
||||
```bash
|
||||
# Check if IAM Identity Center is used
|
||||
aws sso-admin list-instances
|
||||
@@ -300,9 +312,9 @@ aws identitystore list-group-memberships --identity-store-id <store-id> --group-
|
||||
## Get memberships or a user or a group
|
||||
aws identitystore list-group-memberships-for-member --identity-store-id <store-id> --member-id <member-id>
|
||||
```
|
||||
### Enumeración Local
|
||||
### Enumeración local
|
||||
|
||||
Es posible crear dentro de la carpeta `$HOME/.aws` el archivo config para configurar perfiles que son accesibles a través de SSO, por ejemplo:
|
||||
Es posible crear dentro de la carpeta `$HOME/.aws` el archivo config para configurar perfiles que son accesibles vía SSO, por ejemplo:
|
||||
```ini
|
||||
[default]
|
||||
region = us-west-2
|
||||
@@ -320,16 +332,16 @@ output = json
|
||||
role_arn = arn:aws:iam::<acc-id>:role/ReadOnlyRole
|
||||
source_profile = Hacktricks-Admin
|
||||
```
|
||||
Esta configuración se puede utilizar con los comandos:
|
||||
Esta configuración puede usarse con los comandos:
|
||||
```bash
|
||||
# Login in ms-sso-profile
|
||||
aws sso login --profile my-sso-profile
|
||||
# Use dependent-profile
|
||||
aws s3 ls --profile dependent-profile
|
||||
```
|
||||
Cuando se utiliza un **perfil de SSO** para acceder a información, las credenciales se **almacenan en caché** en un archivo dentro de la carpeta **`$HOME/.aws/sso/cache`**. Por lo tanto, pueden ser **leídas y utilizadas desde allí**.
|
||||
Cuando se **utiliza un perfil de SSO** para acceder a cierta información, las credenciales se **almacenan en caché** en un archivo dentro de la carpeta **`$HOME/.aws/sso/cache`**. Por lo tanto, pueden **leerse y utilizarse desde allí**.
|
||||
|
||||
Además, se pueden almacenar **más credenciales** en la carpeta **`$HOME/.aws/cli/cache`**. Este directorio de caché se utiliza principalmente cuando estás **trabajando con perfiles de AWS CLI** que utilizan credenciales de usuario IAM o **asumen** roles a través de IAM (sin SSO). Ejemplo de configuración:
|
||||
Además, **más credenciales** pueden almacenarse en la carpeta **`$HOME/.aws/cli/cache`**. Este directorio de caché se utiliza principalmente cuando estás **trabajando con perfiles de AWS CLI** que usan credenciales de usuario IAM o **asumen** roles a través de IAM (sin SSO). Ejemplo de configuración:
|
||||
```ini
|
||||
[profile crossaccountrole]
|
||||
role_arn = arn:aws:iam::234567890123:role/SomeRole
|
||||
@@ -337,25 +349,25 @@ source_profile = default
|
||||
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
|
||||
external_id = 123456
|
||||
```
|
||||
### Acceso No Autenticado
|
||||
### Unauthenticated Access
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Escalación de Privilegios
|
||||
### Privilege Escalation
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-sso-and-identitystore-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Post Explotación
|
||||
### Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-sso-and-identitystore-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Persistencia
|
||||
### Persistence
|
||||
|
||||
#### Crear un usuario y asignarle permisos
|
||||
```bash
|
||||
@@ -363,10 +375,10 @@ external_id = 123456
|
||||
aws identitystore create-user --identity-store-id <store-id> --user-name privesc --display-name privesc --emails Value=sdkabflvwsljyclpma@tmmbt.net,Type=Work,Primary=True --name Formatted=privesc,FamilyName=privesc,GivenName=privesc
|
||||
## After creating it try to login in the console using the selected username, you will receive an email with the code and then you will be able to select a password
|
||||
```
|
||||
- Crea un grupo y asígnale permisos y establece en él un usuario controlado.
|
||||
- Da permisos adicionales a un usuario o grupo controlado.
|
||||
- Por defecto, solo los usuarios con permisos de la Cuenta de Gestión podrán acceder y controlar el IAM Identity Center.
|
||||
- Crear un grupo, asignarle permisos y establecer en él un usuario controlado
|
||||
- Dar permisos adicionales a un usuario controlado o a un grupo
|
||||
- Por defecto, solo los usuarios con permisos de la Management Account podrán acceder y controlar el IAM Identity Center.
|
||||
|
||||
Sin embargo, es posible a través de Delegate Administrator permitir que usuarios de una cuenta diferente lo gestionen. No tendrán exactamente los mismos permisos, pero podrán realizar [**actividades de gestión**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html).
|
||||
Sin embargo, es posible, a través de Delegate Administrator, permitir que usuarios de una cuenta diferente lo administren. No tendrán exactamente los mismos permisos, pero podrán realizar [**management activities**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html).
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user