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 772cf130b..9679f6512 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 @@ -4,7 +4,7 @@ ## VPC & Networking -Scopri cos'è una VPC e i suoi componenti in: +Scopri cos'è un VPC e i suoi componenti in: {{#ref}} aws-vpc-and-networking-basic-information.md @@ -12,9 +12,9 @@ aws-vpc-and-networking-basic-information.md ## EC2 -Amazon EC2 viene utilizzato per avviare **server virtuali**. Permette la configurazione della **sicurezza** e del **networking** e la gestione dello **storage**. La flessibilità di Amazon EC2 si manifesta nella capacità di scalare le risorse sia verso l'alto che verso il basso, adattandosi efficacemente ai cambiamenti nei requisiti o a picchi di popolarità. Questa caratteristica riduce la necessità di previsioni precise sul traffico. +Amazon EC2 viene utilizzato per avviare **virtual servers**. Consente la configurazione di **security** e **networking** e la gestione dello **storage**. La flessibilità di Amazon EC2 è evidente nella sua capacità di scalare le risorse sia verso l'alto che verso il basso, adattandosi efficacemente a variazioni dei requisiti o a picchi di popolarità. Questa funzione riduce la necessità di previsioni precise del traffico. -Elementi interessanti da enumerare in EC2: +Cose interessanti da enumerare in EC2: - Virtual Machines - SSH Keys @@ -29,13 +29,13 @@ Elementi interessanti da enumerare in EC2: ### Instance Profiles -L'uso di **ruoli** per concedere permessi alle applicazioni che girano su **EC2 instances** richiede una 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 passo ulteriore per assegnare un ruolo AWS e i permessi associati a un'istanza EC2 e renderli disponibili alle sue applicazioni. +Usare **roles** per concedere permessi alle applicazioni che girano su **EC2 instances** 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 aggiuntiva, è necessario un passaggio supplementare per assegnare un AWS role e i relativi permessi a un'istanza EC2 e renderli disponibili alle sue applicazioni. -Questo passo aggiuntivo è 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. L'**instance profile contiene il ruolo e** può fornire le credenziali temporanee del ruolo a un'applicazione che gira sull'istanza. Quelle credenziali temporanee possono poi essere usate 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 gli stessi permessi. +Questo passaggio aggiuntivo è la **creazione di un** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) associato all'istanza. L'**instance profile contiene il role e** può fornire le credenziali temporanee del role a un'applicazione in esecuzione sull'istanza. Quelle credenziali temporanee possono poi essere usate nelle chiamate API dell'applicazione per accedere alle risorse e limitare l'accesso solo a quelle risorse specificate dal role. Nota che **solo un role può essere assegnato a una EC2 instance** alla volta, e tutte le applicazioni sull'istanza condividono lo stesso role e gli stessi permessi. ### Metadata Endpoint -I metadati di AWS EC2 sono informazioni su un'istanza Amazon Elastic Compute Cloud (EC2) disponibili all'istanza in fase di esecuzione. Questi metadati vengono usati per fornire informazioni sull'istanza, come il suo instance ID, la availability zone in cui è in esecuzione, il ruolo IAM associato all'istanza e l'hostname dell'istanza. +I metadata di AWS EC2 sono informazioni su un'istanza Amazon Elastic Compute Cloud (EC2) disponibili per l'istanza a runtime. Questi metadata vengono usati per fornire informazioni sull'istanza, come il suo instance ID, la availability zone in cui è in esecuzione, il IAM role associato all'istanza e l'hostname dell'istanza. {{#ref}} https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html @@ -152,13 +152,13 @@ Nella pagina seguente puoi vedere come **abuse EC2 permissions to escalate privi ## EBS -Amazon **EBS** (Elastic Block Store) **snapshots** sono fondamentalmente **backup** statici dei volumi AWS EBS. In altre parole, sono **copie** dei **dischi** collegati a un'istanza **EC2** in un momento specifico. Gli snapshot EBS possono essere copiati tra regioni e account, o persino scaricati ed eseguiti localmente. +Gli **snapshot** di Amazon **EBS** (Elastic Block Store) sono sostanzialmente **backup** statici dei volumi AWS EBS. In altre parole, sono **copie** dei **dischi** collegati a un'istanza **EC2** in un determinato momento. Gli snapshot EBS possono essere copiati tra regioni e account, o persino scaricati ed eseguiti localmente. -Gli snapshot possono contenere **informazioni sensibili** come **codice sorgente o API keys**, quindi, se ne hai la possibilità, è consigliato verificarli. +Gli snapshot possono contenere **informazioni sensibili** come **source code o APi keys**, quindi, se ne hai la possibilità, è consigliato verificarli. -### Differenza AMI & EBS +### Difference AMI & EBS -Un'**AMI** viene usata per **lanciare un'istanza EC2**, mentre uno **Snapshot** di EC2 viene usato per **fare il backup e recuperare i dati memorizzati su un volume EBS**. Sebbene uno Snapshot di EC2 possa essere usato per creare una nuova AMI, non è la stessa cosa di un'AMI e non include informazioni sul sistema operativo, sul server applicativo o su altri software necessari per eseguire un'applicazione. +Un'**AMI** viene usata per **launch an EC2 instance**, mentre uno **Snapshot** EC2 viene usato per **backup and recover data stored on an EBS volume**. Sebbene uno Snapshot EC2 possa essere usato per creare una nuova AMI, non è la stessa cosa di un'AMI e non include informazioni sul sistema operativo, application server, o altro software richiesto per eseguire un'applicazione. ### Privesc @@ -170,13 +170,13 @@ Nella pagina seguente puoi vedere come **abuse EBS permissions to escalate privi ## SSM -**Amazon Simple Systems Manager (SSM)** permette di gestire da remoto flotte di istanze **EC2** per rendere l'amministrazione molto più semplice. Ciascuna di queste istanze deve eseguire il servizio **SSM Agent**, poiché sarà il servizio a ricevere le azioni e ad eseguirle dall'**AWS API**. +**Amazon Simple Systems Manager (SSM)** consente di gestire da remoto flotte di istanze EC2 per rendere le loro amministrazioni molto più semplici. Ognuna di queste istanze deve eseguire il servizio **SSM Agent**, poiché sarà il servizio a ricevere le azioni ed eseguirle** dall'API AWS. -Il **SSM Agent** rende possibile a Systems Manager aggiornare, gestire e configurare queste risorse. L'agente **processa le richieste dal servizio Systems Manager nell'AWS Cloud**, e poi le esegue come specificato nella richiesta. +**SSM Agent** rende possibile per Systems Manager aggiornare, gestire e configurare queste risorse. L'agent **elabora le richieste del servizio Systems Manager nel AWS Cloud**, e poi le esegue come specificato nella richiesta. -Il **SSM Agent** viene[ **preinstalled in some AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) o è necessario [**manually install them**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) sulle istanze. Inoltre, l'IAM Role usata all'interno dell'istanza deve avere allegata la policy **AmazonEC2RoleforSSM** per poter comunicare. +**SSM Agent** viene[ **preinstallato in alcune AMI**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) oppure devi [**installarlo manualmente**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) sulle istanze. Inoltre, il ruolo IAM usato all'interno dell'istanza deve avere allegata la policy **AmazonEC2RoleforSSM** per poter comunicare. -### Enumerazione +### Enumeration ```bash aws ssm describe-instance-information aws ssm describe-parameters @@ -185,7 +185,7 @@ aws ssm describe-instance-patches --instance-id aws ssm describe-instance-patch-states --instance-ids aws ssm describe-instance-associations-status --instance-id ``` -Puoi verificare su un'istanza EC2 se Systems Manager è in esecuzione semplicemente eseguendo: +Puoi verificare in un'istanza EC2 se Systems Manager è in esecuzione semplicemente eseguendo: ```bash ps aux | grep amazon-ssm ``` @@ -207,9 +207,11 @@ Nella pagina seguente puoi vedere come **abuse SSM permissions to achieve persis ## ELB -**Elastic Load Balancing** (ELB) è un **servizio di bilanciamento del carico per Amazon Web Services** (AWS). ELB distribuisce automaticamente **il traffico applicativo in ingresso** 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 il traffico applicativo in ingresso** e scala le risorse per soddisfare la domanda di traffico. -### Enumerazione +Per **Application Load Balancers (ALBs)**, le listener rules, le authentication actions, la gestione degli header e i percorsi alternativi verso gli stessi target fanno parte del **security boundary**. Esamina l'intero percorso **CloudFront --> ALB/NLB --> listeners --> rules --> target groups --> instances/IPs/ports/security groups**, non solo una singola listener rule in isolamento. + +### Enumeration ```bash # List internet-facing ELBs aws elb describe-load-balancers @@ -219,6 +221,73 @@ aws elb describe-load-balancers | jq '.LoadBalancerDescriptions[]| select( .Sche aws elbv2 describe-load-balancers aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName' aws elbv2 describe-listeners --load-balancer-arn +aws elbv2 describe-rules --listener-arn +aws elbv2 describe-target-groups --load-balancer-arn +aws elbv2 describe-target-health --target-group-arn +aws elbv2 describe-load-balancer-attributes --load-balancer-arn +``` +### ELB / ALB Exposure & Access-Control Bypasses + +#### CloudFront / WAF bypass via direct ALB origin access + +Se una distribuzione **CloudFront** fronta un **ALB esposto su Internet** ma il security group dell’ALB consente ancora traffico inbound pubblico, un attaccante può spesso **richiedere direttamente il nome DNS dell’ALB** e bypassare **CloudFront WAF, restrizioni geografiche, rate limits e controlli del layer di cache**. +```bash +# Test the origin directly +curl -isk https:/// + +# If the ALB routes on Host, replay the expected hostname directly to the ALB +curl -isk https:/// -H 'Host: app.example.com' +``` +**Note di audit:** + +- Enumera le distribuzioni CloudFront e i loro origin, poi verifica se l’origin ALB è ancora **internet-facing**. +- Rivedi i **security groups** dell’ALB. Se il traffico inbound è consentito da `0.0.0.0/0` o da CIDR ampi, CloudFront probabilmente non è l’unico percorso raggiungibile. +- Una risposta diretta **non-error** dall’ALB di solito significa che il layer CloudFront/WAF è bypassabile. + +**Hardening:** Se CloudFront dovrebbe essere l’unico punto di ingresso, consenti traffico inbound all’ALB solo dalla AWS-managed prefix list **`com.amazonaws.global.cloudfront.origin-facing`**. + +#### Listener rule shadowing / auth bypass + +Le regole ALB sono valutate in **ordine di priorità crescente**. Una regola **più ampia** con un **numero di priorità più basso** può intercettare il traffico prima che venga mai raggiunta una regola restrittiva con `authenticate-oidc`, `authenticate-cognito`, o `source-ip`. +```text +[10] path /* -> forward -> tg-app +[20] path /admin* -> authenticate-oidc -> tg-app +``` +Una richiesta a `/admin` corrisponde prima a `/*`, quindi l’azione di autenticazione non viene mai eseguita. + +**Note di audit:** + +- Elenca ogni listener e regola con `aws elbv2 describe-rules --listener-arn `. +- Scorri le regole in ordine crescente di priorità e verifica se una condizione troppo ampia **host/path/header/query** corrisponde a traffico che avrebbe dovuto attivare prima una regola più restrittiva. +- Considera l’ordinamento dei listener come l’ordinamento del middleware: **vince la prima regola che corrisponde**. + +#### Le restrizioni `source-ip` possono essere bypassate tramite percorsi alternativi + +Una condizione `source-ip` protegge solo la **specifica regola del listener** in cui è configurata. Se lo **stesso target group**, gli **stessi backend IP/instance**, o lo **stesso servizio su un’altra porta** sono raggiungibili tramite un altro ALB, un altro listener, o un NLB con controlli più deboli, la allowlist IP può spesso essere bypassata usando quel percorso alternativo. + +**Note di audit:** + +- Per ogni regola restrittiva, enumera il **target group ARN** e i target registrati. +- Confronta quei target con **tutti gli altri listener/load balancer** nell’account/regione. +- Controlla anche l’esposizione diretta tramite **public instance IPs**, **security groups** permissivi, o listener aggiuntivi su porte come `80`, `443`, `8080`, o `8443`. + +Un buon modello mentale è: **proteggi il target, non solo un percorso verso il target**. + +#### Fiducia in `X-Forwarded-For` controllato dal client + +Se `routing.http.xff_header_processing.mode` è impostato su **`preserve`** su un **internet-facing ALB**, il backend può ricevere un valore `X-Forwarded-For` **fornito dall’attaccante** senza modifiche. Se l’applicazione si fida di quell’header per **access control**, **rate limiting**, **logging** o **monitoring**, l’attaccante può falsificare la presunta IP del client. +```bash +curl -isk https:/// -H 'X-Forwarded-For: 127.0.0.1' +aws elbv2 describe-load-balancer-attributes --load-balancer-arn +``` +Preferisci `append` o `remove` sugli ALB esposti su internet, ed evita di usare gli header di forwarding controllati dal client come primitiva di autorizzazione. + +#### Tool utile + +[**ELBaph**](https://github.com/doyensec/ELBaph) è un auditor in sola lettura che modella **ALB, NLB, listener, regole, target group e target come un grafo di routing** e poi esegue probe per individuare esposizioni raggiungibili. +```bash +elbaph scan --region us-east-1 +elbaph scan --all-regions -p my-pentest-profile ``` ## Launch Templates & Autoscaling Groups @@ -239,9 +308,9 @@ aws autoscaling describe-load-balancers ``` ## Nitro -AWS Nitro è una suite di **tecnologie innovative** che costituiscono la piattaforma sottostante per le istanze AWS EC2. Introdotto da Amazon per **migliorare sicurezza, prestazioni e affidabilità**, Nitro sfrutta componenti hardware personalizzati e un **hypervisor leggero**. Astrae gran parte delle funzionalità tradizionali di virtualizzazione in hardware e software dedicati, **minimizzando la superficie d'attacco** e migliorando l'efficienza delle risorse. Scaricando le funzioni di virtualizzazione, Nitro permette alle istanze EC2 di offrire **prestazioni quasi bare-metal**, risultando 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 è una suite di **tecnologie innovative** che costituiscono la piattaforma sottostante per le istanze AWS EC2. Introdotto da Amazon per **migliorare la security, le performance 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 d'attacco** e migliorando l'efficienza delle risorse. Scaricando le funzioni di virtualizzazione, Nitro consente alle istanze EC2 di offrire **performance quasi bare-metal**, rendendolo particolarmente vantaggioso per applicazioni ad alta intensità di risorse. Inoltre, il Nitro Security Chip garantisce specificamente la **security dell'hardware e del firmware**, consolidando ulteriormente la sua architettura robusta. -Per maggiori informazioni e su come enumerarlo, consulta: +Ottieni maggiori informazioni e su come enumerarlo da: {{#ref}} aws-nitro-enum.md @@ -249,34 +318,34 @@ aws-nitro-enum.md ## VPN -Una VPN permette di connettere la tua **rete on-premise (site-to-site VPN)** o i **laptop dei lavoratori (Client VPN)** a una **AWS VPC**, così i servizi possono essere accessibili senza doverli esporre a Internet. +Una VPN consente di connettere la tua **on-premise network (site-to-site VPN)** o i **laptop dei worker (Client VPN)** con una **AWS VPC** in modo che i servizi possano essere accessibili senza doverli esporre a internet. #### Basic AWS VPN Components 1. **Customer Gateway**: - Un Customer Gateway è una risorsa che crei in AWS per rappresentare il tuo lato di una connessione VPN. -- È essenzialmente un dispositivo fisico o un'applicazione software dal tuo lato della connessione Site-to-Site VPN. -- Fornisci informazioni di routing e l'indirizzo IP pubblico del tuo dispositivo di rete (ad esempio un router o un firewall) ad AWS per creare un Customer Gateway. -- Serve come punto di riferimento per la configurazione della connessione VPN e non comporta costi aggiuntivi. +- È essenzialmente un dispositivo fisico o un'applicazione software sul tuo lato della connessione Site-to-Site VPN. +- Fornisci informazioni di routing e l'indirizzo IP pubblico del tuo dispositivo di rete (come un router o un firewall) ad AWS per creare un Customer Gateway. +- Serve come punto di riferimento per configurare la connessione VPN e non comporta costi aggiuntivi. 2. **Virtual Private Gateway**: -- Un Virtual Private Gateway (VPG) è il concentratore VPN dal lato Amazon della connessione Site-to-Site VPN. -- È collegato alla tua VPC e funge da destinazione per la tua connessione VPN. -- Il VPG è l'endpoint lato AWS per la connessione VPN. +- Un Virtual Private Gateway (VPG) è il concentratore VPN sul lato Amazon della connessione Site-to-Site VPN. +- È collegato alla tua VPC e serve come target per la tua connessione VPN. +- VPG è l'endpoint lato AWS per la connessione VPN. - Gestisce la comunicazione sicura tra la tua VPC e la tua rete on-premises. 3. **Site-to-Site VPN Connection**: -- Una Site-to-Site VPN connection collega la tua rete on-premises a una VPC tramite un tunnel VPN IPsec sicuro. +- Una connessione Site-to-Site VPN collega la tua rete on-premises a una VPC tramite un tunnel VPN sicuro, IPsec. - Questo tipo di connessione richiede un Customer Gateway e un Virtual Private Gateway. -- Viene utilizzata per comunicazioni sicure, stabili e coerenti tra il tuo data center o rete e il tuo ambiente AWS. -- Tipicamente usata per connessioni regolari e a lungo termine ed è fatturata in base alla quantità di dati trasferiti sulla connessione. +- Viene usata per una comunicazione sicura, stabile e coerente tra il tuo data center o network e il tuo ambiente AWS. +- Tipicamente usata per connessioni regolari, a lungo termine, e viene fatturata in base alla quantità di dati trasferiti attraverso la connessione. 4. **Client VPN Endpoint**: -- Un Client VPN endpoint è una risorsa che crei in AWS per abilitare e gestire le sessioni VPN dei client. -- Viene utilizzato per permettere a dispositivi individuali (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 perché è progettato per client individuali invece di collegare intere reti. -- Con Client VPN, ogni dispositivo client utilizza un software VPN client per stabilire una connessione sicura. +- Un endpoint Client VPN è una risorsa che crei in AWS per abilitare e gestire le sessioni Client VPN. +- Viene usato per consentire a singoli dispositivi (come laptop, smartphone, ecc.) di connettersi in modo sicuro alle risorse AWS o alla tua rete on-premises. +- Differisce da Site-to-Site VPN perché è progettato per singoli client anziché per collegare intere reti. +- Con Client VPN, ogni dispositivo client usa un software client VPN per stabilire una connessione sicura. -Puoi [**trovare maggiori informazioni sui benefici e sui componenti delle AWS VPN qui**](aws-vpc-and-networking-basic-information.md#vpn). +Puoi [**trovare qui maggiori informazioni sui benefici e sui componenti delle AWS VPN**](aws-vpc-and-networking-basic-information.md#vpn). -### Enumerazione +### Enumeration ```bash # VPN endpoints ## Check used subnetwork, authentication, SGs, connected... @@ -300,17 +369,17 @@ aws ec2 describe-vpn-gateways # Get VPN site-to-site connections aws ec2 describe-vpn-connections ``` -### Enumerazione locale +### Enumerazione Locale -**Credenziali temporanee locali** +**Credenziali Temporanee Locali** -Quando AWS VPN Client viene usato per connettersi a VPN, l'utente di solito **effettua il login in AWS** per ottenere accesso alla VPN. Poi, alcune **AWS credentials 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**, una **SecretKey** e un **Token**. +Quando viene usato AWS VPN Client per connettersi a una VPN, di solito l'utente **fa 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: approfondire i permessi di queste credenziali). +Le credenziali appartengono all'utente `arn:aws:sts:::assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: research more about the permissions of this credentials). -**File di configurazione `.opvn`** +**opvn config files** -Se è stata **stabilita una connessione VPN** dovresti cercare file di configurazione **`.opvn`** nel sistema. Inoltre, un posto dove potresti trovare le **configurazioni** è **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`** +Se è stata **stabilita una connessione VPN** dovresti cercare file di configurazione **`.opvn`** nel sistema. Inoltre, un posto in cui potresti trovare le **configurations** è in **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`** #### **Post Exploitaiton** @@ -318,8 +387,13 @@ Se è stata **stabilita una connessione VPN** dovresti cercare file di configura ../../aws-post-exploitation/aws-vpn-post-exploitation/README.md {{#endref}} -## Riferimenti +## References -- [https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html) +- [AWS Elastic Beanstalk and Amazon EC2 getting started](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html) +- [Doyensec - Navigating Lax Load Balancers: When an Intersection Gets You Inside](https://blog.doyensec.com/2026/05/25/cloudsectidbits-elbaph-alb.html) +- [AWS - Listener rules for your Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-rules.html) +- [AWS - HTTP headers and Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/x-forwarded-headers.html) +- [AWS - CloudFront managed prefix list for origin-facing servers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html) +- [Doyensec - ELBaph](https://github.com/doyensec/ELBaph) {{#include ../../../../banners/hacktricks-training.md}}