mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-iam-enum
This commit is contained in:
+18
-6
@@ -4,7 +4,7 @@
|
||||
|
||||
## SES
|
||||
|
||||
Per maggiori informazioni, vedi:
|
||||
Per maggiori informazioni consulta:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-services/aws-ses-enum.md
|
||||
@@ -29,7 +29,7 @@ Ancora da testare.
|
||||
|
||||
### `ses:SendTemplatedEmail`
|
||||
|
||||
Invia un'email basata su un modello.
|
||||
Invia un'email basata su un template.
|
||||
```bash
|
||||
aws ses send-templated-email --source <value> --destination <value> --template <value>
|
||||
```
|
||||
@@ -45,25 +45,37 @@ Ancora da testare.
|
||||
|
||||
### `ses:SendBulkEmail`
|
||||
|
||||
Invia un'email a più destinazioni.
|
||||
Invia un'email a più destinatari.
|
||||
```
|
||||
aws sesv2 send-bulk-email --default-content <value> --bulk-email-entries <value>
|
||||
```
|
||||
### `ses:SendBounce`
|
||||
|
||||
Invia una **bounce email** su una email ricevuta (indicando che l'email non è stata recapitata). Questo può essere fatto solo **entro 24h dalla ricezione**
|
||||
Invia una **email di rimbalzo** su una email ricevuta (indicando che l'email non è stata recapitata). Questo può essere fatto solo **entro 24h dalla ricezione** dell'email.
|
||||
```bash
|
||||
aws ses send-bounce --original-message-id <value> --bounce-sender <value> --bounced-recipient-info-list <value>
|
||||
```
|
||||
Da testare.
|
||||
Ancora da testare.
|
||||
|
||||
### `ses:SendCustomVerificationEmail`
|
||||
|
||||
Questo invierà un'email di verifica personalizzata. Potrebbe essere inoltre necessario avere le autorizzazioni per creare il modello di email.
|
||||
Questo invierà un'email di verifica personalizzata. Potrebbe essere necessario avere anche i permessi per creare il modello dell'email.
|
||||
```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>
|
||||
```
|
||||
Ancora da testare.
|
||||
|
||||
## WorkMail pivot to bypass SES sandbox
|
||||
|
||||
Quando `ses:GetAccount` mostra che l'account è ancora nella sandbox di SES e `ses:ListIdentities` non restituisce mittenti verificati, gli attaccanti possono **pivot to WorkMail** per inviare immediatamente (nessuna sandbox e quote predefinite più alte) creando organizzazioni, verificando domini e registrando caselle di posta.
|
||||
|
||||
{{#ref}}
|
||||
../aws-workmail-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Riferimenti
|
||||
|
||||
- [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}}
|
||||
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
# AWS - WorkMail Post Exploitation
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Abusing WorkMail to bypass SES sandbox
|
||||
|
||||
Anche se SES è bloccato nella **sandbox** (solo destinatari verificati, ~200 msgs/24h, 1 msg/s), WorkMail non ha una restrizione equivalente. An attacker con chiavi a lungo termine può istanziare un'infrastruttura mail usa-e-getta e iniziare a inviare immediatamente:
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
Notes:
|
||||
- Default **recipient cap** documented by AWS: **100,000 external recipients/day per org** (aggregated across users).
|
||||
- Domain verification activity will appear in CloudTrail under SES but with **`invokedBy`: `workmail.<region>.amazonaws.com`**, so SES verification events can belong to WorkMail setup rather than SES campaigns.
|
||||
- WorkMail mailbox users become **application-layer persistence** independent from IAM users.
|
||||
|
||||
## Sending paths & telemetry gaps
|
||||
|
||||
### Web client (WorkMail UI)
|
||||
- Appaiono come eventi **`ses:SendRawEmail`** in CloudTrail.
|
||||
- `userIdentity.type` = `AWSService`, `invokedBy/sourceIPAddress/userAgent` = `workmail.<region>.amazonaws.com`, quindi il **vero IP client è nascosto**.
|
||||
- `requestParameters` continuano a leak il sender (`source`, `fromArn`, `sourceArn`, configuration set) per correlare con domini/mailbox appena verificati.
|
||||
|
||||
### SMTP (stealthiest)
|
||||
- Endpoint: `smtp.mail.<region>.awsapps.com:465` (SMTP over SSL) using the mailbox password.
|
||||
- **No CloudTrail data events** are generated for SMTP delivery, even when SES data events are enabled.
|
||||
- Ideal detection points are **org/domain/user provisioning** and SES identity ARNs referenced in subsequent web-sent `SendRawEmail` events.
|
||||
|
||||
<details>
|
||||
<summary>Esempio di invio SMTP tramite 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>
|
||||
|
||||
## Considerazioni per il rilevamento
|
||||
|
||||
- Se WorkMail non è necessario, bloccarlo tramite **SCPs** (`workmail:*` deny) a livello dell'organizzazione.
|
||||
- Allertare sul provisioning: `workmail:CreateOrganization`, `workmail:CreateUser`, `workmail:RegisterToWorkMail`, e verifiche SES con `invokedBy=workmail.amazonaws.com` (`ses:VerifyDomainIdentity`, `ses:VerifyDomainDkim`).
|
||||
- Monitorare eventi anomali **`ses:SendRawEmail`** in cui gli ARN di identity fanno riferimento a nuovi domini e l'IP/UA sorgente è `workmail.<region>.amazonaws.com`.
|
||||
|
||||
## References
|
||||
|
||||
- [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}}
|
||||
@@ -14,7 +14,7 @@ Puoi trovare una **descrizione di IAM** in:
|
||||
|
||||
Permessi principali necessari:
|
||||
|
||||
- `iam:ListPolicies`, `iam:GetPolicy` e `iam:GetPolicyVersion`
|
||||
- `iam:ListPolicies`, `iam:GetPolicy` and `iam:GetPolicyVersion`
|
||||
- `iam:ListRoles`
|
||||
- `iam:ListUsers`
|
||||
- `iam:ListGroups`
|
||||
@@ -22,9 +22,9 @@ Permessi principali necessari:
|
||||
- `iam:ListAttachedUserPolicies`
|
||||
- `iam:ListAttachedRolePolicies`
|
||||
- `iam:ListAttachedGroupPolicies`
|
||||
- `iam:ListUserPolicies` e `iam:GetUserPolicy`
|
||||
- `iam:ListGroupPolicies` e `iam:GetGroupPolicy`
|
||||
- `iam:ListRolePolicies` e `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
|
||||
```
|
||||
### Permessi Brute Force
|
||||
### Conferma discreta dei permessi tramite fallimenti intenzionali
|
||||
|
||||
Se sei interessato ai tuoi permessi ma non hai accesso per interrogare IAM, puoi sempre forzarli.
|
||||
Quando `List*` o le API del simulatore sono bloccate, puoi **confermare i permessi che effettuano modifiche senza creare risorse durature** forzando errori di validazione prevedibili. AWS valuta comunque IAM prima di restituire questi errori, quindi vedere l'errore dimostra che il chiamante possiede l'azione:
|
||||
```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
|
||||
```
|
||||
Questi tentativi generano comunque eventi CloudTrail (con `errorCode` impostato) ma evitano di lasciare nuovi artefatti IAM, rendendoli utili per la **validazione dei permessi a basso rumore** durante la recon interattiva.
|
||||
|
||||
### Permissions Brute Force
|
||||
|
||||
Se sei interessato ai tuoi permessi ma non hai accesso per interrogare IAM, puoi sempre eseguire un brute-force su di essi.
|
||||
|
||||
#### bf-aws-permissions
|
||||
|
||||
Lo strumento [**bf-aws-permissions**](https://github.com/carlospolop/bf-aws-permissions) è semplicemente uno script bash che eseguirà utilizzando il profilo indicato tutte le azioni **`list*`, `describe*`, `get*`** che può trovare utilizzando i messaggi di aiuto della CLI di `aws` e **restituirà le esecuzioni riuscite**.
|
||||
Lo strumento [**bf-aws-permissions**](https://github.com/carlospolop/bf-aws-permissions) è semplicemente uno script bash che, usando il profilo indicato, eseguirà tutte le azioni **`list*`, `describe*`, `get*`** che riesce a trovare tramite i messaggi di help del cli `aws` e **restituirà le esecuzioni riuscite**.
|
||||
```bash
|
||||
# Bruteforce permissions
|
||||
bash bf-aws-permissions.sh -p default > /tmp/bf-permissions-verbose.txt
|
||||
```
|
||||
#### bf-aws-perms-simulate
|
||||
|
||||
Lo strumento [**bf-aws-perms-simulate**](https://github.com/carlospolop/bf-aws-perms-simulate) può trovare le tue attuali autorizzazioni (o quelle di altri principi) se hai l'autorizzazione **`iam:SimulatePrincipalPolicy`**
|
||||
Lo strumento [**bf-aws-perms-simulate**](https://github.com/carlospolop/bf-aws-perms-simulate) può trovare i permessi correnti (o quelli di altri principals) se hai il permesso **`iam:SimulatePrincipalPolicy`**
|
||||
```bash
|
||||
# Ask for permissions
|
||||
python3 aws_permissions_checker.py --profile <AWS_PROFILE> [--arn <USER_ARN>]
|
||||
```
|
||||
#### Perms2ManagedPolicies
|
||||
|
||||
Se hai trovato **alcuni permessi che il tuo utente ha**, e pensi che siano concessi da un **ruolo AWS gestito** (e non da uno personalizzato). Puoi utilizzare lo strumento [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) per controllare tutti i **ruoli gestiti da AWS che concedono i permessi che hai scoperto di avere**.
|
||||
Se hai trovato **alcuni permessi che il tuo utente possiede**, e pensi che vengano concessi da un **ruolo gestito AWS** (e non da uno personalizzato). Puoi usare lo strumento [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) per controllare tutti i **ruoli gestiti AWS che concedono i permessi che hai scoperto di avere**.
|
||||
```bash
|
||||
# Run example with my profile
|
||||
python3 aws-Perms2ManagedPolicies.py --profile myadmin --permissions-file example-permissions.txt
|
||||
```
|
||||
> [!WARNING]
|
||||
> È possibile "sapere" se i permessi che hai sono concessi da un ruolo gestito da AWS se vedi che **hai permessi su servizi che non vengono utilizzati** ad esempio.
|
||||
> È possibile "capire" se le autorizzazioni che hai sono concesse da un ruolo gestito da AWS se, ad esempio, noti che **hai permessi su servizi che non vengono utilizzati**.
|
||||
|
||||
#### Cloudtrail2IAM
|
||||
|
||||
[**CloudTrail2IAM**](https://github.com/carlospolop/Cloudtrail2IAM) è uno strumento Python che analizza **i log di AWS CloudTrail per estrarre e riassumere le azioni** eseguite da chiunque o solo da un utente o ruolo specifico. Lo strumento **analizzerà ogni log di cloudtrail dal bucket indicato**.
|
||||
[**CloudTrail2IAM**](https://github.com/carlospolop/Cloudtrail2IAM) è uno strumento Python che analizza **i log di AWS CloudTrail per estrarre e riassumere le azioni** eseguite da tutti o solo da uno specifico utente o ruolo. Lo strumento **analizzerà ogni log di CloudTrail dal bucket indicato**.
|
||||
```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]
|
||||
> Se trovi .tfstate (file di stato Terraform) o file CloudFormation (questi sono solitamente file yaml situati all'interno di un bucket con il prefisso cf-templates), puoi anche leggerli per trovare la configurazione aws e scoprire quali permessi sono stati assegnati a chi.
|
||||
> Se trovi .tfstate (Terraform state files) o CloudFormation files (di solito file yaml situati all'interno di un bucket con il prefisso cf-templates), puoi anche leggerli per trovare la configurazione aws e scoprire a chi sono state assegnate quali autorizzazioni.
|
||||
|
||||
#### enumerate-iam
|
||||
|
||||
Per utilizzare lo strumento [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) devi prima scaricare tutti gli endpoint API AWS, da questi lo script **`generate_bruteforce_tests.py`** otterrà tutti gli **endpoint "list\_", "describe\_" e "get\_"**. E infine, cercherà di **accedervi** con le credenziali fornite e **indicherà se ha funzionato**.
|
||||
To use the tool [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) you first need to download all the API AWS endpoints, from those the script **`generate_bruteforce_tests.py`** will get all the **"list\_", "describe\_", and "get\_" endpoints.** And finally, it will try to **access them** with the given credentials and **indicate if it worked**.
|
||||
|
||||
(Nella mia esperienza, **lo strumento si blocca a un certo punto**, [**controlla questa soluzione**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) per provare a risolvere il problema).
|
||||
(Nella mia esperienza **lo strumento si blocca a un certo punto**, [**checkout this fix**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) per provare a risolvere).
|
||||
|
||||
> [!WARNING]
|
||||
> Nella mia esperienza, questo strumento è simile al precedente ma funziona peggio e controlla meno permessi.
|
||||
> Nella mia esperienza questo strumento è simile al precedente ma funziona peggio e controlla meno autorizzazioni
|
||||
```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
|
||||
|
||||
Puoi anche utilizzare lo strumento [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki). Questo strumento controllerà **diverse operazioni comuni su diversi servizi comuni** (verificherà alcuni permessi di enumerazione e anche alcuni permessi di privesc). Ma controllerà solo i controlli codificati (l'unico modo per controllare più cose è codificare più test).
|
||||
Puoi anche usare lo strumento [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki). Questo strumento verificherà **diverse operazioni comuni su diversi servizi comuni** (controllerà alcuni permessi di enumeration e anche alcuni permessi di privesc). Ma controllerà solo i controlli codificati (l'unico modo per verificare più cose è scrivere altri test).
|
||||
```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']
|
||||
```
|
||||
#### Strumenti di indurimento per BF permessi
|
||||
#### Strumenti di hardening per i permessi BF
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="CloudSploit" }}
|
||||
@@ -208,29 +220,29 @@ steampipe dashboard
|
||||
|
||||
#### \<YourTool>
|
||||
|
||||
Nessuno degli strumenti precedenti è in grado di controllare tutte le autorizzazioni, quindi se conosci uno strumento migliore invia una PR!
|
||||
Nessuno dei precedenti strumenti è in grado di controllare quasi tutte le autorizzazioni; se conosci uno strumento migliore, invia una PR!
|
||||
|
||||
### Accesso Non Autenticato
|
||||
### Unauthenticated Access
|
||||
|
||||
{{#ref}}
|
||||
../aws-unauthenticated-enum-access/aws-iam-and-sts-unauthenticated-enum/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Escalation dei Privilegi
|
||||
### Privilege Escalation
|
||||
|
||||
Nella pagina seguente puoi controllare come **abuse IAM permissions to escalate privileges**:
|
||||
Nella pagina seguente puoi vedere come **abusare dei permessi IAM per effettuare una Privilege Escalation**:
|
||||
|
||||
{{#ref}}
|
||||
../aws-privilege-escalation/aws-iam-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Post Exploitation IAM
|
||||
### IAM Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-iam-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Persistenza IAM
|
||||
### IAM Persistence
|
||||
|
||||
{{#ref}}
|
||||
../aws-persistence/aws-iam-persistence/README.md
|
||||
@@ -238,13 +250,13 @@ Nella pagina seguente puoi controllare come **abuse IAM permissions to escalate
|
||||
|
||||
## IAM Identity Center
|
||||
|
||||
Puoi trovare una **description of IAM Identity Center** in:
|
||||
Puoi trovare una **descrizione di IAM Identity Center** in:
|
||||
|
||||
{{#ref}}
|
||||
../aws-basic-information/
|
||||
{{#endref}}
|
||||
|
||||
### Connetti tramite SSO con CLI
|
||||
### Connect via SSO with CLI
|
||||
```bash
|
||||
# Connect with sso via CLI aws configure sso
|
||||
aws configure sso
|
||||
@@ -257,16 +269,16 @@ sso_region = us-east-1
|
||||
```
|
||||
### Enumerazione
|
||||
|
||||
Gli elementi principali del Centro Identità sono:
|
||||
Gli elementi principali dell'Identity Center sono:
|
||||
|
||||
- Utenti e gruppi
|
||||
- Set di permessi: hanno politiche collegate
|
||||
- Account AWS
|
||||
- Permission Sets: hanno policy associate
|
||||
- AWS Accounts
|
||||
|
||||
Poi, vengono create relazioni affinché utenti/gruppi abbiano Set di permessi su Account AWS.
|
||||
Poi vengono create relazioni in cui utenti/gruppi hanno Permission Sets su AWS Accounts.
|
||||
|
||||
> [!NOTE]
|
||||
> Nota che ci sono 3 modi per allegare politiche a un Set di permessi. Allegare politiche gestite da AWS, politiche gestite dal cliente (queste politiche devono essere create in tutti gli account che il Set di permessi sta influenzando) e politiche inline (definite lì).
|
||||
> Nota che ci sono 3 modi per allegare policy a un Permission Set: allegare AWS managed policies, Customer managed policies (queste policy devono essere create in tutti gli account che il Permission Set interessa), e inline policies (definite al suo interno).
|
||||
```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>
|
||||
```
|
||||
### Enumerazione Locale
|
||||
### Enumerazione locale
|
||||
|
||||
È possibile creare all'interno della cartella `$HOME/.aws` il file config per configurare i profili accessibili tramite SSO, ad esempio:
|
||||
È possibile creare all'interno della cartella `$HOME/.aws` il file config per configurare profili accessibili tramite SSO, ad esempio:
|
||||
```ini
|
||||
[default]
|
||||
region = us-west-2
|
||||
@@ -327,9 +339,9 @@ aws sso login --profile my-sso-profile
|
||||
# Use dependent-profile
|
||||
aws s3 ls --profile dependent-profile
|
||||
```
|
||||
Quando un **profilo da SSO è utilizzato** per accedere a delle informazioni, le credenziali sono **memorizzate** in un file all'interno della cartella **`$HOME/.aws/sso/cache`**. Pertanto possono essere **letto e utilizzato da lì**.
|
||||
Quando viene utilizzato un **profilo SSO** per accedere ad alcune informazioni, le credenziali vengono **memorizzate nella cache** in un file all'interno della cartella **`$HOME/.aws/sso/cache`**. Di conseguenza possono essere **lette e utilizzate da lì**.
|
||||
|
||||
Inoltre, **ulteriori credenziali** possono essere memorizzate nella cartella **`$HOME/.aws/cli/cache`**. Questa directory di cache è utilizzata principalmente quando si **lavora con i profili AWS CLI** che utilizzano credenziali di utenti IAM o **assumono** ruoli tramite IAM (senza SSO). Esempio di configurazione:
|
||||
Inoltre, **altre credenziali** possono essere memorizzate nella cartella **`$HOME/.aws/cli/cache`**. Questa directory di cache è utilizzata principalmente quando stai **lavorando con profili AWS CLI** che usano credenziali utente IAM o **assumono** ruoli tramite IAM (senza SSO). Esempio di configurazione:
|
||||
```ini
|
||||
[profile crossaccountrole]
|
||||
role_arn = arn:aws:iam::234567890123:role/SomeRole
|
||||
@@ -349,7 +361,7 @@ external_id = 123456
|
||||
../aws-privilege-escalation/aws-sso-and-identitystore-privesc/README.md
|
||||
{{#endref}}
|
||||
|
||||
### Post Exploitation
|
||||
### Post-exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-sso-and-identitystore-post-exploitation/README.md
|
||||
@@ -357,16 +369,16 @@ external_id = 123456
|
||||
|
||||
### Persistenza
|
||||
|
||||
#### Crea un utente e assegna i permessi ad esso
|
||||
#### Crea un utente e assegnagli i permessi
|
||||
```bash
|
||||
# Create user identitystore:CreateUser
|
||||
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 gruppo e assegna i permessi e imposta su di esso un utente controllato
|
||||
- Dai permessi extra a un utente o gruppo controllato
|
||||
- Per impostazione predefinita, solo gli utenti con permessi dell'Account di Gestione potranno accedere e controllare l'IAM Identity Center.
|
||||
- Crea un gruppo, assegnagli i permessi e imposta su di esso un utente controllato
|
||||
- Assegna permessi aggiuntivi a un utente controllato o a un gruppo
|
||||
- Per impostazione predefinita, solo gli utenti con permessi del Management Account potranno accedere e controllare l'IAM Identity Center.
|
||||
|
||||
Tuttavia, è possibile tramite Delegate Administrator consentire agli utenti di un account diverso di gestirlo. Non avranno esattamente gli stessi permessi, ma potranno eseguire [**attività di gestione**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html).
|
||||
Tuttavia, è possibile, tramite Delegate Administrator, consentire agli utenti di un account diverso di gestirlo. Non avranno esattamente le stesse autorizzazioni, ma potranno eseguire [**attività di gestione**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html).
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user